333円のUSB-RS232変換器でBitBang焼き込みできるか?
Amazonで「3個 ミニ FTDI232 3.3V 5.5V FT232RL FTDI USB-TTL シリアル コンバーター アダプター モジュール for Arduino」で999円というのが売っていたので購入してみました。1個あたり333円です。
購入した理由は安いのもありますが、ピンを増設するためのホールが用意されていたので、FTDIのチップを使っているのなら、BitBang書き込みもできるんではなかろうか、と考えたのです。
ピン配置
幅600milのDIP18ピンのような配置なので、そのつもりで印刷されているシルクスクリーンを読み取ってピン番号に割り当ててみました。チップの実装方向に合わせて並べると以下のようになってました。
ピン番号 | ラベル | ピン番号 | ラベル |
1 | TXD | 18 | GND |
2 | DTR | 17 | TXL |
3 | RTS | 16 | RXL |
4 | VCC | 15 | 5V |
5 | RXD | 14 | 3.3V |
6 | RI | 13 | CTS |
7 | GND | 12 | SLEEP |
8 | RSD | 11 | TEN |
9 | DCD | 10 | PWREN |
BitBang焼き込みするためには
CTS, DSR, DCD, RIの4本信号線が必要ですが、DSRが見当たりません。チップのピン配置から辿っていくと8番ピンのRSDが相当します。シルクスクリーンの描き間違いでしょうか?
なのでBitBang焼き込みするためには次のように繋ぐ必要があります。
FT232 | ATmega | ||
13 | CTS# | D12(MISO) | 18 |
8 | DSR# | D13(SCLK) | 19 |
9 | DCD# | D11(MOSI) | 17 |
6 | RI# | !RESET | 1 |
3.3Vに設定した場合の問題
電源を3.3Vに設定できるのですが、ボード上に3端子レギュレーターが見当たりません。FT232RLのチップの3.3V出力は拡張ボードをドライブできるほどの電流は出せません。嫌な予感がしてテスターを当ててみると、やっぱりFT232RLの3.3V出力がそのまんま電源出力として繋がってました。
欠陥品とまでは言いませんが、3.3Vでちょっと大きな回路に使うとすぐに壊れるでしょう。それでこんなに安いのかとちょっと納得。
結果
BBBB Rev.2ができた時、その前に使っていたブレッドボードが空いたのでそのブレッドボードでBitBangでブートローダーも、シリアルでスケッチ書き込みも両方可能なボードを配線してみました。
先の3.3V電源の課題があるため、変換器上の電源切り替え用のジャンパースイッチは完全に解放にし、外付け3.3V3端子レギュレーターを介して変換器のVccに戻すように変更しました。
スケッチ書き込みもブートローダー書き込みもUSB1本で繋ぎかえも設定変更もせずに両方あっさりとできてしまいました。
USBコネクタはmini-Bなので、欠点は全て引き継がれていますが、もう完全に開き直って3.3V専用ボードにしてしまいました。
ICソケットよりブレッドボードの方がマイコンチップの抜き差しが楽なので、抜き差しを頻繁にする場合にはこちらの方が気楽に使えます。