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 が使うレジスタ定義のインクルード・ファイルが異なるために生じるエラーを事前にチェックできます。