2012年9月19日水曜日

AVRによるAD9850_DDSユニットのキーパッド制御


 私の好きな「電子工作」も、スイス旅行とこの夏の暑さでエネルギーを使い果たしてしまい、実験ノートの日付を見たら二ヶ月近くブランクが出来ていました。
 そこで、リハビリと言っては大げさですが、DDS制御の簡単な実験をしてみました。

 DDSとはDirect Digital Synthesizerの略称でデジタルデーターを与えるとその設定値の周波数をサイン波で出力するICチップです。特にAD社Analog Devices)のAD98xxシリーズのチップは我々アマチュアにとって一般的で、手元に「AD9834」「AD9851」があり以前にもすこし実験しています。

このシリーズのICチップ「AD9850」を使用した、中国製のDDSユニット(写真左)が大変廉価に出回っているのは同好の士なら常識とするところですが、今回は私もこれを入手して、前に紹介した「Arduino IDE」で開発したプログラムを載せた「AVR( Atmega328)」で制御してみました。

 前述のように、任意の周波数出力を得るにはデジタルデーターをDDSユニットへ、マイクロコントロール・チップ 「AVR( Atmega328)」 経由で送らねばなりません。いわゆるユーザーインターフェースです。

ここに、プッシュボタンやロータリーエンコーダなどシステム設計者の腕の見せ所があります。

 そこで以前から試してみたかったキーパッド(key pad)に思い当たりました。利用するのは「玩具箱」から探し出してきた、古い電話機用のキーパッドです。(写真右)

 写真で見られるように12個のキーがありますが、結線図に示すように、それぞれのキーは縦3本、横4本のどれかの交点にあり、コンピュータ(AVR)が7本の線をスキャンしチェックすることで7本の線で12個のスイッチのどれが押されたかを知ることが出来ます。

 さいわいこの動作はarduinoのホームページからライブラリをダウンロードする事で簡単に実現できました。

 配線図をおこすまでも無いので、ピン接続を参考までにアップしておきます。
 ArduinoとAtmega328のピンは同じもので、呼び方のみ違います。

 DDSユニットは信号線は4本だけですが、当然電源ピン、GNDピン(それぞれ2ヶ所)は接続してください。また ピン17(D2)もGNDに落としておく事を忘れないでください。

 LCDは液晶パネルの事です。



左に全体を接続した写真を示します。








 早速電源を入れ、キーパッドで数字を打ち込んでいくと、電卓のようにLCDの上側に、打ち込んでいく都度数字が表示されます。
 右上の写真は 10000000 、すなわち10MHzを打ち込んだところで、次にキーパッドの右下の”#”を打ち込むと確定した数字がLCDの下側に移り、DDSユニットから10MHzのサインウエーブが出力されます。

 出力を直接ディジタルオシロでチェックしてみたのが右の写真です。さらに次々といろいろ周波数を変えてみましたが、的確に反応してくれました。

 まずはスケルトンの完成ですので、さらに構想をねりあげて、いろいろなユーティリティーをつけたり、回路的にはLPFなども検討していきたいと思います。
 久方ぶりの電子工作が出来てすこし満足の気分です。

    でも相変わらず暑いな、、、、、、

0 件のコメント: