Arduino UNO に乗っている AVR マイコン ATmega328P はブートローダを焼かないと AVR ISP として使えない(マイコンだけ差し替えても動かせない)ので、ブートローダを焼く。
の通りで、Arudino UNO のボードが二つあると簡単に焼けるんだけど、Arudino UNO の場合注意点がある(オフィシャルにも思いっきり太字で書いてある、しかも二カ所…)ので注意。
-
ArduinoISP のスケッチを焼く。Arduino IDE のメニューのスケッチの例 > ArudinoISP を選択すればOK。
-
スケッチを書き込む。
-
以下の配線にする。配線図には載ってないけど、Arudino UNO の場合、Reset と GND の間に 10uF のコンデンサを挟む!!!これが無いとうまく書き込めない。
(手前が 10uF のコンデンサ) -
ツール>書込装置 を Arudino as ISP へ
-
ツール>ブートローダを書き込む
で書き込める。UNO の場合、必ず 10uF コンデンサを挟むことを忘れずに。なお Arudino IDE 1.6.5、UNO は Rev3 (と Rev3 の互換機) で試した。
ちなみに最初 10uF コンデンサが手元に無かったので、10Kの抵抗で試したら何故かうまくいってしまった…(推奨じゃないです)。 スレで話されてるけどよくわからない… ので尋ねてみたら
Arduino は外部プルアップで 10kΩついてて、10kΩで reset と gnd を繋ぐと、平常時 2.5V しか reset にかからなくなる
そのため 100nF にかかる電圧が逆になるため、DTR ローにしても100nFから電荷が供給されるので少しだけ電圧がさがらずリセットがかからない
ただ、リセットされやすくなる、という弊害がある
とのことらしい。解るようになりたい(まだ解らない)