Kimio Kosaka
2008.07.27 05:48(JST)
Arduino Diecimilaにブートローダを書き込むとき,DiecimilaのICSPにAVRライタを接続して書き込みますが,今回,外部にAVRライタを接続しないでDiecimila自身でブートローダを書き込む方法を見つけました。(Arduino NG,Arduino Duemilanove でも実行可能です)
日本語 English
Arduino Dicimila/NG/DuemilanoveにはUSB-SerialブリッジとしてFT232RLが搭載されています。このFT232RLには BitBang Mode という各信号線を個別に制御する機能があります。
すz氏が「すzのAVR研究」で BitBang Modeを使うavrライタソフトavrdude-serjtag を公開されています。 このavrduse-serjtagを用いればFT232RLがAVRライタとして働くので,FT232RLとICSPを接続すればDiecimila自身でブートローダを書き込むことができます。
Diecimilaの基板上FT232RLの近くにX3と書かれた空きパッドがあります。(この空きパッドはFT232RLの制御ピンに接続されています)
この空きパッドのハンダを吸い取り,ピンヘッダーを挿入してハンダ付けします。
avrdude-serjtag を Linux や Mac OS で動かすには,パッチを当てたり使用する環境に適合させて再コンパイルする必要があるようです。 FT245R/FT232R で avrdude (Linux)や BitBang Mode AVR-Writer on Macのプロジェクトにその手順が書かれています。
また,Linux や MacでVMwear上にWindowsをインストールしてDiecimilaの動作環境を構築すればWindows版avrdude-serjtagがそのまま稼動します。
avrdude-serjtaをArduino-IDEに組み込んで[Tools]→[Burn Bootloader]から動かすことはできません。単独で手動操作します。
serjtag-0.3\avrdude-serjtag\binary\avrdude.confのprogrammerセクションに次の記述を追加挿入します。
写真のようにX3のピンとICSPのピンを配線します。(写真をクリックすると大きく表示されます)
ここでは,serjtag-0.3.zipをC:\に展開したと仮定して解説します。
コマンドプロンプトを開き次のように操作します。
一旦,DicimilaからUSBケーブルを外します。
X3とICSPの配線を外します。
再度,DicimilaにUSBケーブルを接続します。
リセット・ボタンを押します。
Arudino-IDEを起動しサンプル・スケッチのBlinkをDiecimilaにアップロードして見てください。 どうでしょうか?外付けAVRライタ無しでブートローダを書き込むことができました。
写真のようなICSPケーブルを作ればDicimilaを汎用のAVRライタとして使えます。(写真をクリックすると大きく表示されます)
AE-UM232R はDicimilaと同じFTDIのチップを使っているので,これを使ってもBootloaderを書き込めます。
ブレッドボードなどを使って下のように配線しDicimilaを用いる場合と同じようにavrdude-serjtagを操作します。 詳細はこちら
BitBang Mode AVRライタソフト「avrdude-serjtag」を作られた すz氏 に感謝の意を表したいと思います。 世界中のArudino Diecimilaユーザに「avrdude-serjtag」を紹介し すz氏 の研究を讃えたいと思います。 Kimio Kosaka
upload 2008.07.27 05:48(JST)
update 2008.11.07