Pakurino の ATmega328P 化
千石から ATmega328P を、秋月から ATmega168P を買ってきて、Pakurino (Arduino) の 328P 化を行いました。
AVR 用の書き込み器としては、オプティマイズ製の「MINI EZ-USB」ボードに書き込みソフト「avrezusb」を組み合わせて使っています。
「avrezusb」は ChaN さんの「avrsp」を同社が MINI EZ-USB 用にモディファイしたものですが、最近はメインテナンスが行われておらず、当然、168P や 328P のような新しいチップはサポートされていません。
Visual C のコンソール・アプリとして書かれた「avrezusb」はソースが公開されているので、これに手を加え、新しいチップに対応させることが出来ました。
「P」サフィックスになっても書き込み手順は変わらず、単に PC 側のソフトが新しいチップのデバイス・シグネチャを知らないだけなので、avrsp の最新のソースから、デバイス情報に関する部分をコピーして置き換えるだけで OK でした。
具体的には、
- 「avrsp.h」の「enum _devid {}」の定義部分
- 「avrsp.c」の「const DEVPROP DevLst[] = {}」の定義部分
- 「avrsp.c」の HELP メッセージの「char *MesUsage [] = {}」のデバイス名文字列部分
を変更しました。
MINI EZ-USB 側のプログラムは変更の必要はありません。
avrezusb のソースを見ると、バージョンは R0.30 となっており、それに比べて現在の avrsp は機能が拡張されていますが、それを取り込むことはせず、上記の最小限の変更にとどめました。
「P」サフィックスのシリーズに対応できたので、これで、「無印」バージョンと「P」サフィックス・バージョンで WinAVR が使うレジスタ定義のインクルード・ファイルが異なるために生じるエラーを事前にチェックできます。