2017年10月20日金曜日

【AVR】 ATmega 8X Board

【AVRマイコン:ATmega 8X用ボードを活用する】
 【Arduino互換基板
 AVRマイコンを使ったコントローラ基板を製作する話しです。

 写真は秋月電子通商で手に入るAVRマイコン用の基板です。 今では有名になった『Arduino』と機能的に互換のマイコン基板が作れるようになっています。

 この基板を汎用(はんよう)のマイコン基板とみなして、活用しましょう。

 基板上に搭載する部品をセットにした「製作キット」(←リンク)も売られていますが、ここではプリント基板だけを使います。(基板のみ単品販売されている)

 計画中の製作で、AVRマイコンを使ったコントローラ基板が必要になりました。 回路はごく単純ですが、周辺回路の制御や表示器のドライブのために各I/Oポートを引き出す必要があります。 そのほか、ISP書き込み端子や5Vの電源も載せなくてはなりません。

 もはや作る面白味は殆どない定型のマイコン回路です。 配線もちょっと面倒なことから、この基板の活用を思いつきました。 配線の手間が幾らかでも省けるなら有難いです。 さっそく旨く使えるか検討してみました。

ポートの割り付け
 もともとがArduino互換の回路ですから、 コネクタのピン・アサインなどは其れ用に書かれています。 私の目的に使うには、そのままだと間違い易いので、自分が使い易いように注釈を入れておきます。(左図の文字)

 なお、これで作るコントローラ基板が取りあえず想定しているのはDDS発振器で、こちら(←リンク)のBlogのAD9834を使うものです。もちろんAD9850やAD9851と言ったDDSもコントロールできますが、+5V電源の消費電流に注意を要します。

 この基板はシリアルインターフェースが別基板で搭載できるようになっています。それを使えば後々USB経由でデータの交換が可能かも知れません。しかし、ここではその部分(赤で囲った部分)は不使用にしました。
 また、電源部分も簡易なACアダプタでも間に合う回路構成になっていますが、独立してこの基板だけを使う訳ではないため簡略化しています。 要するに+9〜10Vの主電源を別に設けてそこから供給します。 さらに、AVRマイコンは内部クロックで使いますから水晶発振子は不要です。水晶発振子の代わりに、基板にコネクタを付けておいたので追加の2ポートとして利用できます。

 主にI/Oポートの引出しとISP端子の部分だけを使うことになりますが、ずいぶん配線の手間は省けそうです。 例えばDDSのコントローラとして完結する為には、この基板だけでは少し無理があります。補助のインターフェース基板が必要になりますがごく簡単なもので済みそうです。 本来とは違った目的ではありますが、「Arduino互換基板」を利用する意味は十分あるでしょう。基板コストも含め、まずまず利用価値はあると思います。

参考:5Vの3端子電源にAN8005を使ったのは頂き物があったからです。レギュレータ自身の消費電流は1mA未満なので省電流になります。 同様の3端子レギュレータはたくさん市販されておりAN8005に限りません。低消費電流に拘らなければ一般的な+5Vのレギュレータ:μA7805ACなどでもOKです。 なお、AN8005の場合、+5V電源の全負荷電流は50mAまでに収めなくてはなりません。

LCDを装着してテスト
 さっそく、必要な部品を実装してみました。 このタイプのLCD表示器を前提に作られていないので、コネクタのピン配置は必ずしも合理的とは言えません。しかしそれほど無理せずに配線接続できました。

 I2Cインターフェース付きLCDの活用も考えられますが、I/Oポートの使い方から考え直す必要があるでしょう。プログラムほか既存の設計をなるべく活かすのが前提のため、ここでは検討していません。

 LCD表示器にはバックライトが白色LEDで白抜き文字の物にします。以前の検討によれば、この形式のLCD表示器が最も消費電流が少ないからです。 この状態で全消費電流は20mAくらいでした。(外部から+10Vを与えています)

 一つの想定としてDDS部分にAD9834を使って省エネ設計にすれば20mA以下の消費電流にできるでしょう。 マイコン基板+LCD表示器+DDS発振器のトータルで40mA以下にできそうです。この中にはLCDのバックライト分も含まれます。

 写真では、LCDのバックライト電流は10mA以下に設定しています。これでも十分な視認性が得られています。

                     ☆

 他の目的に作られた物を流用するので合理的ではない所もありますが、まあまあだと思っています。 それなら、そのまま「Arduinoもどき」を作ってしまい、DDSコントロールのスケッチを実行させたらいかが?・・・と言う声も聞こえてきそうですね。

 それも一案なのですが、ここでは既存の制御プログラムと、ハード設計を活かすことを重点にしました。 Arduinoとして作った所で、外付け基板や追加部品ナシとは行かないでしょう。 単純なDDSコントローラなら別ですが、無線機用にするなら独自の機能を実現するためのプログラムも不可欠です。 少々ムダなスペースがあるのは気なりましたが、基板が活用できるだけでも十分意味はあります。 何ならもっとコンパクトな既成のArduino基板でもそっくり流用してしまう手があるのかもしれません。hi hi

 基板製作と併せて久しぶりにAVRマイコンのプログラミングをしたのですが、ずいぶん忘れていました。 最初はたくさんコンパイルエラーが出てしまい暫くデバッグ作業です。 もともと完結していたプログラムからスタートしていますが、一部のルーチンを合理化する目的で他のバージョンから移植したのが厄介が発生したモトです。(笑)
 ATmega8やATmega168用に書いてあったプログラムだったので、ATmega328用にマッチさせる作業もあって、意外に手間取ってしまいました。 まだまだ完成版ではなくて、機器に組み込んでから機能の追加や調整、更なるデバッグが必要になるでしょう。

 マイコン基板ができたところで、何に使うの?・・・と言う部分は次回のお楽しみにでもしておきましょう。 マイコン基板そのものはプログラムにより変幻自在なので汎用品と言えます。幾つかのプロジェクトに適用可能なはずです。 ではまた。 de JA9TTT/1

(おわり)