2014年
2月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2014-02-20 AVR書き込み機の更新

_ FTDIのFT232RLを使ったBitbang AVR書き込み機

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書き込み機ができた。出張中でもマイコンに書き込みができる。もう一つぐらい作っておこうかな。