
■ 精度アップ AVR レシプロカル周波数カウンター[3]の製作 ■ |
1作目と2作目の周波数カウンターは、ゲート式とレシプロカル式の両モードを搭載した作品を製作しました。
AVRマイコン1個による処理の限界から、高周波はゲートモード、低周波はレシプロカルモードで対応してきましたが、高い周波数で小数点以下の精度が得られないため、この点を改良した3号機を設計しました。
レシプロカル式で、桁数を多くし高精度を得るためには、同期の取れた32ビットカウンターが2つ必要になります。
しかし、1個のAVRマイコンでは、一定間隔内のパルス数とその時間をリアルタイムにカウントすることができません。(2つのカウンターで同期が取れないため)
そこでAVRマイコンを2個にし、それぞれに搭載された16ビットカウンターを、同時にキャプチャー動作させることで、パルス数と時間をリアルタイムに計測し、周波数を割り出す事にしました。
レシプロカル式のキャプチャー動作ついては、前作の記事を参照して下さい。
回路の解説 |
1.電源回路
・5VのACアダプターから電源を供給します。
2.AVRとクロック
・AVRマイコンは、ATmega88P-20とATtiny2313-20PUを使用し、動作クロックはカウンターの
基準クロックと兼用で、12.8MHzクリスタル発振モジュールを使用します。
[KTXO-18S] ・ [TA314A] ・ [TX1824H4] 等の高精度水晶発振モジュール。
3.キャラクタLCDモジュール
・16文字×2行表示の、SUNLIKE社 SC1602BBWB-XA-GB-Gを使用しました。
・液晶のコントラストは、半固定ボリュームで調整して下さい。
・他の互換LCDを使用する場合は、バックライト用の抵抗器を変更して下さい。
4.入力アンプ回路
・トランジスタ技術誌等でもよく見かける定番のアンプ回路で、定数は部品が入手しやすいように
変更してあります。
・アンプの入力インピーダンスは、スイッチにより1MΩと50(47)Ωに切り換えることができます。
・アンプの調整は、入力に何も接続しない状態で、アンプの出力電圧がDC2.3Vになるように
半固定ボリュームを調整して下さい。
・回路と定数を検討してみましたが、30MHz以上では極端に入力感度が落ちるようなので、アナログ
入力は1Hz〜30MHzの範囲で使用し、それ以外はロジック入力に切り換えて使用して下さい。
(約60MHzまで動作すると言う報告がありました)
(さらに、信号系統を一部改修することで、110MHzまで動作するようです。 回路図参照)
・アンプの周波数特性や感度に不足がある場合は、別途アンプ回路を用意して、ロジック入力に
接続して下さい。
5.レシプロカル式で、パルス数と時間の計数
・前作のレシプロカルモードでは、測定するパルスの1周期だけを正確に計測していましたが、
周波数が高くなるにつれて精度が落ちる欠点がありました。
・これを改善するためには、一定期間内(1秒間など)の複数のパルス数とその時間を計測します。
・それには同期の取れた32ビットカウンターを2つ用意し、パルス数とその時間を同時に計測させる
必要があります。
周波数 = 時間 ÷ パルス数(回数)
・2つのカウンターを同時に動作させるため、74HC74で測定期間信号(1秒間など)と、測定する
パルスのエッジを同じに(同期化)し、2つのAVRそれぞれの16ビットカウンターにキャプチャー
動作を行わせます。
・ATtiny2313で測定したパルス数(回数)を、UARTのシリアル通信でATmega88Pに送り、周波数を
計算して表示します。
6.プリスケーラとセレクター部
・AVRマイコンのタイマークロック入力「T1]や、キャプチャー入力[ICP1]は、AVRの動作クロックに
同期化されるため、ナイキスト周波数から、クロックの半分以下の周波数しか入力できません。
(推奨値は1/2.5以下)
・製作した回路では、AVRクロックが12.8MHzなので、AVR単体での測定限界が5.12MHzまでと
なります。
・そこで、入力信号をプリスケーラで分周し、さらに高い周波数まで計測できるようにしました。
・分周値は、1/10と1/100が選択でき、74AC14や74AC390の最大動作周波数、約100MHzまで
測定できるようになります。 (120MHzまで、実測で確認されております)
(測定信号が30MHz程度までならば、74HC14や74HC390に代替えが可能です)
7.プリスケーラの自動化
・前作ではプリスケーラの選択が手動でしたが、本作ではマイコンを増やしたことにより内蔵
Timerに空きができたので、入力信号を1/100した周波数をゲート式で簡易的に測定し、
5.12MHz未満、51MHz未満、51MHz以上で自動的にプリスケーラを切り換えます。 ([AT]モード)
・手動でプリスケーラを切り換えることもできます。
8.無信号の検知
・レシプロカル式では、測定信号の変化により計測を持続させるので、信号が無くなると次の
信号が来るまで、計測も表示動作も停止(フリーズ)してしまいます。
・この無信号を検知するために、測定期間内に入力パルスが無かった場合は、表示を0にする
回路と処理を搭載しています。
9.シリアル出力
・計測した周波数と周期を、LCDに表示すると同時に、UARTでシリアル出力できます。
(AVRマイコンを2つにして、処理の負担が軽減されたため搭載できました)
・出力はロジックレベルなので、「RS-232C変換」や、「FT232RL USBシリアル変換モジュール」で、
パソコン等のターミナルに連続表示することができます。
・また、シリアル受信を搭載したLEDユニットで、明るく大きな表示にすることもできます。
・UARTの通信パラメータは、下記の値で固定です。 (プログラム内で変更可能)
9,600ボー、パリティー無し、データ・ビット 8、ストップビット 1
|
注意! この図面を使用した、いかなる損害にも責任を負いません。
|
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
(記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)
|

