Arduino用ブートローダ/スケッチライタの製作(3)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ
2015年10月26日 ブレッドボードを使ってブートローダを書き込む手順を一部変更。

5-2.U1のATmega328Pにブートローダを書き込む(キットの場合は不要)

基板ができたら、U1のATmega328PにArduinoのブートローダを書き込みます。なお、キットを購入いただいた方は、ブートローダとArduinoISPのスケッチを書き込んだATmega328Pが付属していますので、このステップは省略できます。

3.3Vの書き込みができるように、クロック周波数が8MHzのArduino Pro 328 3.3V/8MHzのブートローダを書きこむことにします。(Arduino Pro 328 3.3V/8MHzのブートローダを書きこんだATmega328Pを5Vの電源で動作させても問題はありませんが、Arduino Unoなどの16MHz動作のブートローダを書きこんだATmega328Pを3.3Vの電源で動作させると、スペックオーバーになります)

ただ、ブートローダライタを作るのに、ブートローダの書き込み作業が必要になる点が問題です。ここでは、Arduino Uno用ブートローダライタシールドの製作(1)の記事で紹介した方法で、ブートローダを書き込むことにします。この記事では、Arduino Unoとブレッドボードを組み合わせてブートローダを書きこむ方法と、Arduino Unoにブートローダライタシールドを装着してブートローダを書きこむ方法の2種類を紹介していますが、基本的に、ブートローダライタシールドは、ブレッドボード上の回路をシールド化しただけなので、2つの方法は本質的に同じです。

以下、ブレッドボードを使う方法と、ブートローダライタシールドを使う方法の2つを順に紹介します。

5-2-1.ブレッドボードを使って、ブートローダを書きこむ方法

Arduino Uno1台、ブレッドボード1個、16MHzまたは8MHzの水晶振動子1個、22pFのセラミックコンデンサ2個、10kΩの抵抗1個、10μFの電解コンデンサ(10V以上)1個、ブレッドボード用のジャンパ線10本程度、USBケーブル、Arduino IDE 1.0.5がインストールされたWindowsパソコン1台を用意し、以下の手順でブートローダを書きこんでください。なお、確認はしていないものの、Arduino IDEのバージョンが1.0.1~1.0.4の物でも、同じ方法でうまく行くと思います。

【手順1】Arduino UnoとパソコンをUSBケーブルで接続する
【手順2】 Arduino IDEを起動し、スケッチの例からArduinoISPのファームウェア(スケッチ)を開く
図3、ArduinoISPのスケッチを開く
図3、ArduinoISPのスケッチを開く
【手順3】 ツール→マイコンボードメニューでArduino Unoを選択する
図4、Arduino Unoを選択する
図4、Arduino Unoを選択する
【手順4】 ツール→シリアルポートメニューでArduino Unoのポート番号(COM番号)を指定する

注:下の図ではCOM15を選んでいますが、皆さんの環境に合わせて、COM番号を選んでください

図5、シリアルポートを選択する
図5、シリアルポートを選択する
【手順5】 Arduino UnoにArduinoISPのスケッチを書き込む

下の図の様に、右矢印ボタンでArduinoISPのスケッチを書き込んでください。

図6、ArduinoISPのスケッチの書き込み
図6、ArduinoISPのスケッチの書き込み
【手順6】 次の回路図のようにブレッドボードを使ってArduinoとATmega328Pを接続する
図7、ArduinoとATmega328Pの接続(水晶振動子あり)
↑ 画像をクリックするとPDFファイルで表示
図7、ArduinoとATmega328Pの接続(水晶振動子あり)
写真21、ArduinoとATmega328Pの接続風景(水晶振動子あり)
写真21、ArduinoとATmega328Pの接続風景(水晶振動子あり)

上の写真の通り、RESET側を+、GND側を−として、10μFの電解コンデンサを付けてください。極性を反対にすると、電解コンデンサが破裂する危険があります。

回路図中の水晶振動子(X1)には16MHzと記入していますが、8MHzの水晶振動子でもかまいません。

なお、ブートローダを書き込むATmega328Pが、未使用の新品なら、書き込み回路から水晶発振回路を取り除いても、正常に書き込めます。水晶発振回路を取り除くと、次の様に回路が簡略化され、配線が楽になります。

