■ AVR + グラフィックLCD 波形表示 周波数カウンターの製作 ■


 基本設計は、前作の「AVRマイコンによる 周波数カウンター」と同じですが、表示器にグラフィックLCD「SG12232C」を使用して、測定入力波形を表示する機能を追加しました。
 あわせて、[Hi]と[Low]のパルス幅時間値も、簡易的に表示します。

 搭載している周波数の測定方式(ゲート方式とレシプロカル方式)については、前作の記事を参照して下さい。



回路の解説
 
1.電源回路

 
 ・5VのACアダプターから電源を供給します。 (ACアダプターは、ケース内に格納してあります)

2.AVRとクロック
 
 ・AVRマイコンは、ATmega164P-20PUを使用し、動作クロックは最高速度の20MHz Xtalで動作
  します。
 ・動作クロックの20MHzは、カウンターの基準クロックと兼用していますので、Xtalに接続されている、
  トリマーコンデンサで校正を行って下さい。

3.グラフィックLCDモジュール
 
 ・122×32ドット表示の、SUNLIKE社 SG12232C(バックライト付き)を使用しました。
 ・液晶のコントラストは、半固定ボリュームで調整して下さい。

4.入力アンプ回路
 
 ・トランジスタ技術誌等でもよく見かける定番のアンプ回路で、定数は、部品が入手しやすいように
  変更してあります。
 ・アンプの入力インピーダンスは、スイッチにより、1MΩと50(47)Ωに切り換えることができます。
 ・調整は、入力に何も接続しない状態で、アンプの出力電圧がDC2.3Vになるように、半固定
  ボリュームで調整して下さい。
 
 ・回路と定数を検討してみましたが、30MHz以上では極端に入力感度が落ちるようなので、アナログ
  入力は1Hz〜30MHzの範囲で使用し、それ以外は、TTL入力に切り換えて使用して下さい。

5.プリスケラとセレクター部
 
 ・AVRマイコンのタイマークロック入力「T1]や、キャプチャー入力[ICP1]は、AVRの動作クロックに
  同期化されるため、ナイキスト周波数から、クロックの半分以下の周波数しか入力できません。
   (推奨値は1/2.5以下)
 ・製作した回路では、AVRクロックが20MHzなので、AVR単体での測定限界が8MHzまでとなります。
 ・そこで、入力信号をプリスケラで分周し、さらに高い周波数まで計測できるようにしました。
  (ゲート・モード専用の機能です)
 ・分周値は、1/10と1/100が選択でき、74AC14や74AC390の最大動作周波数、約100MHzまで
  測定できるようになります。 (表示の都合で、99MHzを最高値としています)
  (測定信号が30MHz程度までならば、74HC14や74HC390に代替えが可能です)
 
 ・セレクター(74HC153)は、入力信号を、ストレート・1/10・1/100 から選択する動作と、
  ゲート・モードかレシプロカル・モードを選択する機能を併せ持っています。
 
 ・この回路のポイントは、ゲート・モード時に、1秒等のソフトウェア割り込みを発生させて、計測
  パルス数を読み込むのではなく、AVR自身で発生させた5Hzパルスを、キャプチャー入力 [ICP1]
  に入れて、[T1] からの入力パルス数をキャプチャー・レジスタに転送するため、ソフトウェア
  割り込みによる計測遅延が無くなり、計測ルーチンも、両モードで共有することができる点です。
 

6.波形サンプリング回路
 
 ・入力波形を表示するためには、正確な間隔でポートをサンプリングし、データをメモリーに
  保存していく作業が必要ですが、タイマー割り込みでポートを検査していたのでは、1データを
  取り込むのに1μSほどの時間がかかってしまいます。
 
 ・そこで、今回の回路で一番の注目点となる、ハードウェアSPI (Serial Peripheral Interface)を、
  本来の機能とは違う目的で使用してみました。
 ・AVRのSPI端子は、AVRクロックの1/4の速度で動作させることができるので、SPIをスレーブモード
  にして、タイマーから20MHzの1/4となる5MHzのクロックを [SCK] に入れ、[MOSI] 入力から
  波形をサンプリングし、1byte単位でメモリーに格納しています。
 ・[MOSI] 入力レジスターは、ダブルバッファーになっているので、連続したクロックでも、8bitの
  データ入力が完了した後に、レジスターを読み込みに行くことが可能になり、2.5MHz(400nS)
  までの表示を可能にしました。
 ・サンプリング クロックは、測定周波数により、自動的にタイマーで変更しています。
 
 ・また、[Hi]と[Low]のパルス幅時間を測定する際に、キャプチャー入力エッジを反転させて測定
  しても、約5μSのパルス幅計測が限界ですが、このサンプリング データを利用することで、
  精度は落ちますが、200nSのパルス幅まで計測表示できます。
 
 ・波形を表示できるのは、ゲートモードでプリスケラ値が1/1の設定時のみです。
 

