2008/10/09 からのアクセス回数 15071
SunSPOTのeDemoには、ATMELのATmega88が使われていて、拡張ボードもATmega88だと都合がよいので AVRを勉強することにしました。
ちょうど、「エレキジャックNo. 8」にTiny2313が付録についてきたので、これを使ってみることにします。 また、「インターネット・ガジェット設計」という本が結構おもしろいので、これもさらってみます。
ソフトの開発でも同じですが、
が大切です。
ちょうど、EZ-USBが手元にあり、チップ抵抗の半田付けを練習するために、オプティマイズの EZ-USBを使用した AVR ISP ライターを使うことにしました。
送られてきた部品は、
です。
たった4個のチップ抵抗の半田付けに半日かかりました。
ライターが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で動作を確認しようとしたところ、いきなり
という事態に陥りました。
原因を調べたところ、
ことが原因と分かりました。
ターゲットボードの電圧が、3.3Vなので、トランジスタ技術1月号の付録基板、「USBマルチ電源」を使って電源を供給することにしました。
更に、クリスタルをセットした書き込み用のブレッドボードを用意し、プログラムの書き込みをしました。
最初は、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;
}
}
ここで、
この記事は、
皆様のご意見、ご希望をお待ちしております。