時計又はRTCのクロックには32768Hzの水晶振動子が使われています、しかしこの水晶振動子の誤差は100ppm程度あり無調整では月差260秒程度になります。そこでトリマーコンデンサーで調整することになりますが、普通のカウンターで測定するには10秒のサンプリング(0.1Hz分解能で測定するため)時間が必要でトリマーコンデンサーを動かしたあと10秒待つことになり非常に時間がかかります。
そこで32768Hzを分周しその周期を測定することで周波数を算出します。
今回は0.5秒サンプリングで0.1Hz分解能測定を目標に製作します。
回路図
入力段は非測定物に影響を与えないようHI−Zで受けます。
その信号を14分周しCPUの割り込み端子に入れます。
この割り込みは0.25秒間隔で入りますので2回分で1回の測定とします。
CPUのクロックは12.8MHz(誤差1ppmのクロック)で内部カウンターに1/4(プリスケーラ設定)でカウントさせます。この時の時間は1.25μ秒で約400000(10進)カウントになります、これを下記の式で周波数に変換します。
周波数=131072E+6/カウント数
となります、16進では1E84800000/カウント数(61A80)となります。
従って割り込みにはRB0/INTのエッジ割り込みとカウンターのオーバーフロー割り込みがかかります。
周波数が算出出来ましたらLCDモジュールに結果を表示します。
電源はポータブルにする為NI−CDバッテリィーを2個使用しDC/DCコンバータで5Vに昇圧しています。
正面図
ケースは名刺箱を使用しました。割れやすいので注意が必要です。
LCDモジュール左に電源SW(タクトSWで押している時のみ電源が入ります)
その下が測定用入力です。
下の黒い円筒形のものがNI−CDバッテリィーです。
裏面
DC/DCコンバータは昔試作した残りを改造して搭載しました。
内部
いたって簡単です。
感想
0.1Hz単位で正確に表示されます、本来は0.01Hz単位で測定したかったのですがPICマイコンではカウンターが追いつきません。次に製作する時は0.01Hzに挑戦してみたいと思います。
ダウンロード
回路図 counter.pdf
プログラム counter.lzh