Arduino Uno用ブートローダライタシールドキットサポートページ(3)

このページをスマートフォンなどでご覧になる場合は、画面を横長にする方が読みやすくなる事があります。
目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ
Arduino Uno用ブートローダスケッチライタシールドキット 商品名 Arduino Uno用ブートローダスケッチライタシールドキット
税抜き小売価格 1440円
販売店 スイッチサイエンス
2015年10月20日 暫定公開。
2015年10月31日 正式公開。

8.ATmega328PにArduino Unoのブートローダを書き込む方法

完成したArduino Uno用ブートローダスケッチライタシールドを用いて、ATmega328PにArduino Unoのブートローダを書き込む方法を説明します。

なお、Arduino Unoのブートローダを書き込んだATmega328Pを動作させるには、外部クロック源として16MHzの水晶振動子が必要になります。

以下の手順に従って、ブートローダを書き込んでください。

【手順1】ブートローダライタシールドをArduino Unoに装着し、CN3(KILL RESETと書いてあるピンヘッダ)からジャンパピンを取り除く
写真32、Arduino Unoにブートローダライターシールドを装着し、CN3のジャンパピンを取り除く
↑ 画像をクリックすると拡大
写真32、Arduino Unoにブートローダライターシールドを装着し、CN3のジャンパピンを取り除く
【手順2】Arduino UnoとパソコンをUSBケーブルで接続する。
【手順3】Arduino IDEを起動し、ファイル→スケッチの例メニューからArduinoISPのファームウェア(スケッチ)を開く
図1、ArduinoISPのスケッチを開く
図1、ArduinoISPのスケッチを開く
【手順4】ツール→マイコンボードメニュー(Arduino IDE 1.0.Xの場合)を開いてArduino Unoを選択する
図2、Arduino Unoを選択する
図2、Arduino Unoを選択する

Arduino IDE 1.0.Xの場合

注:Arduino IDE 1.6.Xまたは1.7.Xをお使いの場合は、ツール→ボードメニューになります。

図3、Arduino Unoを選択する
図3、Arduino Unoを選択する

Arduino IDE 1.6.Xおよび1.7.Xの場合

【手順5】ツール→シリアルポートメニュー(Arduino IDE 1.0.Xの場合)でポート番号(COM番号)を指定する
図4、ポート番号を指定する
図4、ポート番号を指定する

Arduino IDE 1.0.Xの場合

注1:上の図ではCOM3を選んでいますが、実際にはご自分の環境に合わせてポート番号を指定してください。

注2:Arduino IDE 1.6.Xまたは1.7.Xをお使いの場合は、ツール→ポートメニューになります。

図5、ポート番号を指定する
図5、ポート番号を指定する

Arduino IDE 1.6.Xおよび1.7.Xの場合

広告
【手順6】 Arduino UnoにArduinoISPのスケッチを書き込む

下の図の様に、右矢印ボタンをクリックして、ArduinoISPのスケッチをArduino Unoに書き込みます。

図6、ArduinoISPのスケッチを書き込む
図6、ArduinoISPのスケッチを書き込む

ArduinoISPのスケッチが正常に書き込めると、HeartbeatのLED(LED2)が明るくなったり暗くなったりを繰り返します。

写真33、Heartbeat LEDの点滅
↑ 画像をクリックすると拡大
写真33、Heartbeat LEDの点滅
【手順7】CN3にジャンパピンを装着する
写真34、CN3にジャンパピンを装着する
↑ 画像をクリックすると拡大
写真34、CN3にジャンパピンを装着する
【手順8】 ツール→書込装置メニューでArduino as ISPを選択する
図7、Arduino as ISPを選択
図7、Arduino as ISPを選択
【手順9】 ZIFソケットにマイコンIC(ATmega328P-PU)を装着する

下の写真のように、マイコンをソケットに挿入してから、レバーを倒して固定します。

写真35、マイコンのZIFソケットへの挿入
↑ 画像をクリックすると拡大
写真35、マイコンのZIFソケットへの挿入
写真36、マイコンの固定
↑ 画像をクリックすると拡大
写真36、マイコンの固定
【手順10】 ツール→ブートローダを書き込むメニューを選び、ブートローダを書き込む
図8、ブートローダを書き込む
図8、ブートローダを書き込む

ブートローダの書き込み中は、ProgrammingのLED(LED4)が点灯します。

写真37、Programming LEDの点灯
↑ 画像をクリックすると拡大
写真37、Programming LEDの点灯

しばらくすると、ブートローダが書き込めるはずです。

図9、書き込み完了メッセージ
図9、書き込み完了メッセージ

ブートローダの書き込みが終わったら、ProgrammingのLEDは消えます。

写真38、Programming LEDの消灯
↑ 画像をクリックすると拡大
写真38、Programming LEDの消灯

もし、ブートローダの書き込みに失敗すると、ErrorのLED(LED3)が点灯して書き込みが中断します。その場合は、正しい手順で書き込んでいるか再確認の上、もう一度ブートローダを書き込んでください。

写真39、Error LEDの点灯
↑ 画像をクリックすると拡大
写真39、Error LEDの点灯

注:エラーの発生の状況によっては、ErrorのLEDが点灯しない事もあります。必ず画面のメッセージを確認してください。

【手順11】 マイコンをZIFソケットから外す

ZIFソケットのレバーを立ててからマイコンを取ってください。

続けて別のマイコンにブートローダを書き込む場合は、手順9~11を繰り返してください。

9.ATmega168にArduino Duemilanoveのブートローダを書き込む方法

前章のATmega328PにArduino Unoのブートローダを書き込む方法において、手順8と手順9の間で、ツール→マイコンボードメニュー(Arduino IDE 1.0.Xの場合)でArduino Diecimila or Duemilanove w/ ATmega168を選ぶと、ATmega168にArduino Duemilanoveのブートローダを書き込めます。

