|
setup diary |
AVRを使って電子工作をしていたら、AVRの書き込みができなくなってしまった。これまでPCのパラレルポートでdapaを使って書き込みを行っていたが、パラレルポートに変な電圧をあたえてしまったらしい。
新しい書き込み機を準備する必要があるのだが、パラレルポートのあるPCを探してくるか、USBで書き込みできるものを準備するかを迷ったが、今後はパラレルポートはどんどんすたれてくるので、USBにしたいと考えた。USB接続できるコンパクトで安い書き込み機としては、どんなものがあるかを調べていたら、おもしろいものを発見した。FTDI BitBang AVR-Writerというもので、FTDIのFT232RLの出力を制御して書き込むというものだ。手元にFT232RLはあるし、SSOP28を載せる基板も持っているので、これは作るしかないと思って、作り始めた。
まずは、FT232RLでUBSと接続できるように、USBのVccと4,20、GNDと7,18,21,25,26、USB+と15、USB-と16を接続し、17と18の間に104を入れた。そして、AVR側のmisoと5(RXD)、sckと1(TXD)、resetと2(DTR)、mosiと3(RTS)を接続し、VccとGNDも繋ぐ。ピンヘッダの上では、V,3,Gと5,1,2となる。接続はこれで完了である。
つぎに書き込み用のAVRDUDEであるが、ここを参考にしてパッチをあてた。そして、
sudo avrdude -p t261 -c ft232r -P ft0 -B 57600 -U flash:w:out.hex
などとしたら、書き込みがうまく言った。-B指定をしないとうまく動かなかったので、注意が必要だ。
avrdude.confには
programmer id = "ft232r"; desc = "FT232R Synchronous BitBang"; type = ft245r; miso = 1; # RxD sck = 0; # RTS mosi = 2; # TxD reset = 4; # DTR
と書いてあるのだが、sckとmosiが入れ替わっているようで、それを発見するのに苦労してしまった。そのときには、
avrdude: BitBang OK avrdude: pin assign miso 1 sck 0 mosi 2 reset 4 avrdude: drain OK ft245r: bitclk 38400 -> ft baud 19200 avrdude: ft245r_program_enable: failed avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude done. Thank you.
というメッセージが出てしまう。
秋月で売っているFTDIのUSBシリアル変換ケーブル(5V)と3*2のピンソケット(たとえばUJS-1108 3PW)などを組み合わせれば、ハンダ付け無しで書き込み機になるのではと思う。この場合にはavrdude.confの書き換えが必要だろうが、ほとんど工作が必要無いのは大きいかも知れない。
これで、非常にコンパクトで安いAVR書き込み機ができた。出張中でもマイコンに書き込みができる。もう一つぐらい作っておこうかな。