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

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ

5-3.U1のATmega328PにArduinoISPのファームウェアを書き込む(キットの場合は不要)

前のページの作業で、U1のATmega328Pに8MHzのArduino Proのブートローダを書きこんだので、次に、ArduinoISPのファームウェア(スケッチ)を書き込みます。この、ArduinoISPのファームウェアを書き込んだATmega328Pが、ブートローダ/スケッチライタの心臓部になります。

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

次の手順にしたがって、ArduinoISPのファームウェアを書き込んでください。

【手順1】 組み立て済みのブートローダ/スケッチライタ基板のCN2にジャンパピンを差し込む

次の写真のように、CN2(ENABLE RESET)にジャンパピン(ショートソケット)を差し込んで、ショートします。この作業により、パソコン側からU1にリセットを掛けられるようになり、U1にスケッチが書けるようになります。

写真28、CN2へのジャンパピンの差込み
↑ 画像をクリックすると拡大
写真28、CN2へのジャンパピンの差込み
【手順2】 SW1をArduinoISP側に切り替える

この操作で、USBシリアル変換器を取り付けるコネクタ(CN1)とU1(ATmega328P)の信号線がつながります。

写真29、SW1をArduinoISP側へ切り替え
↑ 画像をクリックすると拡大
写真29、SW1をArduinoISP側へ切り替え
【手順3】 U1のICソケットに、ブートローダ書き込み済みのATmega328Pを挿入する
写真30、ATmega328Pの挿入
↑ 画像をクリックすると拡大
写真30、ATmega328Pの挿入

上の写真を参考に、向きを間違えないように注意して、ATmega328PをICソケットに差し込んでください。

【手順4】 USBシリアル変換器をCN1に接続し、さらにUSBケーブルでパソコンに接続する。
写真31、USBシリアル変換器とUSBケーブルの接続
↑ 画像をクリックすると拡大
写真31、USBシリアル変換器とUSBケーブルの接続

使用するUSBシリアル変換器は、5V出力の物でも3.3V出力の物でも構いません。上の写真に写っているのは、5V出力と3.3V出力を切り替えられる物です。

電源の入ったパソコンにUSBケーブルを接続すると、LED1(POWER)が点灯します。

【手順5】 Arduino IDEを起動し、スケッチの例からArduinoISPのファームウェア(スケッチ)を開く

ここではバージョン1.0.5のArduino IDEを使っています。確認はしていませんが、バージョン1.0.1~1.0.4のArduino\ IDEでも問題なく使えるはずです。

図3(再掲)、ArduinoISPのスケッチを開く
図3(再掲)、ArduinoISPのスケッチを開く
【手順6】 159行目に"SPCR = 0x53;"と書いてあるのを確認する
図13、「SPCR = 0x53;」を見つける
図13、「SPCR = 0x53;」を見つける

この行は、ArduinoISPがマイコンにブートローダやスケッチを書き込む時に使うSPIインターフェースの初期設定を行っています。

【手順7】元々の159行目をコメントアウトし、"SPCR = 0x52;"に書き換える
図14、「SPCE = 0x52」に書き換える
図14、「SPCE = 0x52」に書き換える

ArduinoISPのファームウェア(スケッチ)は、16MHz動作のArduino用に作られています。今回は8MHz動作のArduino互換機にArduinoISPのファームウェアを書き込みますから、8MHz用にソースファイルを書き換える必要があります。なお、この書き換えをせずに、元のソースファイルのままでも、ブートローダやスケッチの書き込みが少し遅くなるだけで、大きな弊害はありません。

広告
【手順8】 ツール→シリアルポートメニューでUSBシリアル変換器のポート番号(COM番号)を指定する

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

図15、シリアルポートの選択
図15、シリアルポートの選択
【手順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 UnoにArduinoISPのスケッチを書き込む

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

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

ArduinoISPのファームウェアが正常に書き込めたら、LED6(HEARTBEAT)の明るさが、周期的に明るくなったり暗くなったりするはずです。これはArduinoISPのファームウェアが正常に動作している印です。

写真32、HEARTBEAT LEDの点滅
↑ 画像をクリックすると拡大
写真32、HEARTBEAT LEDの点滅
【手順11】 CN2につけていたジャンパピンを外す
写真33、CN2のジャンパピンを外す
↑ 画像をクリックすると拡大
写真33、CN2のジャンパピンを外す

CN2(ENABLE RESET)にジャンパピンを付けるのは、U1のATmega328PにArduinoISPを書き込む時だけです。これ以降、CN2にジャンパピン付ける事はありません。

また、続けてブートローダ/スケッチライタ基板を使わないのであれば、USBシリアル変換器もCN1から外してください。

このページでは、U1の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の書籍購入ページに移動します。