写真1 AD9833 DDS MSOP 0.5ピッチ 変換基板に乗せる

 

それはさておき、

 

このチップは10ピンのMSOPで、写真にようにピンセットの先ほどの大きさです。

 

変換基板に取り付けましたが、ピンのピッチは0.5なので、半田付けにはちょっと技術が必要です。

 

まずチップをゲルタイプの瞬間接着剤で正確な位置に仮止めしておきます。

 

フラックスをほんのわずか塗って、すべてのピンにわざとまたがるくらい半田を盛ります。

 

半田吸い取り線で、余分な半田を吸い取って、出来上がり。

 

慣れれば簡単ですが、最初は数個パーにする覚悟がいります(笑)。

 

このDDSは、マスタクロック(MCLK)周波数は最高25MHzで、その場合最高発振周波数(ナイキスト周波数)は12.5MHzとなり、分解能は0.1Hzです。

 

今回は手持ち部品の関係で、20MHzのクリスタルを使用したので、10MHzまでのプログラマブルオシレータとして、実験してみました。この場合の分解能は約0.075Hzです。

AVR ATMEGA328P

投稿日 2012/06/25

AVRが使いやすいという話なので、トライしてみました。

 

基本的にはPICと大きく異なるところは無いとしても、

 

そのアーキテクチャがシンプルで、プログラミングしやすいと聞きます。

 

チップも安く売られているし、ファンも多いので情報は多いようです。

 

さっそく、ATMEGA328PとライターのAVRISPmkIIを購入して、試してみた。

AVR_ATMEGA328P_1.jpg

写真1 AVR ATMEGA328P 28pin DIP

 

といっても、まだデーターシートをじっくり眺めたわけでもなく、AVRの良さはまだまだ理解できていません。

 

とりあえず、定番のLEDチカチカをやってみました。

 

開発環境は、AVR Studio4とgccコンパイラのWinAVRです。

 

AVRの魅力は、動作電源電圧の低さと思います。なにせ1.8Vから動いてくれます。

 

これは、電池駆動が可能ということなので、サイクル・コンピュータのような電池必須アプリケーションに向いています。

AVR_ATMEGA328P_2.jpg

写真2 AVR AVRISPmkII

 

ライターは自作されている方もいるようですが、てっとり早くAVRISPmkIIを購入しました。これにはUSBケーブルと、CDが付属しています。このCDにはAVR Studio4やその他のソフト、データシートなどが入っています。

 

今回はこのCDからAVR Studio4をインストールしました。 実行すると、カレントバージョンでない場合、ネットにつながっていればアップデートの指示が自動的に出るので、それに従います。

 

このISPは接続ピンが6ピンですが、3ピンx2の形です。このままではブレッドボードで使えないので、ブレッドボード用変換ケーブルを作りました。

AVR_ATMEGA328P_3.jpg

写真3 AVR ATMEGA328P ピン配置図(ATMEL ATMEGA328P DataSheetより)

 

ISPとの接続は以下のようになります。

 

ISP 1pin MISO -> 328P 18pin
ISP 2pin VCC -> 328P 7pin
ISP 3pin SCK -> 328P 19pin
ISP 4pin MOSI -> 328P 17pin
ISP 5pin RESET -> 328P 1pin
ISP 6pin GND -> 328P 8 or 22pin

 

LEDはPORTD0につなぎました。電流制限抵抗を入れて、Vccにつなぎます。PORTD0が論理0で点灯します。

 

プログラムは、以下の通りです。他のサイトを参考にさせていただきました。

 

#include <interrupt.h>
#include <delay.h>

 

int main()
{
DDRD = 0x01;
while(1){

PORTD = 0x00000001;
_delay_ms(100); //100ms
PORTD = 0x00000000;
_delay_ms(100); //100ms

}
}

AVR_ATMEGA328P_4.jpg

写真4 LEPピカピカ 電源は単三2本 ISPの6ピンヘッダからブレッドボード用変換ケーブル

 

AVR Studio4の使い方でちょっとはまってしまいました。deviceにATMEGA328Pを指定するとどうしてもコンパイルエラーになります。原因がわからないので、しばらく悩んでいると、328Pは、48/88/168ファミリのひとつで、メモリサイズだけが異なるのを思い出し、試しに168でコンパイルしたところ、なんとか通りました。

 

原因はまだわかっていませんが、やっとHEXファイルができたので、AVRISPmkIIで書き込み、実行しました。

 

LEDがチカチカして、とりあえず成功です。正確に100ms間隔で点滅しているかはわかりません。

 

ところで、忘れてましたがマスタクロックは何Hzで動いているんでしょうね。気にしてませんでした。

 

なお、LEDを外した(点灯していない)場合の消費電流は約64uAでした。

 

とりあえず動いたようなので、AVRでサイクル・コンピュータでも作ってみる予定です。





 

(JF1VRR)