CPLDで遊ぼう!(7)
更新日:2003年12月31日

7セグメント表示を動かそう
今回よりCPLD基板に周辺回路を追加しながら製作を進めたいと考えます。
手始めに7セグメントを表示するようにしてみましょう。
7セグメントの表示はCPLD基板と別基板に組み立てます。
CPLD基板とはコネクタを介して接続します。
一応周辺は5Vで動作することを考えて5Vの電源回路も組み込みます。
当然ですが前回の製作とは結びつきのあるものにしています。
今回の製作の仕様概要を記します。
1)7セグメントの2桁の表示を行う。
2)表示は1秒ごとにカウントアップする。
3)99秒の表示後00秒に戻る。
とうことでいきなりですがCPLD側の回路図を眺めて下さい。
(CPLD基板側回路図)
前回の製作の大部分はそのまま使用します。30ピンのコネクタを使用して接続します。
今回の製作にはコネクタの全てのピンは使用しませんが、今後使用しますのでとりあえず30ピンのコネクタとします。
周辺基板に電源を供給するためにACアダプターのDC入力から直接接続をします。(CN1の29ピン、30ピン)
(コネクタを付けたCPLD基板側)
7セグメント表示を動かそうの周辺回路
7セグメント表示は今回2桁とします。とりあえず回路図を見て下さい。
(7セグ表示基板側回路図)
一応5V出力の電源回路を付けました。しかしながら電源電圧がある程度高くないと5Vの出力が得られません。私は携帯電話の充電用ACアダプタを使用しているのですが出力電圧が5.7V低いため上記の回路を通すと5V出力が得られませんでした。
そこで急遽切換えスイッチを電源部に付けてACアダプタの出力電圧が低いものについては直接電源が取れるようにしました。
6.5V以上程度の出力をもつACアダプタならきちっり5V出力が出ると思います。
(5V電源回路)
定数計算は前回の基本式から
R1=120Ω、R2=360ΩからVOUT=1.25*(1+360/120)=5.00[V]
となります。
さて回路図を見て頂くと「TD62003」というICが付いていますが、これはトランジスタアレイです。CPLDに直接7セグメントLEDを接続してもいいのでしょうが、表示数が増えていくとCPLDに負担が掛かると考えて今回使用しました。直接つながれる方は不要ですがCPLD側の論理が逆になりますので注意お願いいたします。
(7セグメント回路)
7セグメント表示を動かそうのCPLD内部設計
次はCPLD内部の設計に進みましょう。私の場合前回と同様に回路図を入力して設計を行います。VHDLを用いて設計をしてもいいのでしょうが、どうもなじめません。
皆さんはやりやすい方法で行って下さい。「MAX+PLUS II BASELINE」は簡単に回路図が入力出来るようになっております。特にTTLICが品番ずばりで使用可能ですので、昔からデジタルICで製作をしてきた私にはピッタリです。

いきなりですが内部の回路図を見て下さい。
(CPLD内部回路)
まず4.19MHzの周波数を分周して1秒のクロックを作ります。
LPM_COUNTERを使用して分周します。不要端子は全てUnusedにして使用します。
(LPM_COUNTER)
使用するポートはclockとcoutのみです。ビット数は22bitに設定します。カウント方向は「UP」です。これで4.19MHzを1Hzに出来ます。
秒のカウントは10進(BCD)カウンタで行います。デジタルICの74162を使用します。
(10進カウンタ74162)
1秒カウンタの桁上げ信号(RCO)を10秒カウンタのイネーブル入力(ENT)に接続します。表示されている以外の端子については不要ですのでUnusedにして下さい。
7セグメントデコーダには定番の7447を使用します。
これも未使用端子はUnusedにします。
(7セグメントデコーダ7447)
さてこの7447の出力で直接7セグメントLEDを駆動してもいいのですが、今回LED側にトランジスタのバッファを設けましたのでこの出力を反転する必要があります。
これは単純に7404を使用しました。
これらのパーツを上記の通りに配線すればOKです。
端子の割付も回路図を参照しながら行って下さい。
正しい配線と端子割付を確認したらコンパイルしてみましょう。

標準のデジタルICを使用しましたので未使用端子をUnusedにしても内部に余分なゲートは残っています。(多分・・)
ゲート数を最適化したいと考える方は自力でVHDLで記述されると良いと思います。
7セグメント表示を動かそうの大完成
では実際にコンパイルしたデータをダウンロードして動かしてみましょう。
(動作中の7セグメントです)
(暗いところで見るとこんな風です)
とりあえず99秒まで1秒ごとにカウントアップするだけのものですが、こんな回路がCPLD内部に簡単に構成出来るなんて、なんてすばらしいことなのでしょう。
デジタルICを沢山使用して電子工作をやっていた時代からからは想像出来ませんね。
とんでもなく便利な世の中になったのでしょうか。

ということで今回はここまでとしましょう。楽しみはどんどん広がっていきますね。
「CPLDで遊ぼう!」はこれからどんどん楽しくなります。これからもよろしくお願いします。

「CPLDで遊ぼう!」表紙へ戻る