はじめに

Arduino diecimila互換の接続で FTDI Bitbangライタを作ってたのだが、AVRDUDE 5.10 with FTDI bitbang on Linuxというページを発見した。
このページによると、SparkFun’s FTDI Basic BreakoutでFTDI Bitbangライタに出来るようだ…

当方が作ってるUSBシリアルアダプタは、SparkFun’s FTDI Basic Breakout互換として作った。ということは、”適切な接続ケーブルがあればライタに変身してしまうのでは?”という疑問が沸いたので早速テストしてみた。
結果は良好。ライタ用ケーブルを作成すればBreakout FTDI Bitbangライタに変身するとことが分かった。

ここでは、Breakout FTDI Bitbangライタの製作方法について記述する。

diecimila と breakout

avrdudeでは、diecimila と breakout とかFTDI Bitbangライタとして表現してる。それぞれAVRマイコンボードArduino diecimilaとUSBシリアルコンバータSparkFun’s FTDI Basic Breakoutを表してる。AVRライタ専用として作られてないが、どちらもFT232RLを搭載しており信号を取り出せる製品である。

avrdudeからみるとどちらもFTDI Bitbangライタ、ふたつの差異はピンアサインが違うそれだけ。
avrdude.confの記載は以下の通り、miso,sck,mosi,resetに異なる数字が割り当てられてる。

# SparkFun FTDI Basic breakout
programmer
  id    = "breakout";
  desc  = "FT232R Synchronous BitBang";
  type  = ft245r;
  miso  = 1; # RXI (2)
  sck   = 3; # CTS (5)
  mosi  = 0; # TXO (3)
  reset = 4; # DTR (1)
;

#arduino diecimila
programmer
  id    = "diecimila";
  desc  = "FT232R Synchronous BitBang";
  type  = ft245r;
  miso  = 3;  # CTS X3(1)
  sck   = 5;  # DSR X3(2)
  mosi  = 6;  # DCD X3(3)
  reset = 7;  # RI  X3(4)
;

avrdudeのBitbangの番号の割り当てルール

avrdudeの割り当てルールは、以下の様である。
Bitbangライタにしたいターゲットのピンアサイン情報をavrdude.confに適切に書けば、Arduino diecimila とか
SparkFun’s FTDI Basic BreakoutでなくてもBitbangライタに化けさせることができる。

FT232RL avrdude での番号
TXD 0
RXD 1
RTS 2
CTS 3
DTR 4
DSR 5
DCD 6
RI 7
CB0 8
CB1 9
CB2 10
CB3 11

SparkFun’s FTDI Basic Breakoutをライタに改造

回路の検証

SparkFun’s FTDI Basic Breakoutは、そもそもArduino PROの為のUSBシリアルアダプタだ。スイッチサイエンスなどArduinoを置いてあるショップで入手可能である。

新SparkFun's FTDI Basic Breakout

新SparkFun's FTDI Basic Breakout

回路は以下の通り。
ジャンパのはんだを除去すればVCCIOをターゲットから供給できるが、デフォルトはUSBから電力をターゲットに供給することになってるので、作成したBitbangライタは5Vまたは3.3V専用になる。

SparkFun’s FTDI Basic Breakoutの回路

SparkFun’s FTDI Basic Breakoutの回路

ライタにするにはSparkFun’s FTDI Basic Breakoutを一切改造する必要はない、電流制限抵抗をつけた専用ライタケーブルを作成するだけだ。

ライタケーブルの作成

カラーケーブルを6本用意し信号線の4本に220Ω(写真は200Ω)の抵抗をはんだつけ。

電流制限抵抗をはんだ付け

電流制限抵抗をはんだ付け

熱収縮チューブでシールドする。

熱収縮チューブでシールド

熱収縮チューブでシールド

以下の表に従い結線する。

FTDI Basic Breakout AVR ISP
GND(1) GND(6)
CTS(2) SCK(3)
VCC(3) VCC(2)
TX0(4) MOSI(4)
RXI(5) MISO(1)
DTR(6) RESET(5)
Breakoutライタケーブル結線図

Breakoutライタケーブル結線図

出来上がったライタケーブル。
当方は製品 FTDI Basic Breakoutを持っていない互換品を自作した。
そのため端子はZHコネクタとQIコネクタを利用したが、製品版だったら両端ともQIコネクタを利用すればよい。

電流制限抵抗入りライタケーブル

電流制限抵抗入りライタケーブル


書き込みテスト

自作のSparkFun’s FTDI Basic Breakout互換USBシリアル変換モジュールで書き込みテストした。元々はWs☆NakさんところのWSN121Bだ。ライタソフトは、avrdudeとavrdude-GUIの組み合わせ。すこぶる快調。

Breakout FTDI Bitbangライタ互換で書き込み

Breakout FTDI Bitbang互換ライタで書き込み


おわりに

SparkFun’s FTDI Basic Breakoutには新旧の製品があるが、どちらも似たような回路なので同じライタケーブルでBitbangライタになるはず。
ライタケーブルで化けたBitBangライタの回路は簡素化されたものだが、SparkFun’s FTDI Basic Breakoutの元々のUSBシリアル変換機能を損なうことなく、簡単にBitbangライタになる。
他社のFT232RLが載ったUSBシリアル変換モジュールも、適切なavrdude.confのライタ登録とライタケーブルによってBitBangライタにすることが可能だろう。

補足

2011/06/30修正

kugaさんのご指摘とsenshuさんのご指示によりCB4がavrdudeでは利用ができなことが分かったので表を修正した。