図8、ArduinoとATmega328Pの接続(水晶振動子なし)
↑ 画像をクリックするとPDFファイルで表示
図8、ArduinoとATmega328Pの接続(水晶振動子なし)
写真22、ArduinoとATmega328Pの接続風景(水晶振動子なし)
↑ 画像をクリックすると拡大
写真22、ArduinoとATmega328Pの接続風景(水晶振動子なし)
【手順7】 ツール→マイコンボードメニューでArduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328を選ぶ
図9、Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328の選択
図9、Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328の選択
【手順8】 ツール→書込装置メニューでArduino as ISPを選ぶ
図10、Arduino as ISPの選択
図10、Arduino as ISPの選択
【手順9】 ツール→ブートローダを書き込むメニューを選び、ブートローダを書き込む
図11、ブートローダの書き込み
図11、ブートローダの書き込み

以上の手順で、ブートローダが書き込めるはずです。

図12、書き込み完了時のメッセージ
図12、書き込み完了時のメッセージ
広告

5-2-2.ブートローダライタシールドを使って、ブートローダを書きこむ方法

Arduino Uno1台、ブートローダライタシールド1台、USBケーブル、Arduino IDE 1.0.5がインストールされたWindowsパソコン1台を用意し、以下の手順でブートローダを書きこんでください。なお、確認はしていないものの、Arduino IDEのバージョンが1.0.1~1.0.4の物でも、同じ方法でうまく行くと思います。

【手順1】 ブートローダライタシールドをArduino Unoに装着し、SW1をAUTO RESET側に設定する。
写真23、ブートローダライターシールドの準備
↑ 画像をクリックすると拡大
写真23、ブートローダライターシールドの準備
【手順2】 Arduino UnoとパソコンをUSBケーブルで接続する。
【手順3】 ファイル→スケッチの例メニューからArduioISPのファームウェア(スケッチ)を開く
図3(再掲)、ArduinoISPのスケッチを開く
図3(再掲)、ArduinoISPのスケッチを開く
【手順4】 ツール→マイコンボードメニューでArduino Unoを選択する
図4(再掲)、Arduino Unoの選択
図4(再掲)、Arduino Unoの選択
【手順5】 ツール→シリアルポートメニューでArduino Unoのポート番号(COM番号)を指定する

注:下の図ではCOM15を選んでいますが、皆さんの環境に合わせて、COM番号を選んでください

図5(再掲)、シリアルポートの選択
図5(再掲)、シリアルポートの選択
【手順6】 Arduino UnoにArduinoISPのスケッチを書き込む

右矢印ボタンでArduinoISPのスケッチを書き込んでください。

図6(再掲)、ArduinoISPのスケッチの書き込み
図6(再掲)、ArduinoISPのスケッチの書き込み

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

写真24、Heartbeat LEDの点滅
写真24、Heartbeat LEDの点滅
【手順7】 ブートローダライタシールドのSW1をKILL RESET側に切り替える
【手順8】 ICソケットにマイコンIC(ATmega328P-PU)を装着する

ZIFソケットを使っている場合は、下の写真のように、ICをソケットに挿入してから、レバーを倒して固定します。

写真25、ATmega328Pの装着
↑ 画像をクリックすると拡大
写真25、ATmega328Pの装着
写真26、ATmega328Pの固定
↑ 画像をクリックすると拡大
写真26、ATmega328Pの固定
【手順9】 ツール→マイコンボードメニューでArduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328を選ぶ
図9(再掲)、Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328の選択
図9(再掲)、Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328の選択
【手順10】 ツール→書き込み装置メニューでArduino as ISPを選ぶ
図10(再掲)、Arduino as ISPの選択
図10(再掲)、Arduino as ISPの選択
【手順11】 ツール→ブートローダを書き込むメニューを選び、ブートローダを書き込む
図11(再掲)、ブートローダの書き込み
図11(再掲)、ブートローダの書き込み

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

写真27、Programming LEDの点灯
写真27、Programming LEDの点灯

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

図12(再掲)、書き込み完了時のメッセージ
図12(再掲)、書き込み完了時のメッセージ
【手順12】 ATmega328P-PUをICソケットから外す

このページではU1のATmega328PにArduino Pro 328 3.3V/8MHzのブートローダを書きこむ方法について説明しました。次のページでは、このATmega328PにArduinoISPのファームウェアを書き込む方法について説明します。

目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ

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

関連ページ

関連製品

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