78F0533のコーナー(5)
CPLDで遊ぼう(32)

更新日:2007年8月5日


周波数カウンターを作ろう

今回は比較的簡単な周波数カウンタを作ります。78F0533の能力があればマイコンだけで実現可能とは思いますがあえて今までの製作で使用してきましたCPLDも一緒に使います。CPLDを使うことでマイコン部の処理が非常に簡単になります。また高い周波数までの計測が可能となります。では製作をスタートしましょう。
周波数カウンターを作ろうの基本仕様
1)ゲート時間1秒、100msec、10msecの周波数カウンタとする。
2)周波数表示は6桁とする。表示は16文字x2行の液晶モジュールとする。
3)計測周波数がオーバーフローする時は上のレンジへ自動に切り換える。

4)ラジオ回路の中間周波数測定に便利な±455kHz表示モードもあり。
周波数カウンターを作ろうの全体構成図
まずは全体の構成図を示します。
(周波数カウンタの構成図)
周波数の計測はCPLDにて行います。ハード的な計測ですので精度は良いと思います。マイコンはその周波数を表示しているだけです。CPLDは3.3V系、マイコンは5V系ですので、マイコンからCPLDへの制御にはレベル変換が必要になります。以前の製作と同様にVHCのゲートを挟むことで実現しています。CPLDからマイコンへはレベルの変換は必要ではありません。
入力バッファには高周波まで対応出来るようにFETとゲートICで行います。このあたりは皆さんの環境に応じて臨機応変に対応していただければ良いと思います。
周波数カウンターを作ろうの液晶表示切換え
ゲート時間に応じて表示状態を変えるようにしています。同じゲート時間でも表示が見やすいように2種類の切換えが可能です。
(ゲート時間1secです)
(ゲート時間100msecです)
(ゲート時間10msecです)
液晶表示的には99.999MHzまで表示出来ますが、まだ測定した経験はありません。
周波数カウンターを作ろうのCPLDブロック
基本的には今まで製作したデジタル選局ラジオのCPLD回路と変わりありません。
(CPLD内部構成図)
(CPLDのピン接続)
6桁分の周波数を測定するので、マイコンとの配線が多くて申し訳ございません。
(入力信号バッファ回路)
すいません、電源回路はCPLDの3.3Vから取れば良いです。
(入力信号増幅回路)
周波数カウンターを作ろうのマイコンブロック
今回もuPD78F0533のボードを使います。
(マイコン側の電源とGNDの接続)
(2行表示LCDモジュール回路)
(操作スイッチの回路)
今回プッシュSWを4個も付けましたがSW3は使用しませんでした。
SW1:ゲート時間切換え、SW2:表示モード切換え、SW4:±455kHzモード切換え
(ポート割付と設定)
周波数カウンターを作ろうの完成の姿
(正面は測定端子、SWです。背面はDCジャック、CPLD書き込みです)
(内部はいつものように配線混んでます)
(正面はこんな姿で)
(水晶発振回路を測定中。表示切換えで表現が変わります)
(別CPLD回路の発振周波数測定中です。ピッタリですね)
周波数カウンターを作ろうの全VHDLソースコード
私と同じ製作をされる方、または勉強される方のために全ソースコードなどプログラム一式を公開いたします。フォルダごと圧縮しましたのでそのままもってって下さい。
全ソースコードはこちらです。
周波数カウンターを作ろうのマイコンソースファイル
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全ファイルが入っています。ライタで書き込みする実行ファイルも含まれています。
いかがでしたでしょうか。今までの製作のちょっとした応用にすぎませんが、電子工作のツールには大変有効ですので、役に立つと思います。もっといろんな機能を載せたかったのですが、次から次へと新しい製作が控えておりますので、このあたりまでとしておきましょう。さて次は何を作ろうかなあ。
これからも「NEC78K0/K0Sマイコン開発室」はどんどん楽しくなります。

NEC78K0/K0Sマイコン開発室へ戻る