「外付けAVRライタ無しでBootloaderを書込む」のページの終わりの方に書いてある秋月電子通商のUSBシリアルl変換モジュール(AE-UM232R)を AVRライタにする件について,もっと詳しく知りたいとのメールを何件かいただいたので,このWebページを作成しました。
注意:ここで紹介する方法は Windows 配下でしか動作しません。
左図は実体配線図,右はブレッドボード上に配線した例です。
発振子(3端子セラロック)は下の写真のようにピンヘッダにハンダ付けしてブレッドボードに差しています。
ピンヘッダを付けないで,ブレッドボードの空きスペースに差して配線しても良いです。
ピン配列変換・延長ケーブルを6本束ねてICSPケーブルを作ります。ピンヘッダにコネクタを差して固定し輪ゴムでバインドします。
ICSPケーブルをブレッドボードに差します。ICSPコネクタのピン・アサインは右図のとおりです。
ICSPライタだけを作る場合はブレッドボードは必要ありません。ICSPコネクタのリード線をAE-UM232Rに直接ハンダ付けします。
すz氏制作のFTDI BitBang AVRライタソフトavrdude-serjtagです。 serjtag-0.3.zip ←右クリックして保存
ライタソフトのコンフィグ・ファイルです。 avrdude.conf ←右クリックして保存
avrdude用のGUIラッパーです。 avrdude-GUI-1.0.5.zip ←右クリックして保存
AE-UM232R(FT232R)のデバイスドライバです。 CDM_2.04.16_WHQL_Certified.zip ←右クリックして保存
ATmega168+16MHzを例に解説を進めます
下図は3〜6の設定が終わった状態です。(図はVer 1.0.4 ですが Ver. 1.0.5 でも同じです)
下図が表示される場合は動作不良です。ライタの配線等を厳重にチェックしてください。
ATmega168の新品のチップは内部発振8MHz&8分周クロックのヒューズビットが設定され低速動作となっています。
ライタとのデータのやりとりも低速動作なので高速動作させるようにヒューズビットを書き換えて見ます。
具体的には,lFuseの値をATmega168新品デフォルトの62からE2に変更します。
注意!!!
以下の操作はATmega168に限ったモノです。他のチップの場合にはそのチップのデータシートをよく読んでヒューズビットの 値を決めてください。ヒューズビットの値を誤ると最悪の場合にはISPモードのライタでは読み書き不能になります。
avrdude.exe: BitBang OK
avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
avrdude.exe: drain OK
ft245r: bitclk 230400 -> ft baud 115200
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9406
avrdude> r efuse [ENTER] ←eFuse の読み出し
>>> r efuse
0000 01
|. |
avrdude> r lock [ENTER] ← Lockビットの読み出し
>>> r lock
0000 3f
|? |
avrdude>
ターミナル・モードの終了は閉じるボタン[×]をクリックします。
以上の方法でAVRを読み書きすることができるのですが, avrdudeの細かな操作やコマンド・ライン・オプション等については ここのマニュアルを参照してください。avrdude-serjtagのコマンドラインオプションはserjtag拡張によりオリジナルとは異なっている部分があるようです。
「外付けAVRライタ無しでBootloaderを書込む」 にも書いていますが,USBシリアル変換モジュールをAVRライタにする方法は, すz氏の『FT245R/FT232R で avrdude』の研究成果を引用しております。 すz氏のサイトへのリンクを下に掲載しておきましたので興味ある方は訪問して見てください。
avrdude-GUI(yuki-lab.jp Version)が1.0.5にバージョンアップされていましたので本文修正しました。(eFuseが読めるようになりました)
※ 有用なソフトを開発された,すz さん yuki さんに感謝します。 ※
すzのAVR研究 「FT245R/FT232R で avrdude」 http://suz-avr.sblo.jp/archives/20070621-1.html
avrdude-GUI (yuki-lab.jp Version) http://yuki-lab.jp/hw/avrdude-GUI/index.html
avrdude project http://savannah.nongnu.org/projects/avrdude
FTDI Driver http://www.ftdichip.com/Drivers/VCP.htm
SERJTAGが0.3から0.4eにバージョンアップされました(2009.11.28)。Arduinoのブートローダを焼くにはserjtag-03で用が足りますが,AVRライタとして活用したい方にはバージョンアップ版をお勧めします。すz氏のserjtagの詳細解説のブログは次のURLです。
「すzのAVR研究 SERJTAG」 http://suz-avr.sblo.jp/category/780472-1.html
[もどる] [Arduino Diecimilaを使う Top]
update 2010.01.04
upload 2008.12.31