AVRマイコンライタの製作

PICに引き続きAVRの環境を構築した。
AVRはPICと違ってGNUをサポートしてるらしい。
Cでの開発環境も整っているみたいなので面白そう。
参考にしたのは、武藤先生の面白チャレンジ!インターネットガジェット入門
開発環境はWindows7です。
手順は、
(1)AVRライタの製作
(2)cファイルをコンパイル→hexファイル生成→AVRに書き込み
(3)LEDの点滅テスト
まず、AVRライタの製作から。
材料は、
・Atmel AT mega 168 20PU(400円)
・ブレッドボード(200円くらい?)
・ジャンプワイヤ
・クリスタルオシレータ(水晶発振子。秋月、5個200円。今回は12MHzを使用)
・FT232RL USBシリアル変換モジュール(950円)
・USB AオスーUSB miniオス ケーブル(120円)
図のように構築する。空中配線はご愛嬌。

製作したライタをUSBケーブルでPCに接続すると、自動的にデバイスドライバがインストールされる。
(2)次にWinAVRをインストールする。
その前にCygwinを入れておく。gcc-core,gcc-g++,wget,tar,vim,unzipなどのLibs(ライブラリ)をインストールしておく。
sourceforgeからWinAVRをダウンロード、インストール。
武藤先生のサーバからテストコードをとってくる。
http://web.sfc.keio.ac.jp/~takefuji/led0-168.zip
中に入ってるled-0168.pnprojをダブルクリックすると、Programmer's notepadが立ち上がる。
(Programmer's notepadはWinAVRのパッケージに入ってるソフトウェア)
mainファイルは以下。
main.c

/* LED flash using atmega168 designed by takefuji on sept. 22, 2009*/

#define F_CPU 1.0E6     //1MHz
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{ 
 
for(;;){DDRC=0x20;
		PORTC=0x20;_delay_ms(500);
		PORTC=0x00;_delay_ms(500);}
}

Toolsメニューの"Make all"でビルドするのだが、ここでビルドが通らない。
エラーメッセージを確認すると、

#include <util/delay.h>

がない、といっている。
WinAVRのフォルダを確認すると、確かに入ってない。
検索するとWinAVR/include/avr/delay.hに入っていたので、環境変数PATHにC:\WinAVR\includeを追加して

#include <avr/delay.h>

に書き換えたらビルド成功。(環境変数の追加はいらないかも)
次に、WinAVRをインストールすると作成されたavrdudegui.exeを起動。
以下のように設定する。コマンドラインオプションに注意。

接続後、FuseのReadを実行して上記のようになれば成功。
さきほど生成した.hexファイルをFlashに指定してErase-Write-Verifyを実行。
(3)LED点滅試験
以下のように、テストボードを組む。

点滅の様子