■ AVR+グラフィックLCD ロジック・アナライザの製作 ■


 グラフィックLCDの応用回路第2作。
 主要部品にAVRとグラフィック液晶のみを使用した、簡易型ロジック・アナライザの製作です。
 
 ・ サンプリング周波数は、5μS〜20mS、プリトリガー128/ポストトリガー640ポイント。
 ・ 6Ch.表示。
 ・ チャンネル毎に、論理レベルでのトリガーを設定可能。
 ・A/B 2つのカーソルにより、(A−B間)と(トリガー点−Aカーソル間)の時間測定が可能。


 
Jing Handa Electronics JHD622-12864

 
秋月電子 SUNLIKE SG12864A

回路の概要
 
1.電源回路

 
 ・5VのACアダプターから電源を供給するので、アダプターの接続間違いからAVRを保護するため、
  ツェナーダイオードとポリスイッチの保護回路を入れてあります。

2.AVRとクロック
 
 ・AVRは、ATmega88-20PUを、最高速度の20MHzで使用しています。
 ・サンプリング処理に約2μSかかるので、サンプリング周波数は最短で5μSです。

3.グラフィックLCD回路
 
 ・128 x 64 ドット表示の、Jing Handa Electronics JHD622-12864と、秋月電子のSUNLIKE
  SG12864Aが使用できます。
 ・液晶のバックライト用電圧が違うため、ショートピンで変更ができるようにしてあります。
 ・液晶のコントラストは、半固定ボリュームで調整します。

4.スイッチ回路
 
 ・グラフィックLCDが多量のポートを必要とするため、グラフィックLCDのデータポートと、スイッチ
  回路を共用しています。
 ・グラフィックLCDのCS1とCS2をオフ(L)にした場合に、スイッチの状態が読み込めます。

5.ロジック入力回路
 
 ・AVRに直接入力することもできますが、AVRの保護と波形整形のために、74HC541を通して
  あります。
 ・未接続入力のレベルを安定させるために、100KΩのプルダウン抵抗が入っています。

6.オシロ・スコープ併用回路
 
 ・実際の製作では、ロジック・アナライザとオシロ・スコープを兼用しているため、回路図には無い
  切換回路が入っています。



プログラム
 
・AVR用BASICコンパイラ、BASCOM-AVR 試用版を使用しています。
 
・最初は、サンプリング割り込みルーチンのみを、インラインアセンブラで記述する予定でしたが、
 機能を追加していくうちに4KByteを越えてしまい、最終的には、初期設定とメインルーチン以外は
 アセンブラに書き換えました。
 
・トリガー検出もすべてソフトウェアで行っており、割り込み処理の短縮のため、エッジ検出ではなく
 レベルで検出されます。
 
・トリガー位置は、プリトリガーを128ポイントと、ポストトリガーを640ポイントの固定です。



回 路 図  GIF版 AVRLgaCir.gif (188KB)  PDF版 AVRLgaCir.pdf (240KB)

部品配置図  GIF版 AVRLgaPcb.gif (170KB)
   注意! この図面を使用した、いかなる損害にも責任を負いません。

プログラム  テキスト形式 ソースファイル  ALgAn102.TXT (55KB)
 BASCOM-AVR用 ソースファイル
 (KS0108チップ用ライブラリが必要です)
 ALgAn102.bas (55KB)
 インテルHEX形式 オブジェクトファイル  ALgAn102.HEX (11KB)
 
 注意! 著作権は放棄しておりませんので、販売目的での使用は絶対にしないで下さい。

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



 
 前面

 
 右側面

 
 後面

 
 左側面

 
部品面

 
ハンダ面

 
ケース内部

 
プローブ


使用前の準備
 
AVR ATmega88のシステム クロックは、工場出荷時に内蔵RC発振器の8MHzで、1/8前置
分周器がONに設定されているので、外部のクリスタルを使用するには、AVRのヒューズ ビットを
書き換える必要があります。

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

    ヒューズ ビット書き換え

 6.[ FusebitC ] の右欄 [ 0:Divide Clock by 8 Enabled ] をクリックすると、右側にプルダウン
   メニューが現れますから、 [ 1:Divide Clock by 8 Disabled ] を選択します。
 
   [ FusebitKLA987 ] の右欄 [ 100010: --- [CKSEL=0010 SUT=10];default value ] を
   クリックすると、右側にプルダウンメニューが現れますから、
   [ 110111: --- [CKSEL=0111 SUT=11] ] を選択します。



操作方法
1.キー操作
 
 ・CONDITION SELECT [↑] [↓]
  トリガー条件や、表示点の移動などの、項目を選択
  します。
  設定する項目が、反転表示になります。
 
 ・[X ←] [H/L →]
  トリガー条件の設定値や、カーソルの移動を行います。
 
 ・[DISPLAY MAG.]
  表示倍率を、(X1) (X1/2) (X1/4) の順に変更します。
 
 ・[START/STOP]
  トリガー検出の開始、強制中断を行います。

2.[1〜6] チャンネル数字
 
  ・[X ←] [H/L →] キーにより、チャンネル毎にトリガー条件を設定します。
 
    X = トリガーに影響しない  L = (L)レベルでトリガー  H = (H)レベルでトリガー

3.[S.t] Sampling Time
 
  ・[X ←] [H/L →] キーにより、サンプリングの間隔を設定します。
 
5uS・10uS・20uS・50uS・100uS・200uS・500uS・1mS・2mS・5mS・10mS・20mS

4.[D.p] Display Point
 
  ・画面左端の表示位置における、トリガー点からの相対位置を表します。
 
    -128 〜 0 〜 654  (0がトリガー点を表します)
 
  ・[X ←] [H/L →] キーにより、画面が左右にスクロールします。

  ・数値の右側には、スケールガイドが表示されます。
    サンプリングバッファ全体から見て、どの位置が表示されているかを表します。

5.[A] - [B]
 
  ・[X ←] [H/L →] キーにより、カーソル[A]または[B]を移動させます。
   画面の制約上、カーソルは点で表示されています。
 
  ・[A]〜[B] 間の時間が、数値表示されます。

6.[T] - [A]
 
  ・トリガー点からカーソル[A]までの時間が、数値表示されます。

7.[START/STOP]
 

  ・トリガー条件を設定し、[START] ボタンを押すと、画面に[READY]の文字が表示され、
   トリガーを待ちます。
  ・トリガー条件が満たされ、サンプリングバッファが一杯になると、トリガー点の1つ前の位置から
   画面表示されます。 (−1)
 
  ・トリガー検出中に、再度 [START/STOP] ボタンが押されると、強制中断します。

8.[DISPLAY MAG.]
 
  ・画面を1/2倍と、1/4倍で圧縮表示します。


 
(X1/2) 表示

 
(X1/4) 表示



○パーツの参考資料
 ・基板  「秋月電子通商」 片面ガラスエポキシ・ユニバーサル基板 Bタイプ (95x72mm)
 ・アクリルケース  「無印良品」 アクリルポケットティシューケース



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