Arduino ブートローダーの書き込みについてです。Arduino におけるブートローダーとは、外部プログラマ (書込装置) を必要とせずに新しいファームウェアをインストールできる小さなファームウェアの事です。これがないと Arduino ボードは USB 経由でスケッチを転送できません。よって、何らかの原因でブートローダーが破損してしまった場合には、ブートローダーを再度書き込む必要があります。
書込装置 (プログラマ) には幾つか種類があります。
Arduino を書込装置にする方法です。対象ボードの ICSP 端子に接続して書き込みます。Arduino を書込装置にするには [ファイル | スケッチ例 | 11.ArduinoISP | Arduino ISP] を書き込みます。
インジケーター用の LED を接続する事もできます。
See Also:
以下を参照してください。
Arduino as ISP の一種です。Arduino UNO が必要です。DIP タイプの AVR マイコンに直接書き込む方法です。AVRISP と呼ぶと別製品になるので注意が必要です。
以下を参照してください。
Arduino 純正の書込装置です。対象ボードの ICSP 端子に接続して書き込みます。紛らわしいですが、Arduino ISP と言ったらこちらを指します。Arduino を書込装置にしたものは Arduino "as" ISP です。しかしながら Arduino を Arduino as ISP にするためのスケッチは ArduinoISP です...本当に紛らわしいですね (w
安価な書き込み装置です。対象ボードの ICSP 端子に接続して書き込みます。
以下を参照してください。
USBasp のピンアウトはこのようになっています。
10ピン <-> 6ピン変換コネクタのピンアウト (ICSP メス) はこのようになっています。
ブートローダーの書き込みには USBasp を使うのが圧倒的に楽です。5V のボードにも 3.3V のボードにもブートローダーを書き込めますので、これを一つ持っていればとても便利です...いや二つかな (w
先述しましたが、Arduino を使って Arduino as ISP という書込装置を作る事ができます。以下に各ボードでの結線を示しますがインジケーター LED は考慮していません。
事前準備として書込装置の定義を追加しておきます。書込装置に UNO しか使わない場合にはこの作業は不要です。
|
※ arduinoasisp.program.protocol が stk500v1 ではなく、最初から arduino になっている場合にはこの作業は不要です。
※ 2020/01 現在、Arduino as ISP (ATmega32U4) が存在するため、この作業は不要かもしれません。
Arduino を書込装置にするには [ファイル | スケッチ例 | 11.ArduinoISP | Arduino ISP] を書き込みます。
ボードによってはスケッチを多少変更する必要があります。
ピン | 信号 |
GND | GND |
13 | SCK |
12 | MISO |
11 | MOSI |
10 | RST |
5V | VCC |
次の接続方法も同等の配線となります。
ピン | 信号 |
ICSP 1 | MISO |
ICSP 2 | VCC |
ICSP 3 | SCK |
ICSP 4 | MOSI |
10 | RST |
ICSP 6 | GND |
See Also:
※まずは自身のブートローダーを書き換えた方がいいと思います。
ピン | 信号 |
GND | GND |
13 | SCK |
12 | MISO |
11 | MOSI |
10 | RST |
5V | VCC |
次の接続方法も同等の配線となります。UNO 等とは ICSP コネクタの向きが逆な事に注意してください。1 番ピンはこの図だと右下になります。
ピン | 信号 |
ICSP 1 | MISO |
ICSP 2 | VCC |
ICSP 3 | SCK |
ICSP 4 | MOSI |
10 | RST |
ICSP 6 | GND |
See Also:
※ボードの電圧に注意してください。
ピン | 信号 |
GND | GND |
5V or 3.3V | VCC |
13 | SCK |
12 | MISO |
11 | MOSI |
10 | RST |
See Also:
ピン | 信号 |
ICSP 1 | MISO |
ICSP 2 | VCC |
ICSP 3 | SCK |
ICSP 4 | MOSI |
10 | RST |
ICSP 6 | GND |
See Also:
ピン | 信号 |
MISO | MISO |
5V | VCC |
SCK | SCK |
MOSI | MOSI |
10 | RST |
GND | GND |
次の接続方法も同等の配線となります。ICSP コネクタの向きに注意してください。1 番ピンはこの図だと左下になります。
ピン | 信号 |
ICSP 1 | MISO |
ICSP 2 | VCC |
ICSP 3 | SCK |
ICSP 4 | MOSI |
10 | RST |
ICSP 6 | GND |
See Also:
※ボードの電圧に注意してください。
ピン | 信号 |
GND | GND |
5V or 3.3V | VCC |
15 | SCK |
14 | MISO |
16 | MOSI |
10 | RST |
See Also:
ピン | 信号 |
GND | GND |
52 | SCK |
50 | MISO |
51 | MOSI |
10 | RST |
5V | VCC |
次の接続方法も同等の配線となります。
ピン | 信号 |
ICSP 1 | MISO |
ICSP 2 | VCC |
ICSP 3 | SCK |
ICSP 4 | MOSI |
10 | RST |
ICSP 6 | GND |
See Also:
※ Arduino DUE は 3.3V です。
ピン | 信号 |
SPI 1 | MISO |
SPI 2 | VCC |
SPI 3 | SCK |
SPI 4 | MOSI |
10 | RST |
SPI 6 | GND |
See Also:
※ STM32F103 (BluePill) は 3.3V です。
ピン | 信号 |
G | GND |
3.3 | VCC |
PA7 | MOSI |
PA6 | MISO |
PA5 | SCK |
PA4 | RST |
See Also:
※ micro:bit は 3.3V です。
ピン | 信号 |
2 | RST |
13 | SCK |
14 | MISO |
15 | MOSI |
3V | VCC |
GND | GND |
See Also:
ATMega328P (Uno / Pro Mini / Nano) や ATMega2560 (Mega 2560) が載っているボードを Arduino as ISP として使う場合、自動リセット回路を無効にしなければ正しく動作しない事があります。
この場合、ボードのパターンカットを行うのは現実的ではないので、RESET<->GND 間に 10μF~22μF のコンデンサを入れて対処します。
コンデンサを入れたままだと Arduino ISP が書き込めませんので、Arduino as ISP にした後で (スケッチを書き込んだ後で) コンデンサを入れます。
See Also:
ブートローダーが書き込まれるターゲットの設定です。
ICSP 端子を持つボードの場合には単純に ICSP 端子に接続すればいいです。オス<->メス や メス<->メス のジャンパーワイヤーがあると便利です。
ターゲットボードが Nano や Micro の場合は一番ピンの位置に気を付けてください。
See Also:
Pro Mini の場合には以下のような接続になります。
ピン | 信号 |
GND | GND |
RST | RST |
VCC | VCC |
13 | SCK |
12 | MISO |
11 | MOSI |
※ボードの電圧 (5V / 3.3V) に注意してください。
See Also:
Pro Micro の場合には以下のような接続になります。
ピン | 信号 |
GND | GND |
RST | RST |
VCC | VCC |
15 | SCK |
14 | MISO |
16 | MOSI |
※ボードの電圧 (5V / 3.3V) に注意してください。
See Also:
ATtiny85 の場合には以下のような接続になります。
ピン | 信号 |
1 RST | RST |
4 GND | GND |
8 VCC | VCC |
7 SCK / D2 / A1 | SCK |
6 MISO / D1 | MISO |
5 MOSI / D0 | MOSI |
ATtiny 開発ボードを使えば ICSP 端子で接続できます。
※ Arduino IDE にボードの追加が必要です。
See Also:
以下の手順でブートローダーを書き込みます。
See Also:
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。