2008/10/09 からのアクセス回数 14803 SunSPOTのeDemoには、ATMELのATmega88が使われていて、拡張ボードもATmega88だと都合がよいので AVRを勉強することにしました。 ちょうど、「エレキジャックNo. 8」にTiny2313が付録についてきたので、これを使ってみることにします。 また、「インターネット・ガジェット設計」という本が結構おもしろいので、これもさらってみます。 ソフトの開発でも同じですが、
が大切です。 ライターを用意する †ちょうど、EZ-USBが手元にあり、チップ抵抗の半田付けを練習するために、オプティマイズの EZ-USBを使用した AVR ISP ライターを使うことにしました。 送られてきた部品は、 です。 たった4個のチップ抵抗の半田付けに半日かかりました。 開発環境の整備 †Windowsの環境 †ライターがWindowsでしか動作しないので、最初はWindows 2000に開発環境を整備しました。 「エレキジャックNo. 8の第5章AVRマイコンを使おう」に沿って
をダウンロードしました。このほかCygwinもインストールしてあります。 ライターのソフトは、オプティマイズのページからダウンロードし、WinAVRをインストールしたディレクトリのbinと同じ場所に入れます。 エレキジャックNo. 8の図5-6 *1 を参考に、LEDの点灯例題を のようにブレッドボードで回路を組んで、ライターでSignatureを読み込むと、 $ avrezusb.exe -rf Detected device is ATtiny2313. Low: 01100100 ||||++++-- CKSEL[3:0] NbNI ||++-- SUT[1:0] - N |+-- CKOUT (0:PD2VXeNbNo) +-- CKDIV8 NbNlw High:11-11111 |||||||+-- RSTDISBL (RESETs 1:L, 0:(PA2)) ||||+++-- BODLEVEL[2:0] f[^V[gQ |||+-- WDTON (WDT 0:ON, 1:) ||+-- SPIEN (1:ISP~, 0:ISP) Parallel |+-- EESAVE (EEPROM 1:, 0:) +-- DWEN (On-ChipfobO 1:, 0:L) Ext: -------1 +-- SPMEN (SPM 1:, 0:L) Cal: 92 のように正しくTiny2313が認識されました。 avrezusbの使い方は、helpを参照してください。 $ avrezusb.exe -help AVREZUSB - AVR Serial Programming tool R0.30 (C)ChaN,2004 http://elm-chan.org/ Modified by OPTIMIZE for EZ-USB V4.3 Write code and/or data : <hex file> [<hex file>] ... Verify code and/or data : -v <hex file> [<hex file>] ... Read code, data or fuse : -r{p|e|f} Write fuse byte : -f{l|h|x}<bin> Lock device : -l[<bin>] Erase device : -e Copy calibration bytes : -c SPI control delay [-d3] : -d<n> SUPPORTED DEVICE: AT90S 1200,2313,2323,2333,2343,4414,4433,4434,8515,8535 ATtiny 12,13,15,22,25,26,45,85,2313 ATmega 8,16,32,48,64,88,103,128,161,162,163,165,168,169,323,603,8515,8535 AT90CAN 128 SUPPORTED ADAPTER: EZ-USB only. 純正ライターの購入 †Macでの開発のために、純正のAVR ISP mkIIを購入しました。 WindowsのAVR Stduioで動作を確認しようとしたところ、いきなり
という事態に陥りました。 原因を調べたところ、
ことが原因と分かりました。 USBマルチ電源 †ターゲットボードの電圧が、3.3Vなので、トランジスタ技術1月号の付録基板、「USBマルチ電源」を使って電源を供給することにしました。 更に、クリスタルをセットした書き込み用のブレッドボードを用意し、プログラムの書き込みをしました。 Mac OSXの環境 †最初は、MacPortを使ってインストールしようとしたのですが、途中でエラーとなったので、今回は
インストールはマック用のパッケージ形式になっているので、マウント後のAVRMacPack.pkgをダブルクリックするだけです。 libusbが正しく動作するように念のため、インストール後に再起動をした方がいいです。 動作確認 †テストプログラムには、エレキジャックNo. 8のLEDの点灯プログラムを使いました。 今回は、ブザーを必要としないので、以下のようになります。 #include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h> typedef unsigned char BYTE; typedef unsigned int WORD; #define bitLED1 3 #define bitLED2 4 #define LED_RED_ON PORTB |= (1<<bitLED1) #define LED_RED_OFF PORTB &= ~(1<<bitLED1) #define LED_BLUE_ON PORTB |= (1<<bitLED2) #define LED_BLUE_OFF PORTB &= ~(1<<bitLED2) #define DELAY _delay_ms(1000) main(void) { DDRB = (1<<bitLED1 | 1<<bitLED2); while(1) { LED_RED_ON; LED_BLUE_OFF; DELAY; LED_RED_OFF; LED_BLUE_ON; DELAY; } } ここで、
コメント †この記事は、 皆様のご意見、ご希望をお待ちしております。
Tweet |