プリント基板 |

基板 部品面 |

基板 ハンダ面 |

LCDを搭載 |

ケース内部 |

ケース内部 右側面 |

ケース内部 左側面 |
AVRマイコンの、ヒューズ ビット書き換え |
BASCOM-AVR(製品版)と「AVRISPmkII」の組み合わせでプログラムを書き込む場合は、
以下の操作は不要です。 (ヒューズ ビットは自動で書き込まれます) |
ATmega88P
下記ページの書き換え方法 「6.」を、以下の様に変更して、ヒューズ
ビットの書き換えを行います。
ヒューズ
ビット書き換え
6.[ FusebitC ] の右欄 [
0:Divide Clock by 8 Enabled ]
をクリックすると、右側にプルダウン メニューが現れますから、 [ 1:Divide Clock by 8 Disabled ] を選択します。
[
FusebitKLA987 ] の右欄 [ 100010:Int. RC Osc. 8 MHz ] をクリックすると、右側に
プルダウンメニューが現れますから、[ 100000:Ext. Clock ] を選択します。
「AVRWRT」 ライターの場合は、AWRTf_FrqC3m88.gif
|
ATtiny2313
6.[ FusebitC ] の右欄 [
0:Divide Clock by 8 Enabled ]
をクリックすると、右側にプルダウン メニューが現れますから、 [ 1:Divide Clock by 8 Disabled ] を選択します。
[
FusebitKLA987 ] の右欄 [ 100010:Int. RC Osc. 8 MHz ] をクリックすると、右側に
プルダウンメニューが現れますから、[ 100000:Ext. Clock ] を選択します。
「AVRWRT」 ライターの場合は、AWRTf_FrqC3t23.gif
|
製作について |
・部品表は、部品の背が低い順に記載してありますので、この順番に取り付けて行きます。
・ジャンパー線は、すずメッキ線や、被覆電線を使用して下さい。
・ワイヤー配線は、0.3mm程度の被覆電線で「tRST , tPB5 , tPB6 , tPB7」の4カ所を接続します。
(基板上でATtiny2313のプログラム書き込みを行う場合にのみ配線し、書込済AVRの場合は不要)
・抵抗器は、2目 (5.08mm) と3目 (7.62mm)ピッチで両端を折り曲げて取り付けます。
・セラミックコンデンサ(470PF)は、2.54と5.08mmピッチのどちらでも取り付けできます。
・積層セラミックコンデンサは、5.08mmピッチの物を使用します。
・電解コンデンサは、縦置きと横置きの箇所があります。 (極性に注意して下さい)
・コイル (インダクタ−)は、3目(7.62mm)ピッチで取り付けます。
・ICソケットは、必要に応じて取り付けます。(AVRマイコンを、直接ハンダ付けすることも可能です) ・トランジスタは、型番により取付方向が変わる場合がありますから、規格表で確認して下さい。
・クリスタルモジュール12.8MHzに、TA314Aを使用する場合は、1ピンのリードを切って下さい。
(TX1824H4とTA314Aの場合は、ケース固定用の端子2カ所も切り取って下さい)
・キャラクタ液晶表示器(LCD)は、ピンソケットとピンヘッダにより取り付けます。
・5V以上のACアダプターは、絶対に接続しないで下さい。
|
操作方法 |
1.電源投入
・電源が投入されると、測定周期の選択が「1.24秒」、プリスケーラは「自動」、表示モードは
「全桁表示」になります。
・設定を変更すると内蔵EEPROMに記憶されますので、次回からは以前の設定状態で動作します。
・[測定周期] スイッチを押しながら電源を投入すると、現在のプログラム・バージョンが表示され、
スイッチを離すと通常動作に入ります。
|
2.表示面のスイッチ操作
・[測定周期] スイッチを押すたびに、測定する期間が「1.24秒」と「5秒」で切り替わります。
(LCD表示は、下段左端にアンダーバーの付いた「1」と「5」が表示されます)
・「5秒」を選択すると、表示の更新が5秒間隔になりますが、測定精度が1桁上がります。
・[プリスケーラ] スイッチは、押すたびに下記の設定を繰り返し選択できます。
「自動」 → 「1/1 (5MHzまで)」 → 「1/10 (50MHzまで)」 → 「1/100 (99MHzまで)」
・LCD表示は、下段2文字目に下記の通り表示されます。
自動:[AT] 1/1: [5M] 1/10: [50M] 1/100: [99M]
プリスケーラ 値 |
表示 |
測定周波数範囲 |
備 考 |
1/1 |
[5M] |
0.8Hz 〜 5.12MHz |
測定周期[5秒]の場合 0.2Hz〜 |
1/10 |
[50M] |
10Hz 〜 50MHz |
|
1/100 |
[99M] |
100Hz 〜 99MHz |
120MHzまで実測で確認 |
・自動:[AT] モードの注意。
各周波数の上限をまたいで測定する場合は、プリスケーラの切換点で測定が乱れますので、
固定(50M,99M)を使用して下さい。 (5.12MHz前後→[50M]、50MHz前後→[99M])
・[表示モード] スイッチを押すたびに、表示桁数が「全桁表示」と「小数点以下3桁表示」で
切り替わります。
|
3.その他のスイッチ操作
・「アナログ/ロジック」入力切り替えスイッチは、1Hz〜30MHzの範囲で入力アンプを使用する
場合と、ロジックレベルによる、0.8Hz〜99MHzの測定時に切り換えて使用します。
(入力アンプは、実測で約60MHz〜110MHzまで測定できると報告あり)
(ロジックレベルは、実測で約120MHzまで測定できると報告あり)
・アナログアンプの入力インピーダンス「終端抵抗」は、トグルスイッチにより、1MΩと50(47)Ωに
切り換えることができます。
|
4.シリアル出力
 |
