APDahlen Applications Engineer
10進カウンタは、10までカウントするデジタル回路です。これは、0~9の数字を含む数をベース10で数えるのと同じような、10で除算するモジュロ演算です。この動画では、デジタルバイナリカウンタの動作と、LEDインジケータに表示されるバイナリ数の結果を示します。
動画1: 10進カウンタ 74LS390 が0~9までのバイナリでカウントする様子が見られます。
図1: 555タイマによって駆動される 74LS390 10進カウンタのプロトタイプ の写真です。
10進カウンタはどこにありますか?
図1に示す SN74LS390N などの集積回路(IC)を含む74シリーズは、1960年代半ばから1970年代初めに初めて発売されて以降、数十年の間非常に汎用的な部品で、最初のパーソナルコンピュータのいくつかを実現しました。10進数(シンボル0 ~ 9)を使用してLEDドライバICを介してセグメントLEDディスプレイを駆動できるため、10進カウンタは7セグメントLEDディスプレイによく適合します。
74ロジックシリーズの一部の製品は、今日の電子機器にまだ搭載されています。しかし、デジタルの優位性は著しく低下しています。小型で強力なマイクロコントローラが、旧来の技術に取って代わったのです。実のところ、図1のような 74LS390 の10進カウンタを提示することは、学習の域を出ません。新しい装置でこのような現物に出会うことはまずないでしょう。
今日、10進カウンタに遭遇する可能性が最も高いのは、FPGA(Field Programmable Gate Array)内部です。このカウンタは、VerilogやVHDLなどのハードウェア記述言語を使って記述される可能性が高いです。次に考えられるのは、学術的な場です。
なぜ10進カウンタを理解する必要があるのでしょうか?
人生における不都合な事実の1つは、専門家と学習者の違いです。74ロジックシリーズに組み込まれたハードウェアによる10進カウンタICは骨董品であると言えますが、だからといってその重要性が減じられるわけではありません。 将来の技術者またはエンジニアとして、あなた方はこの概念を理解する必要があります。 これには、 74LS390 内部の2分周および5分周回路の概念が含まれます。 機能回路の構築に関連する技能も含まれます
FPGAでは、専門家と学習者の二分化が顕著です。専門家が74シリーズロジックを使うことはまずないですが、74シリーズロジックを注意深く学ぶことは、プログラミングの方法を学ぶ良い方法となります。回路を小さい回路に分割する昔からの方法は、きれいな階層設計を行うことに今でも有効です。古い設計にカプセル化された機能を研究することは、新しい設計を分割して完成させる方法を示唆しています。10進カウンタはそのような構成要素の1つです。
技術的なヒント: 回路のデカップリングは重要ですが、見落とされがちな側面です。図2の左下に示すような電源バイパスコンデンサを組み込むことが重要です。これらのコンデンサは、外乱(スイッチングノイズ)がICに出入りするのを防ぎます。カウンタ回路では、電源レールのノイズがカウント回路のトリガとなり、誤ったカウントを引き起こす可能性があるため、このコンデンサは極めて重要です。ブレッドボードの安定性に関する追加情報は、TechForumの記事「ブレッドボード回路の安定性」に記載されています。
10進カウンタはどのように動作しますか?
まずは掛け時計の動作を考えてみましょう。 秒針は60で除算するモジュロ演算を実行します。 小数秒を無視すると、秒針は0から59までの60個の固有の値を取ることができます。59秒になると60秒には進まず、0秒にリセットされます。
10進カウンタも、モジュロ10演算であることを除いて同じ動作をし、0~9までの値を取ることができます。カウント9では10 には移行せず、0にリセットされます。
技術的なヒント: 私たちが数を数えるという考え方には昔からのバグがあります。これはOB1(Off By One)エラーと呼ばれるもので、もし宇宙旅行のガイドがこのエラーをしたら、という話がよく引き合いにだされます。モジュロ10のシステムを説明しつつ0から数え始めることに言及するのはミスをしやすいです。最もよくあるOB1エラーは、0から数え始めるべきところを1から数えてしまうことです。これは、特にコンピュータプログラミングで、配列の項目のインデックスを間違えてしまうことに当てはまります。
検出およびリセット機能は2つの方法で実行できます。 1つ目の方法は、数値10を検出するバイナリカウントを監視する回路を設計します。検出すると、回路はカウンタをゼロにリセットします。2つ目の方法は10 = 2 × 5であることを認識します。これは、問題が2つに分割できることを示唆しています。回路の最初の部分は、2分周を実行する単一のフリップフロップ除算器です。 回路の残りの部分では5分周されます。ここでは、回路は数値5を検出したらリセットを実行します。 この2つ目の方法は、 74LS390 のICにハード的に実装されています。
図2に2 × 5カウンタの動作を示します。 始める前に、回路図が3つのセクションに分割されていることを確認してください。 左側には555タイマ回路が表示されます。 これは、約1秒に1回パルスを提供する単純な無安定発振器です。 ここをクリックすると、555の動作パラメータを決定し、コンポーネントの選択を支援するオンラインカリキュレータが表示されます。 右側には、U2A(上)とU2B(下)というラベルが付いた 74LS390 の2つの同一セクションがあります。
U2Aを詳しく見ると、次の3つのセクションがあります。
- 上:リセット
- 中:2分周
- 下:5分周
この例では、2分周回路の出力(ピン3)を使用して5分周回路(ピン4)を駆動します。 結果は、最初に動画1で示した目的の10分周演算です。
図2: 555タイマを備えた 74LS390 による10進カウンタの回路図
10進カウンタに関連するトピックはありますか?
74シリーズにはカウンタと関数のようなカウンタの全ファミリがあります。74シリーズロジックの続きとして、カウントアップやカウントダウンができるカウンタだけでなく、異なるビット幅のカウンタも探してみてください。チャレンジとして、100秒ストップウォッチや100秒キッチンタイマを作るのに必要なステップも考えてみてください。Ben Eaterのスタイルで装置を作ってみてください。あるいは、CircuitVerseのようなシミュレーションツールを使って動作を調べることもできます。また、VerilogまたはVHDL FPGAソリューションは、あなたの将来の足がかりになることは間違いありません。
まとめ
教育者として、私は皆さんに、冒頭の動画で紹介されているような10進カウンタの構築を指導できることに幸せを感じています。 制作、トラブルシューティング、カウントの異常を防ぐバイパス コンデンサの重要性など、貴重な教訓を学ぶことができます。 今後は、VerilogとVHDLを使用して、これらのレッスンをFPGAベースの設計に適用することをお勧めします。 古い回路とその自然な情報に基づいた分割を将来の設計の指針にしましょう。
著者について
Aaron Dahlen 氏、LCDR USCG(退役)は、DigiKeyでアプリケーションエンジニアを務めています。彼は、技術者およびエンジニアとしての27年間の軍役を通じて構築されたユニークなエレクトロニクスおよびオートメーションのベースを持っており、これは12年間の教育によってさらに強化されました(経験と知識の融合)。ミネソタ州立大学Mankato校でMSEEの学位を取得したDahlen氏は、ABET認定EEプログラムで教鞭を取り、EETプログラムのプログラムコーディネーターを務め、軍の電子技術者にコンポーネントレベルの修理を教えてきました。彼はミネソタ州北部の自宅に戻り、このような記事のリサーチや執筆を楽しんでいます。LinkedIn | Aaron Dahlen - Application Engineer - DigiKey