基本仕様
NTSC クロック周波数: 3.579545 MHzの半分の1.7897725 MHz。入手は3.5MHzのほうが入手しやすい。
目標分周比: 4, 8, 16, 32, 64, 96, 128, 160, 202, 254, 380, 508, 762, 1016, 2034, 4068
https://akizukidenshi.com/catalog/g/g101685/
https://akizukidenshi.com/catalog/g/g112492/
分周比の実現方法
- バイナリーカウンターを動かして特定条件をNAND回路で拾ってその信号をフリップフロップに与えて50%なクロックとして使う。
- 16あるリセット信号のどれをフリップフロップに与えるかで16種類のクロックを切り替える。この仕組みも必要。
バイナリーカウンターTC74HC4040APの仕様(CD4040B)
12ビットバイナリカウンタ (Q1-Q12)
分周範囲: 2~4096
出力: Q1(2^1), Q2(2^2), ..., Q12(2^12=4096)
リセット回路の仕様
96, 160, 202, 254分周以降にはNANDゲートを使ったリセット回路を追加:
所望のカウント値でリセット信号を生成。
例: 96分周 = 96(10進) = 1100000(2進) → Q6とQ5がHIGHの時にリセット
NAND回路のオンパレードだな・・・
8入力NANDなんて使ったことないな。最適化をAIにお願いしました。
// 共通パターンの定義
PATTERN_A = NAND(Q8, Q7, Q6, Q5, Q4, Q3, Q2) // 254用
PATTERN_B = NAND(Q9, Q8, Q7, Q6, Q5, Q4, Q3) // 508用
// 最適化リセット式
RESET_96 = NAND(Q7, Q6)
RESET_160 = NAND(Q8, Q6)
RESET_202 = NAND(PATTERN_A, Q4) // 254からQ4(16)を除外
RESET_254 = PATTERN_A
RESET_380 = NAND(Q9, PATTERN_A) // 254 + 256
RESET_508 = PATTERN_B
RESET_762 = NAND(Q10, PATTERN_A) // 254 + 512
RESET_1016 = NAND(Q10, Q9, PATTERN_A) // 254 + 512 + 256
RESET_2034 = NAND(Q11, Q10, Q9, Q8, Q7, Q6, Q5, Q2)
RESET_4068 = NAND(Q12, Q11, Q10, Q9, Q8, Q7, Q6, Q3)
PATTERN_A = NAND(Q8, Q7, Q6, Q5, Q4, Q3, Q2) // 254用
PATTERN_B = NAND(Q9, Q8, Q7, Q6, Q5, Q4, Q3) // 508用
// 最適化リセット式
RESET_96 = NAND(Q7, Q6)
RESET_160 = NAND(Q8, Q6)
RESET_202 = NAND(PATTERN_A, Q4) // 254からQ4(16)を除外
RESET_254 = PATTERN_A
RESET_380 = NAND(Q9, PATTERN_A) // 254 + 256
RESET_508 = PATTERN_B
RESET_762 = NAND(Q10, PATTERN_A) // 254 + 512
RESET_1016 = NAND(Q10, Q9, PATTERN_A) // 254 + 512 + 256
RESET_2034 = NAND(Q11, Q10, Q9, Q8, Q7, Q6, Q5, Q2)
RESET_4068 = NAND(Q12, Q11, Q10, Q9, Q8, Q7, Q6, Q3)
8入力NANDx4,2入力NANDx5,3入力NANDx1,
このまま作るとNANDだけでICが6つは必要ですね。私はこの構成で作り続けてもよいのですが想像以上に面積をとってしまうので考えを変更します。同じ面積で値段も変わらないのであればより多機能で柔軟なMCU化を選択します。80年代ならPAL/GALですね。
学習目的であれば上の表がほぼ答えなので作れるでしょう。
精密でなければNE555で抵抗をスイッチで変える方法もあります。
12KHz以上は精密でなくとも問題ありません。
水晶振動子
せっかくのクロック設計なので基本部分は紹介しましょう。
2本足の水晶振動子が基本です。
リンクはこちら
水晶振動子の周波数で33pFや6.8KΩの部分が変わります。1MΩはバイアス抵抗といいます。
水晶振動子は強烈なタンク回路なので上のインバーターが動くアナログ動作な環境で発信してくれます。
つまりCを変えても周波数が殆ど動くことがありません。
気を付けるとしたらインバーターはUB(アンバッファー)型番を使いましょう。型番にUかUBが付いています。
バッファードは内部でしきい値が急峻 → 線形性が悪く発振開始しにくいので適しません。UBならNAND回路でも構いません。
アナログの領域なので回路自体の配線は短くしないと発振しない可能性もあります。
あまったインバーターはこう処理します。
| ファミリ(例) | 未使用入力の処理 | 出力 |
|---|---|---|
| CMOS(74HC**, 74HCU**, 74AC** など) | High か Low に直接接続(または他の入力にリンク) | オープン |
| TTL / LS(74LS**, 74ALS** 等) | Low に落とすと電流が流れて無駄な消費 → Highにプルアップが安全 | オープン |
ちなみにインバーターの並列接続は電流が増えますので意図的にそうする事もあります。
オープンにすることで電流は増えません。
あと発振するという事はノイズ源でもあります。音関係の回路のそばには置きたくないです。
基本の2本足の次はTTL出力の4本足ですが多くを語らずとも電源をつなげば苦も無く出力が得られるので特に説明も要らないでしょう。

コメント
コメントを投稿