もちろんARDUINOを一つ持っていれば、教科書通り新品のATMega328Pにブートローダーを書き込むことができます。http://arduino.cc/en/Tutorial/ArduinoISP
何かの拍子でARDUINO上のATMega328Pを壊すと回復不能のようで不安ですよね。ARDUINOに頼らずにプログラマーを確保する一番簡単な方法はFT-232Rを使うプログラマーです。この際ホストPC側のプログラムにはAVRDUDEというプログラム(6.1-2以降)が必要です。(この話は後で書きます)
ここで重要なのは、FT232Rというのは単なる非同期シリアルへの変換だけでなくかなり高機能な同期シリアル変換機能を持っているということです。この機能を使うと「遅い」といわれたシリアルポートを使ったbitbang(ビット叩き)とは異次元の高速書き込みができることです。
FTDI製のFT-232Rという石はUNOになる前のUSBのARDUINO duemilenoveには乗っていて、この場合うまくジャンパー飛ばしてつなげばプログラマーとして使えるとのことです。
http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
この特性に注目した設計をされているUncompatinoというARDUINO (UNOの前の)Duemilenove (半)互換ボードは、通常のICSPコネクターはないもののボード上のFT232Rチップを使ってブートローダーを書き込めるようにできたショートピン2*4本が立っています。(たしか基板+部品で1300円程度とお買い得ですが、表面実装のFT-232Rの半田づけがあるので中上級者用)
http://akizukidenshi.com/catalog/g/gP-07487/
http://akizukidenshi.com/download/ds/akizuki/k6096_manual_20130816.pdf
またTTL-232R-5Vという、既製のUSBからTTLレベル非同期シリアル変換ケーブルもプログラマーとして使えるはずです。
http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm
http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf
具体的には上記ケーブル(私は秋月で1,580円で購入)とICSP用の6PINメスが両方についたケーブル(私はマルツで【LFCBL06-01】6ピンフラットケーブルを154円で購入)を購入します。6PINにコネクターのみを探してもまず見つからないし高いので注意しましょう。そして2列のピンヘッダーを3+1+9=13本の幅で切り出しこれの後ろ側を半田付で結線するだけでアダプターになります。(コネクター間に1本分余裕が要ります)
# TTL-232R GND 1 Black -> ICPS GND (6 pin)
# TTL-232R CTS 2 Brown -> ICPS MOSI (4 pin)
# TTL-232R VCC 3 Red -> ICPS VCC (2 pin)
# TTL-232R TXD 4 Orange -> ICPS RESET (5 pin)
# TTL-232R RXD 5 Yellow -> ICPS SCK (3 pin)
# TTL-232R RTS 6 Green -> ICPS MISO (1 pin)
実写真へのリンク: 配線直後 と 安定化後(ホットメルトの接着剤で固めて配線が切れたりするのを防止。半田付け/接着剤の両工程はピンヘッダーをブレッドボードなどに刺し固定して行うこと。途中で動かすとピンが動いてしまいます。)
FT232RL
|
|||||
FT232RL
|
Bit-banging
data
|
Diecimila/Duemilnove
|
TTL-232R
|
ttl232r Adapter
|
Uncompatino
|
TXD
(1)
|
D0
|
4
ORANGE
|
5
(RESET)
|
→
2 ATmega
|
|
RXD
(5)
|
D1
|
5
YELLOW
|
3
(SCK)
|
→
3 ATmega
|
|
RTS#
(3)
|
D2
|
6
GREEN
|
1
(MISO)
|
||
CTS#
(11)
|
D3
|
X3-1
|
2
BROWN
|
4
(MOSI)
|
o
o→ MISO
|
DTR#
(2)
|
D4
|
||||
DSR#
(9)
|
D5
|
X3-2
|
o
o→ SCK
|
||
DCD#
(10)
|
D6
|
X3-3
|
o
o→ MOSI
|
||
RI#
(6)
|
D7
|
X3-4
|
o
o→ RESET
|
||
VCC
|
3
RED
|
2
(VCC)
|
|||
GND
|
1
BLACK
|
6
(GND)
|
Arduino
main MCU side
|
||
ATMega328
|
ICPS
|
Arduino
|
MOSI (17)
|
4
|
J3-4 (D11)
|
MISO (18)
|
1
|
J3-5 (D12)
|
SCK (19)
|
3
|
J3-6 (D13)
|
RESET (1)
|
5
|
Switch
|
VCC
|
2
|
|
GND
|
6
|
AVRDUDE: -c ttl232r と指定してください。本結線に合わせた設定になります。
(-c ft232r では「Device is not responding to program enable. Check connection.」といわれて動きません。ご注意ください)
(-c ft232r では「Device is not responding to program enable. Check connection.」といわれて動きません。ご注意ください)
No comments:
Post a Comment