電子工作の実験室(後閑氏)に掲載されているPICを2個使った20MHz程度までの周波数カウンタです。
PICの内蔵発振周波数の測定・調整他、時々周波数が測定したくなることがあるので作ってみました。オリジナルからPICデバイスの変更、表示方法の変更などを行っています。動作原理などは、後閑氏のページに詳しく解説されています。
![]()
回路図
カウンタ部のPICはPIC16F648A、表示部はPIC16F685に変更。表示部のクロックは内蔵発振。アンプ部のFET,Tr も入手できたものに変更。その他はほぼオリジナルのまま。
![]()
基板
ユニバーサル基板に実装。7セグLEDにはまだマスキングテープが貼ってあります。高さと間隔を揃えるためと、工作中のキズ防止のため。
電源投入時のダイアグとして、カウンタ部から12,345,678を表示部に転送して1秒間表示するようにしてみた。実際の測定は1秒後から始まる。
![]()
表示方法変更1
カウンタ部のプリスケーラ有無(1/8, 1/1)、ゲート時間(0.1秒, 1秒)の設定を、表示部に転送(2bit)するようにし、それに応じて7セグ表示の1桁目、2桁目を "o" 表示するように変更。
左写真は、プリスケーラ・オン(1/8)でカウント部の京セラ発振モジュールの出力(12.8MHz)を表示している様子。自分のクロックを自分で測定しているので誤差無し。
![]()
表示方法変更2
左写真は、ゲート時間を0.1秒にしたときの様子。最後の2桁が "o" 表示になる。
このとき、カウンタ部では測定した値を10倍してから表示部に転送するようにオリジナルから変更。
表示部のちらつき防止
当初、カウント部から表示部へのデータ転送はオリジナルのままとしていたが、動かしてみるとデータ転送タイミングでの7セグLEDのちらつきが気になった。とくにゲートタイム0.1秒でひどい。
そこで転送速度を 100us/bit から 20us/bit に変更。データ24ビット+設定2ビット+スタート/ストップ2ビットの計28ビットを0.56ミリ秒で転送する。このために表示部でのスタートビットの検出には、外部割り込みを使うようにした。
また、オリジナルではデータ受信後すぐに表示用のBCD変換を行っていたが、これにも時間がかかるので、受信後の次の(ダイナミック表示の)waitの代わりに行うようにしている。表示部のソースはBCD変換とデータ受信部を流用した程度となった。
![]()
アクリルケース
手元にあった秋月のアクリルケースに収めてみた。ノイズ対策としては金属ケースのほうがよいと思うが、手軽に工作できるこれにした。
右側にACアダプタのDCプラグと、電源スイッチの穴を空け、左側にはプローブ用の穴を開けた。基板はスポンジ入りの厚めの両面テープで貼り付けて固定する。
![]()
スモークグレーの塩ビ板
7セグ表示のコントラストを確保するため、スモークグレーの塩ビ板の効果を確認。
有るのと無いのでは視認性にかなり差が出る。
![]()
ケースに収めた
ラベルは、カシオネームランドを使って作成。透明テープ白文字で作り、塩ビ板に貼ってある。
塩ビ板はアクリルケースの蓋の内側に収めてあるので、テープが意外と目立たない。
![]()
完成
手元にあったシールド線とICクリップでプローブを作り、完成。
カウンタ部ソース、表示部ソースです。いずれもバグがあるかも知れません。無保証です。後閑氏のソースを流用しておりオリジナルに著作権があります。
![]()
おまけ(ラジオ周波数表示)
ラジオの受信周波数を直読できるように、ラジオの局部発振周波数を測定した際に中間周波数の455KHzを加算するモードを設けてみた。
しかし、ノイズ発生が大きくラジオが聞こえなくなり使えない。また、アンプ部ももっと感度を高くしないと難しそう。
以上