ATmega328からATmega328にArduinoブートローダーを書き込む

秋月電子で購入したBootloader書き込み済みAtmega328Pは、ブレッドボードにちょこっと配線をするだけでArduino Uno相当として使えるため重宝している。

秋月電子より安価な価格設定でブートローダー書込み済のATmega328が某オンラインストアで売られており買ったものの、ブートローダーが書かれていない様子で、そのままではArduinoとして使えなかったorz。

せっかく買ったのに使えないのでは勿体無いのでブートローダーの書込みにチャレンジしてみた。

スポンサーリンク

ブートローダー付きATmega328にブートローダー書込みスケッチを焼く

ブレッドボードに秋月で買った方(ブートローダー付き)のATmega328を配線して、FTDI232を接続する。FTDI232とマイコンは送受信データ線の配線の他にDTR信号をコンデンサを介してリセット入力に忘れずに配線する。

(電源まわりの配線・コンデンサは一部省略)

このセットでブートローダー書込みを行うためには、ブートローダー書込みスケッチを書き込めば良い。方法は以下の通り。

  1. ファイル->スケッチ例->ArduinoISPを選択
  2. ツール->ボード->Arduino/Genuino Unoを選択
  3. スケッチ->マイコンボードに書き込むを選択

ブートローダー書込み回路の配線&ブートローダーの書込み

下の図のように、もう一つのブレッドボード(右側)にブートローダーが書かれてない疑惑のマイコンを挿して配線し、上で用意したマイコン(左側)と接続する。ざっくり言うと2つのマイコン間でSPIの配線をして、ホストとして書込みを行う左側のマイコンのD10(SS)をターゲットとなる右側のマイコンのリセットに接続すればOK。

(電源まわりの配線・コンデンサは一部省略)

配線が終わったら、

  1. ツール->ボード->Arduino/Genuino Unoを選択(上で選択しているので省略可能)
  2. ツール->書込み装置->Arduino as ISPを選択
  3. ツール->ブートローダーを書き込む

を実行すると無事ブートローダーを書込み出来た。そして、テストがてらブートローダーの書込みが終わった右側のマイコンを外して左側のマイコンと入れ替えて上と同様の手順でブートローダー書込みスケッチを焼いたところ無事成功!こんなに簡単ならわざわざブートローダー書込み済みなんて買わずに素のAVRマイコン買えばいいじゃん(笑)

まとめ

Arduinoのブートローダーが書き込まれたAVRマイコンが最低1つあれば、あとは比較的安価な素の状態のAVRマイコンにブートローダーを書き込める。安物買いの銭失いになるところだったが、無事ATMega328にブートーローダーを書き込んで使えるようにすることが出来た。

また別記事にまとめたように、カスタム版のブートローダーを書き込むことによって使い勝手を向上させることも出来る。

ATMega328はAliexpressなどでは一個150円前後で売られているようだ。一昔前はマイコン電子工作というと数千円でマイコンボードを買って来て有料で開発環境も揃えて、という感じだったが今では殆ど無料で何でも揃ってしまう。良い時代になったものだ。

コメント