・シリアル出力はロジックレベルなので、「RS-232C変換IC」や、
「FT232RL USBシリアル変換モジュール」を使用することで、
パソコン等のターミナルに、周波数と周期を連続表示することが
できます。
「BASCOM-AVR用 USB接続 MCSブート・ローダーの製作」を参照。
・UARTの通信パラメータは、下記の値で固定です。
(プログラム内で変更可能)
9,600ボー、パリティー無し、データ・ビット 8、ストップビット 1
・左から、周波数、[測定周期][プリスケーラ]、周期を出力します。
測定周期:[1] |
1.24秒 |
測定周期:[5] |
5秒 |
|
プリスケーラ:[A] |
自 動 |
プリスケーラ:[P] |
1/1: [5M] |
プリスケーラ:[Q] |
1/10: [50M] |
プリスケーラ:[R] |
1/100: [99M] |
|
|
・また、シリアル受信を搭載したLEDユニットで、明るく大きな表示にすることもできます。

周波数表示 |

周期表示 |
|
○パーツの参考資料
・プリント基板 「サンハヤト」 感光基板 43K ガラスコンポジット 片面 1.0tx100x150mm
・ケース 「TAKACHI」 YM-130 W130xH30xD90mm
・ACアダプター 「秋月電子通商」 超小型スイッチングACアダプタ 5V 2A
◎ このプリント基板と、書き込み済みAVRを、実費頒布しております。
● 基板・部品の頒布室 ●
|
|
|