ArduinoのISP機能を使ってATmegaにBootlarderを書き込む。

Arduinoにてスケッチ(プログラム)を記入したATmega328を 単独で動作させる手法を報告しました。 (Arduinoから取り外したATmega328を単独で動作させる) その時には難しくて諦めていたBootloaderの書き込みに挑戦しました。 これで、Bootloader無しのATmega328を使って安上がりにマイコン遊びが出来ますね。Last undated on Jan 8, 2012.

今回のテストは Arduinoのtutorialを参照しながら行いました。また、途中の エラー(avrdude: stk500_getsync(): not in sync: resp=0x15)回避に関しては laclefyoshiさんのブログが大変参考になりました。


外付け部品

使った部品は以下の通りです。
  1. Arduino duemilanove (1台)
  2. 16 Mhz 水晶発振子 (1個)
  3. 22 pFコンデンサ(2個)
  4. ブレッドボードとコネクタ類
  5. ATmega328など
  6. 10 KΩ抵抗 (1個)
  7. 110-124 Ω抵抗 (1個)

手順

以下の3段階の手順です。配線作業も含めて30分もかかりません。

  1. Arduino duemilanoveにArduino ISP(In-System Programmer)を書き込む。
  2. ブレッドボードに新品のATmega328、抵抗などを接続。
  3. "Burn Bootlaoder"でブートローダーを焼く。

では、順に追って方法を解説いたします。

手順1:Arduino ISP(In-System Programmer)を書き込む。

手持ちのArduino duemilanoveにUSBケーブルだけを接続し、ISPを書き込みます。 以下のように[File]-[Examples]-[Arduino ISP]とすればスケッチが出てきます。 これを通常の手順で手順でArduino duemilanoveに書き込みます([Compile]-[Upload]を選択するだけ)。


手順2:ブレッドボードに新品のATmega328、抵抗などを接続する。

以下の写真のようにブレッドボード上のATmega328とArduinoを接続します。

最後の接続は Arduino playground(Disabling Auto Reset On Serial Connection)に書かれているように、110 Ω以下でも124 Ω以下でもだめなようです。 今回は手元にあった100 Ωと22 Ωの直列としました。実測値で120 Ωでした。


Arduino duemilanoveとATmega328との接続。
複雑そうに見えますが、10分もかかりません。

手順3:"Burn Bootlaoder"でブートローダーを焼く。

書き込み先のATmega328の設定を指定します。[Tools]-[Board]から選びます。 今回は[Arduino duemilanove or Nano w/ ATmega328]としました。16 MHz動作です。 しかし、動作電圧と周波数はスケッチ書き込み時に変更するとが出来るはずです。

最後のひと押し([Tools]-[Burn Bootloader]-[with arduino ISP])で、終了です。


1分ほどかかりますが、このような返答が帰ってくれば成功です。
マイコン、楽しいですね。

戸田システムウェア

ここで公開するアイデア/装置は安全性を保障しておりません。 用途に応じた設計を行い、十分な安全検査を行ってからご利用ください。 本サイトの情報の営利目的での利用はご遠慮ください。 本サイトの内容の無断転載を禁じます。© 2011 TYK