7.スイッチ部
 
 ・操作スイッチは、液晶表示面までのかさ上げ基板を使用し、タクトスイッチまたは、FUJISOKUの
  TMシリーズを取り付けます。



回 路 図  GIF版 AVRFC2cir.gif (233KB)  PDF版 AVRFC2cir.pdf (328KB)

部品配置図  GIF版 AVRFC2pcb.gif (193KB)  GIF版 AVRFC2pat.gif (122KB)
アートワーク  GIF版 AVRFC2AW.gif (103KB)   部品表
   注意! この図面を使用した、いかなる損害にも責任を負いません。

プログラム  テキスト形式 ソースファイル  AVRFrqC201.txt (45KB)
 BASCOM-AVR用 ソースファイル
 (BASCOM-AVR(製品版)が必要です)
 AVRFrqC201.bas (45KB)
 
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。

       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)



 
ケース底部

 
ケース内部 前面

 
プリント基板
(パターン修正前 Rev.1)

 
基板 部品面
(パターン修正前)

 
基板 ハンダ面
(パターン修正前)

 
基板 前面

 
基板 右側面

 
ケース内部 底面

 
ケース内部 上面


AVRマイコン ATmega164Pの、ヒューズ ビット書き換え
 
AVR ATmega164Pのシステム クロックは、工場出荷時に、内蔵RC発振器の8MHzで、1/8前置分周器がONに設定されており、外部のクリスタル オシレータを使用するには、AVRのヒューズ ビットを書き換える必要があります。
 
・また、JTAGインターフェイスが許可になっているので、無効に書き換えます。

下記ページの書き換え方法 「6.」を、以下の様に変更して、ヒューズ ビットの書き換えを行います。

    ヒューズ ビット書き換え

 6.[ FusebitC ] の右欄 [ 0:Divison by 8 enabled ] をクリックすると、右側にプルダウン
   メニューが現れますから、 [ 1:Division by 8 disabled ] を選択します。

   [ Fusebit KLA987 ] の右欄 [ 100010:Int. RC Osc.; Start-up time: 6 CK + 65 ms ] を
   クリックすると、右側にプルダウンメニューが現れますから、
   [ 110111:Full Swing Oscillator; Start-up time: 16K CK + 65 ms; Crystal Osc.
   ; slowly rising power
] を選択します。

   [ Fusebit High H ] の右欄 [ 0:JTAG enabled(portc.2-portc.5 not usable) ] を
   クリックすると、右側にプルダウンメニューが現れますから、[ 1:JTAG disabled ] を
   選択します。

「AVRWRT」 ライターの場合は、AWRTf_FrqC2.gif



製作について
 
部品表は、部品の背が低い順に記載してありますので、この順番に取り付けて行きます。
 
・ジャンパー線は、すずメッキ線や、被覆電線を使用して下さい。 (15本)
・1/4W抵抗器は、4目 (2.54X4 = 10.16mm) ピッチで両端を折り曲げて取り付けます。 (2本)
・1/6W抵抗器は、2目 (2.54X2 = 5.08mm) ピッチで両端を折り曲げて取り付けます。
・1KΩだけは、3目 (2.54X3 = 7.62mm) ピッチで両端を折り曲げて取り付けます。
・積層セラミックコンデンサは、2.54mmピッチの物が取り付け可能です。
・トランジスタは、型番により取付方向が変わる場合がありますから、規格表で確認して下さい。
・ICソケットは、必要に応じて取り付けます。(AVRマイコンを、直接ハンダ付けすることも可能です)
・SW5の超小型スライドスイッチは、AVRにプログラムを書き込む際にのみ使用するので、
 ジャンパーピンや、ジャンパー線での代用も可能です。
 
・スイッチは、汎用のタクトスイッチや、「FUJISOKU TM1-01」が使用できます。
・スイッチ基板を取り付けるスペーサーの長さで、LCDとの高さ調整を行います。
・スイッチ基板とメイン基板は、ワイヤーまたはメッキ線4本で回路接続して下さい。
・タクトスイッチには、足の幅が2.54ピッチでない物がありますので、ピンの間隔を基板に合わせて
 調整して下さい。
キースイッチに、「FUJISOKU TM1-01」を使用する場合は、位置決め用ボス(小さな突起)を、
 必ずカッターで切り取って下さい。

・また、接点により、取り付ける向きが決まっていますので、メーカー名が横になる方向で
 取り付けて下さい。
   
 
