Arduino Unoでブートローダを書き込む

No Image

Arduino Duemilanoveではブートローダを簡単に新しいAVRマイコンに書き込むことができます。
最初から入っている「Arduino ISP」というスケッチを使えば簡単です。
しかし、Arduino Unoではそう簡単にはいきません。
Optibootという新しいブートローダが入ってるかららしいんですが・・・
今までUnoではできないと思っていたんですが違うスケッチを使えばいけるようです。

スポンサーリンク

用意するものはArduinoとAVRマイコン(ATmega328P)のみ。
そして一番下にあるリンクからOptifix.zipをダウンロードしてください。
次にArduino UnoとATmega328Pを下図のように接続します。
SimpleBreadboardAVR

そしてダウンロードしたスケッチをコンパイルしてアップロードします。
次にSerial Monitorを起動して「19200 baud」を選択します。
Arduino IDE optifix

Arduinoに正しくAVRマイコンが接続されていない、または既にブートローダーが焼きこまれていると

OptiFix Bootstrap programmer.
2011 by Bill Westfield (WestfW)

Starting Program Mode [OK]

Reading signature: Bad value: 0
(no target attached?)

Type 'G' or hit RESET for next chip

このようなエラーメッセージが表示されます。
うまくいっていませんので、回路の確認等をしてみてください。

成功すると以下のような表示になります。

OptiFix Bootstrap programmer.
2011 by Bill Westfield (WestfW)

Starting Program Mode [OK]

Reading signature:950F
Searching for image...
Found "optiboot_atmega328.hex" for atmega328
Start address at 7E00
Total bytes read: 508

Setting fuses for programming
Lock: 3F FFE000 Low: FF FFA000 High: DE FFA800 Ext: 5 FFA400

Programming bootloader: 512 bytes at 0x3F00
Commit Page: 3F00:3F00
Commit Page: 3F40:3F40
Commit Page: 3F80:3F80
Commit Page: 3FC0:3FC0

Restoring normal fuses
Lock: F FFE000

Type 'G' or hit RESET for next chip

スポンサーリンク

これでAVRマイコンにブートローダが書き込まれました。
あとはもともとArduinoにあったATmega328Pをこのブートローダを書き込んだものに入れ替えれば、いつも通りにArduinoの言語で開発ができます。

追記

Arduino 1.0で書き込む場合は optiLoader.h の1行目を次のように変更してください。

変更前

#include <WProgram.h>

変更後

#include <Arduino.h>
Arduino Unoでブートローダを書き込む

スポンサーリンク

Leave a Comment

  • Pingback: 空IKE飛行機! Blog» Mega328のTQFPをarduino化&PAK FA解体

  • 2012/04/20

    大昔ワンボードマイコンをいじくった以外最近のマイコンは全くの初心者です。
    ArduinoUNOを使ってブートローダー焼き付けようと頑張っているのですが、焼蹴るのは
    手だけです。 漸くこのページに辿り着きダウンロードしたOptifixをコンパイルして初めてErrorなしで通る姿をみました。ですがその先シリアルモニターのメッセージは正しくAVR
    に接続されてないと言う6行のメッセージです。何度も接続回路見直しましたが正しい様です。 もう一つのATmega328Pを差し替えてアップロードしてみました。今度はシリアルモニターに成功したメッセージが確認できました。
    焼けた328PをUNOに差し替えてみたら正常に動作しました。 ありがとう御座いました。

    Reply
    • 2012/04/20

      1つ目の時のエラーメッセージは既にOptfixが焼きこまれている可能性もあります。
      一度差し替えて確認してみるといいかもしれません。

      Reply
  • 2015/02/07

    回路にコンデンサや水晶は必要ないのですか?

    Reply
    • 2015/02/08

      書き込みだけですのでコンデンサはどっちでもいいです。
      このままの状態でずっと動かし続けるなら必要だとは思いますが・・・

      出荷時の状態であればATmega328Pは内部発振で動いているので水晶振動子は必要ありません。
      しかし、ヒューズビットを変更してそのICを外部発振にしているのであれば、必要になってきますよ。

      Reply

たまさ にコメントする コメントをキャンセル