[新連載]CPLD入門!
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使うことになるだろうと思ってはいたのですが。
何を今頃になって、というようなものですが。
ようやく本気で、CPLDと四つに取り組みます。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第101回]
●CPLDトレーニングボード製品版の写真です
久し振りの更新です。
ずいぶん長い夏休みだなあとお思いかもしれませんが、夏休みなどとんでもありません。
どうせ宅配便も止まってしまいますし、この機会を利用して、たまってしまった注文を汗だくでこなしておりました。
ええ。
なにしろ真性ワーカーホリックですから、休みが取れたってやっぱり仕事をしてしまいます。
なんとも悲しいことであります。
がんばってやりましたお蔭で大分片付きました。
まだもう少し残っていますが、なんとか山は越えたと思います。
あ。
肝心のCPLDトレーニングボードキットの説明書ですが、まだ出来ません。
今しばらくお待ちいただきますようお願いいたします。
CPLDトレーニングボードキットについては、やっと製品版の動作確認が済みました。
こちらがCPLDトレーニングボードの製品版の写真です。
●回路図
そしてこちらが最終的に確定したCPLDトレーニングボードの回路図です。
●4.096MHz水晶
当初は時計用クロックとして定番の32.768KHz水晶を使うつもりだったのですが、なかなかに発振がむつかしく、それでもなんとかそこはクリアできたのですが、次に周波数カウンタプログラムを試したところ、32.768KHzでは精度が悪くて使い物になりませんでした。
時計だからつい32.768KHzを使ってしまったのですが、よくよく考えてみれば何も1秒を作るのにその周波数でなければできないものではありません。
とはいえ1秒をつくるための分周が余り複雑な周波数も考え物です。
それであらためて手持ちのクリスタルを調べてみたところ、おお、いい周波数があるじゃありませんか。
ということで回路図にありますように、4.096MHz水晶を使うことにしました。
4096(KHz)=212ですから、12ビットのバイナリカウンタで分周すれば1KHzが得られます。
1/1000秒です。
これを10進カウンタ3段で分周すれば、1/100秒、1/10秒、1秒のクロックが得られます。
これなら時計用にも、周波数カウンタにも文句なしで使えます。
●追加作成したサンプルプログラム
という具合に先に書いてしまいましたが、せっかくの7セグメント表示LEDですから、それを利用するならデジタル時計は外せませんでしょう。
また1秒のゲート期間中に別途入力するパルスをカウントして7セグメントLEDに表示すれば立派な周波数カウンタです。
どちらも7セグメントLED表示プログラムを含みますが、サンプルプログラムとして考えたときいきなりではちょっと複雑かなあという気がします。
そこでその前段階として、プッシュスイッチを押したときにそれをカウントして7セグメントLEDに表示するプログラムも作ってみました。
以下にまとめますと、
追加で作成したサンプルプログラム兼動作確認のためのプログラムは以下の通りです。
1)プッシュスイッチカウントプログラム
2)時計プログラム
3)周波数カウンタプログラム
各プログラムについては、次回から今までと同様に、プログラムリストを提示して簡単な説明を加えていくつもりです。
各プログラムはリストとして表示するとともに、VHDLソースプログラムとしてQuartusU13.0SP1でコンパイルして、CPLDトレーニングボードに書き込みができるよう、ダウンロードファイルの形でも用意するつもりです。
CPLD入門![第101回]
2019.8.24upload
前へ
次へ
ホームページトップへ戻る