32bitに挑戦

| コメント(0) | トラックバック(0)

まぁ、こうなると思って名前に「ぼちぼち」と入れておいた訳で…実に5ヶ月ぶりの更新です。

さて、MP3プレイヤー計画については、AT90USBの導入を検討していましたが、最近になって32bitAVRでも良いかな、なんて考え始めました。

というのは、AT90USBとAVR32を比べると、ペリフェラルの充実度ではAVR32に軍配、消費電力ではおおよそ対等、プログラム容量やメモリ容量ではAVR32に軍配、と、AT90USBを採用する理由が無くなってしまったからです。
唯一の欠点といえば、AVR32はISPによる書き込みが出来ない(=JTAGツールが必須となる)ことですが、僕はJTAGICEmkIIを大枚はたいて買っちゃったので(笑)、そこんとこもクリア。

てな訳で、AVR32の評価です。国内ではまだUCシリーズの使用レポートが見あたらないので、このブログが最初なのかもしれません。データシートだけではいまいち分かりにくい所・使用上の注意点を挙げていきたいと思います。

使用デバイス:AT32UC3B0256-A2UT (約1,500円@Digi-Key)


(1) 電源
まず電源について。今回はUSBの5V→TA48033F→(3.3V)→VDDIO, VDDIN とし、コア電源はマイコン内部のレギュレータを使用して VDDOUT→(1.8V)→VDDCORE としました。
なお、アナログは使わないので、VDDANA, ADVREF共に3.3Vに接続。

また、電源ラインにはテスターを入れています(写真左)。これはオススメ。出力ピン短絡などのアクシデントにいち早く気づけます。マイコン単体のテストで、プログラムが空の時、5mA前後でした。もちろんピン入出力の設定をいじっていないので、マイコン本体に指を近づけると変動します。

(2) クロック
XIN1, XOUT1に12MHzの3本足セラロックを接続。これをPLLで50MHz程度にして使用したい…が、上手く行きません。

PLLの設定方法がまずいようです。LOCKしてくれない。

うーむ。さっそく問題がでてきました。

なんのこっちゃ、VDDPLLが未接続(笑)。VDDPLLをコア電圧1.8Vに接続したところ、すんなり動きました。

	// pull-up enable
AVR32_GPIO.port[0].puer = 0xffffffff;
AVR32_GPIO.port[1].puer = 0xffffffff;

// clock setting
// CPU : PLL0(source:OSC1)

// enables OSC1
AVR32_PM.OSCCTRL1.startup = 2; // about 1ms
AVR32_PM.OSCCTRL1.mode = 7; // crystal (>=8MHz)
AVR32_PM.MCCTRL.osc1en = 1; // enable
while(!AVR32_PM.POSCSR.osc1rdy);

// enables PLL0
AVR32_PM.PLL[0].pllcount = 32;
AVR32_PM.PLL[0].pllopt = 3; // wide-band, fVCO/2, fVCO<180MHz
AVR32_PM.PLL[0].pllosc = 1; // source is OSC1
AVR32_PM.PLL[0].pllmul = 4; // x5
AVR32_PM.PLL[0].plldiv = 0; // x2 (-> fVCO=120MHz)
AVR32_PM.PLL[0].pllen = 1; // enable
while(AVR32_PM.POSCSR.lock0 == 0);

// change CPU clock
AVR32_PM.MCCTRL.mcsel = 2; // use PLL0

なお、上記コードにあるように、全てのピンのプルアップを有効にしてフローティングしないようにし、PLLで60MHzを生成して動作クロック(CPU,HSB,PBA,PBBすべて)として使用したところ、消費電流は18.9mAとなりました。

トラックバック(0)

トラックバックURL: http://kimushu.thyme.jp/mt/mt-tb.cgi/13

コメントする

このブログ記事について

このページは、kimushuが2008年9月 1日 16:36に書いたブログ記事です。

ひとつ前のブログ記事は「ストフェス」です。

次のブログ記事は「AT32UC3BでSPI通信」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 5.04