Arduino boot loaderのお手軽書き込み方法

唯岸 雪

唯岸 雪

20220315に作成
この記事は最終更新から1年以上が経過しています

Atmegaを奪われたArduino UNOが机の上に転がっていたり、ブートローダが吹き飛んだAtmega328pがあったりしますよね。今回は一番楽に(たぶん)Arduino UNOにブートローダを書き込む方法を紹介します。

用意するもの

  • ブートローダ がすでに書き込まれているArduino UNO(書き込み装置として使用)
  • Arduino UNO(bootloader なし)
  • ジャンパ線(6本ぐらい)
  • USB TYPE-B 2.0 ケーブル(書き込み装置用)

書き込み装置の作成

まず、Arduino UNOをAtmegaライターとして利用するための準備を行います。
スケッチ例の中からArduinoISPを開いて、書き込み用のArduino UNOに書き込みます。
ファイル >> スケッチ例 >> 11.ArduinoISP >> ArduinoISP
ArduinoISP

ピンの接続

下記の表のSignalの通りに書き込み用Arduino UNOと書き込まれるArduino UNOをつなげてください。

対応するピン

Arduino UNO(書き込み装置)

PinSignal
GNDGND
5VVCC
10RESETターゲットのマイコンをリセットする
11MOSI
12MISO
13SCK

Arduino UNO(書き込まれる側)

PinSignal
GNDGND
5VVCC
RESETRESET
11MOSI
12MISO
13SCK

書き込み

※書き込み装置が5V、ターゲットが3.3Vの組み合わせで書き込んではいけません 壊れます。

この方法ではArduinoISPを利用している為、ツールの欄にある書き込み装置の項をArduino as ISPに変更してください。
SelectArduinoISP

ボードとシリアルポートを正しく設定して、ブートローダに書き込むをクリックしてください。これでブートローダの書き込みは完了です。
WriteBootloader

解説

なぜ、この方法で書き込めるかの解説です。一般的なことしか書いていませんが不備があれば指摘をお願いします。

そもそも、Arduino UNOはUSBの書き込み機能とI/Oを備えたAtmega328P用基板です。そのため、ISPを使う際に使用するピンに正しくつなげてしまえば書き込みすることができます。 ISP用のピンヘッダをつかって書き込むと少々めんどくさかったりするので、使えるときは楽をしましょう。

PinMapping.jpg

ATmega168/328P-Arduino Pin Mappingより引用

SHARE


唯岸 雪
雑魚ロボコニスト