・グラフィック液晶表示器(LCD)は、ピンソケットとピンヘッダにより取り付けます。
・ 「SG12232C」の取り付けネジは、2.5mm穴で高さが11mmとなっているため、特殊なスペーサーが
 必要です。
・調達が難しい場合は、「電子工作のヒント」のページに、自作方法を記載してあります。
 (頒布室で、実費頒布を始めました)
 
・アナログアンプやTTL入力の端子は、カード・コネクターが使用できるように2.54mmピッチで
 並べてありますが、直接ワイヤーで配線することも可能です。

5V以上のACアダプターは、絶対に接続しないで下さい。



操作方法
 
1.電源投入
 
 ・電源が投入されると、モードは「ゲート・モード」で、プリスケラ値は「1/1」になります。
 ・[MODE] スイッチを押しながら電源を投入すると、現在のプログラム・バージョンが表示され、
  スイッチを離すと通常動作に入ります。

 
2.表示面のスイッチ操作
 
 ・[MODE] スイッチを押すたびに、「ゲート・モード」と「レシプロカル・モード」が切り替わります。
 ・LCDの左上に、「ゲート・モード」時→ [Gate] 、「レシプロカル・モード」時→ [Recp] が表示されます。
 
測定可能な
 周波数の範囲
 ゲート・モード  1Hz 〜 99MHz
アナログ入力は30MHzまで
 波形表示 ○
 レシプロカル・モード  99Sec 〜 200KHz  波形表示 ×

 ・[PRESCALER] スイッチは、ゲート・モードのみに有効で、押すたびに 「1/1」→「1/10」→「1/100」を
  繰り返し選択できます。
 ・LCDの2行目に、「1/1」時→ [P1] 、「1/10」時→ [P10] 、「1/100」時→ [P100] が表示されます。
 
プリスケラ 値 測定周波数範囲  分解能   波形表示
1/1   1Hz 〜 8MHz  1Hz 
 1/10   10Hz 〜 80MHz  10Hz  ×
1/100  100Hz 〜 99MHz  100Hz  ×


 ・波形と、[Hi]と[Low]のパルス幅時間値は、ゲートモードでプリスケラ値が1/1の設定時のみ表示
  されます。
  (プリスケラが入ると、波形はデューティー50%になるので、表示の意味がない)
  (レシプロカル・モードでは、サンプリング時間が長くなりすぎる)
 
 ・パルス幅時間値の最小分解能は、200nSです。
 ・波形表示ができる周波数は、1Hz〜2.5MHzの範囲です。
 ・波形は、立ち上がりエッジで自動的に同期をとって表示されます。

 
3.その他のスイッチ操作
 
 ・アンプの入力インピーダンス(終端抵抗)は、プリント基板上のスライドスイッチにより、
  1MΩと50(47)Ωに切り換えることができます。
 
 ・「アナログ/TTL」入力切り替えスイッチは、1Hz〜30MHzの範囲で入力アンプを使用する場合と、
  TTLレベルによる、99秒〜99MHzの測定時に切り換えて使用します。



ソフトウェアの解説
 
 ・周波数の測定動作(ゲート方式とレシプロカル方式)については、前作の記事を参照して下さい。

波形表示の動作
 
 ・まず、ゲートモードで現在の周波数を、1秒間測定します。
 
 ・測定した周波数から、グラフィック液晶画面に、2サイクル以上の波形が表示できるように、
  サンプリングのクロック周波数を決定し、タイマーの動作を変更します。
 ・最高速度の5MHz(200nS)では、波形の周波数によって、サンプリング バッファー内のデータを、
  採取間隔を調整しながら表示します。
  (1〜32データを検査して、レベルを判定します)
 
 ・SPIスレーブモードで、測定波形を、6,144データ (768byte)分サンプリングします。
 
 ・タイマーを、周波数計測の状態に戻します。
 
 ・サンプリング バッファー内のデータから、[Hi]と[Low]のパルス幅時間値を計算し、表示します。
 
 ・サンプリング バッファー内の波形データを表示します。

 ・この動作を繰り返し行うので、計測には、1秒+(約1.2mS〜3Sec)の時間が必要です。



○パーツの参考資料
 ・プリント基板  「サンハヤト」 感光基板 41K ガラスコンポジット 片面 1.0tx100x100mm
 ・ケース  「LEAD」 PL-4 W80 X D120 X H55 mm
 ・ACアダプター  「秋月電子通商」 超小型スイッチングACアダプタ 5V 1A

◎ このプリント基板と、書き込み済みAVRを、実費頒布しております。
 
  基板・部品の頒布室



   電子工作の部屋 Top へ 前のページへ戻る