なお、Arduino Duemilanoveのブートローダを書き込んだATmega168を動作させるには、外部クロック源として16MHzの水晶振動子が必要になります。

注:末尾にPの付いたATmega168Pという型番のAVRマイコンがありますが、それにはここに書いた方法でブートローダを書き込めません。後述する方法で書き込んでください。

図10、Arduino Diecimila or Duemilanove w/ ATmega168の選択
図10、Arduino Diecimila or Duemilanove w/ ATmega168の選択

Arduino IDE 1.0.Xの場合

Arduino IDE 1.6.Xまたは1.7.Xをお使いの場合は、ツール→マイコンボードメニューで一旦Arduino Duemilanove or Diecimilaを選んでから、ツール→プロセッサメニューでATmega168を選びます。

図11、Arduino Duemilanove or Diecimilaの選択
図11、Arduino Duemilanove or Diecimilaの選択

Arduino IDE 1.6.Xおよび1.7.Xの場合

図12、ATmega168の選択
図12、ATmega168の選択

Arduino IDE 1.6.Xおよび1.7.Xの場合

10.ATmega168/328Pに書き込んだブートローダの動作確認をする方法

Arduino IDEの画面に「ブートローダの書込みが完了しました。」と表示され、シールドのErrorのLEDが点灯していなければ、基本的にはブートローダが書き込めているはずですが、実際にブートローダを起動して動作を確認する方法を説明します。

そのための一番簡単な方法は、例えばATmega328PにArduino Unoのブートローダを書き込んだ場合なら、Arduino Unoに載っているATmega328P-PUを、自分でブートローダを書き込んだものに交換してみる方法です。ただし、Arduino Unoでも、表面実装のATmega328Pを使用しているタイプは、マイコンの交換ができませんので、ここで説明する方法は使えません。

下の写真を参考に、ATmega328P-PUを交換して、何か適当なスケッチを書き込んでみてください。ブートローダが正常に機能していれば、スケッチが書き込めて、その後、そのスケッチが動作し始めるはずです。(スケッチの例の中にある01.BasicsのBlinkという、Arduino内蔵LEDを点滅させるスケッチを書き込めば、Arduino単体でスケッチの動作まで確認できるのでお勧めです)

写真40、Arduino UnoへのATmega328P-PUの装着
↑ 画像をクリックすると拡大
写真40、Arduino UnoへのATmega328P-PUの装着

なお、ATmega168にArduino Duemilanoveのブートローダを書き込んだ場合は、もちろんArduino Duemilanoveに搭載されているATmega168(あるいはATmega328P)と交換すれば、ブートローダの動作試験ができるのですが、Arduino Duemilanoveがなくても、Arduino UnoのATmega328Pと交換することで、ブートローダの動作試験が行えます。

ICソケットに挿入されたマイコンを交換時には、リード(足)を傷めないように気をつけることが重要です。

ICを引き抜くための工具も市販されていますが、100円ショップの精密ドライバーセットに入っている小型のマイナスドライバーでも綺麗にICを引き抜けます。ICソケットとICの間にマイナスドライバーをこじ入れて、少しずつICを浮かせていきます。ICの両端を交互に少しずつ浮かせていくのがコツです。

また、新品のICは、両側のリードが平行になっておらず、ハの字型に広がっています。あらかじめ平行に整形しないと、ICソケットに挿入できません。ICのリードを整形する工具もあるのですが、机の平面を使っても、ICとリードが垂直になるように整形できます。ただし、静電気でICを壊す恐れがあるので、机にICのリードを押し当てるのは本来好ましい方法ではありません。

ATmega328PにArduino Unoスケッチを書き込んだ場合は、のATmega328P-PUを交換してみて、無事にスケッチが書き込めるようなら、元のATmega328P-PUに戻してもいいですし、新しい方のATmega328P-PUをそのままArduino Unoで使ってもいいです。(ICの交換回数が減るので、後者がお勧め)

もしスケッチがうまく書き込めないなら、元のATmega328P-PUに戻してください。ブートローダがうまく書き込めていないATmega328P-PUは、もう一度ブートローダを書き直して見ましょう。

なお、Arduino Unoに使われているバネ式のICソケットは、あまり耐久性がなく、何回もICの交換を繰り返していると接触不良などの不具合が発生します。そういう意味では、Arduino Unoをブートローダの動作試験に使うのは好ましくありません。2、3回ブートローダの書き込みと動作試験をやってみて、書き込みに自信が出てきたら、Arduino Unoを使って動作試験をするのは止めましょう。

次のページでは、ATmega168/328Pに、ブートローダを利用せずにスケッチを書きこむ方法を説明します。

目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ

このページで使われている用語の解説

関連ページ

関連製品

Arduino用ブートローダ/スケッチライタキット 商品名 Arduino用ブートローダ/スケッチライタキット
税抜き小売価格 3000円
販売店 スイッチサイエンス
サポートページ
Arduino用ブートローダ/スケッチライタ(完成品) 商品名 Arduino用ブートローダ/スケッチライタ(完成品)
税抜き小売価格 3600円
販売店 スイッチサイエンス マルツ
サポートページ
AVRマイコンICSP用6Pケーブル 商品名 AVRマイコンICSP用6Pケーブル
税抜き小売価格 190円
販売店 スイッチサイエンス
サポートページ
PCBgogoのバナー
Arduino 電子工作
このサイトの記事が本になりました
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。
電子工作で学ぶ論理回路入門
このサイトの中の人が書いた本です。
ISBN:978-4-7775-2280-4
工学社の書籍の内容の紹介ページ
この本の紹介記事
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。