2012年4月8日日曜日

avrdude-serjtagをバッチファイルで使ってみる



前回のエントリーで、生ATMEGA328Pにoptifix(スケッチ)でバグフィックスされたブートローダーを書き込みUno化、ArduinoUnoのチップと乗せ換えスケッチのアップロード、ブレッドボードでの動作も確認出来ました。


スケッチのたびにボードのチップを外すのは面倒なので、ブレッドボードに乗せたチップに秋月AE-UM232Rでスケッチをアップロードできるようにします。

参考サイト:Arduino/Arduino の自作/DuemilanoveTYPE

作ったブートローダー書きこみシールドにAE-UM232Rを乗せられるようにして、スケッチもアップロードできるようにしました。


モジュールに送受信確認のLED、D13に動作確認のLEDを接続しました。
モジュールのジャンパーピンはJ1 2-3でUSBから給電、J2はショート。
スケッチのアップロードは、ArduinoIDEでAE-UM232Rに割り当てられたCOMポートを選択でOK。

この写真の状態で、さらにavrdudeというソフトを使えば、ブートローダー、ヒューズの書き込みもできるようになります。

参考:
FT245R/FT232R で avrdude (2)
(番外) FTDI BitBang AVR-Writer ワンチップArduino ブートローダー&スケッチライタ
激安Arduinoの作り方
激安Arduinoの作り方2

FT232R+avrdude

今回はavrdude-serjtag04nを使いました。ただこれはCUIなのでコマンドプロンプトからの操作となります。別配布にGUI化するフロントエンドもあります。
改良がされているavrdude-GUI(YCIT版)はダウンロードに登録や掲示場への書き込みが必要ということからGUIを使わずにCUIで使ってみます。
毎回コマンド、オプションを入力するのは間違えやすいのでバッチファイルで。

参考:ワンチップArduino ブートローダー&スケッチライタ

こちらを参考に、ヒューズ読み取り用、ヒューズ書き込み用、ブートローダー書き込み用バッチファイルを用意。

自分の環境でのヒューズ値を読むコマンドはこのようになりました。
avrdude -p m328p -P ft0 -B 4800 -c diecimila -U lfuse:r:FUSE_low.txt:i -U hfuse:r:FUSE_high.txt:i -U efuse:r:FUSE_ext.txt:i -U lock:r:FUSE_lock.txt:i
↑ヒューズ値をテキストファイルに出力する場合

avrdude -p m328p -P ft0  -B 4800 -c diecimila -U lfuse:r:-:i -U hfuse:r:-:i -U efuse:r:-:i -U lock:r:-:i
↑ヒューズ値を画面にに出力する場合(見にくい)

ヒューズの書き換えはちょっと間違えると、ヒューズリセッタというものがないと使えなくなるようです。書き換えは慎重におこなってください。

optifixに含まれるoptiboot改良版のHEXファイルが無いので、optifix.pde内からイメージをコピペしてテキストエディタでHEXファイル作りました。
HEXファイルのフォーマットは、もとからIDEにあったHEXファイルを参考に。
本来ならoptibootのソースコードを書き換えてmake?ちょっとわかりません。

部品点数の削減、省電力化のために、内部発振化、クロックダウンをしたくなりますね。


環境:ArduinoUnoR3、Arduino1.0、Win7





0 件のコメント:

コメントを投稿