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

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ
2014年12月14日 準備作業(USBシリアル変換器のドライバのインストール)の項目を追加
2015年06月24日 USBシリアル変換器の出力電圧に関する注意書きを追加。

6.使い方

前のページまで、ブートローダ/スケッチライタの作り方を説明してきましたが、いよいよここから使い方の説明に入ります。

6-1.準備作業(USBシリアル変換器のドライバのインストール)

USBシリアル変換器のドライバをまだパソコンにインストールしていない人は、ブートローダ/スケッチライタを使う前に、USBシリアル変換器のドライバのインストールを済ませておいてください。また、使用するUSBシリアル変換器のCOM番号も確認しておいてください。

ドライバーのインストール方法は、USBシリアル変換器のメーカーや販売業者のサイトに載っていると思いますので、そちらを参照してください。

必要なドライバは、USBシリアル変換器に内蔵されているICのメーカーによって異なります。USBシリアル変換ICのメーカーはいくつかありますが、FTDI社のICが一番使われているようです。FTDI社のICを使ったUSBシリアル変換器をお使いの場合は、当サイトのFTDIのUSBシリアル変換器のドライバのインストール法(1)という記事でも、ドライバの入手法やインストール法など説明をしていますので、そちらを参照してください。

FTDI社のICを用いたUSBシリアル変換器の例を、次の表2に示します。USBシリアル変換器の出力電圧に関する注意点でも説明するとおり、5V出力のUSBシリアル変換器を使用することをお勧めします。

表2、FTDI社のICを用いたUSBシリアル変換器の例
製品名 メーカー 販売業者
FT232RL搭載小型USB-シリアルアダプタ 5V (FTDI BASIC 5V) SparkFun スイッチサイエンス
FT232RL搭載小型USB-シリアルアダプタ 3.3V (FTDI BASIC 3.3V) SparkFun スイッチサイエンス
FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き) スイッチサイエンス スイッチサイエンス

6-2.ATmega168/328PにArduinoのブートローダを書きこむ方法

ATmega168ATmega328PArduinoのブートローダを書きこむ方法を説明します。

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

【手順1】 CN1にUSBシリアル変換器が接続されていないことと、CN2にジャンパピンが付いていないことを確認する
写真34、CN1とCN2に何もつながっていないことを確認
↑ 画像をクリックすると拡大
写真34、CN1とCN2に何もつながっていないことを確認

USBシリアル変換器から電源が供給されている状態でジャンパピンの設定を変えると、電源がショートする事があり、故障の原因になります。過電流保護用のポリスイッチを付けているので、簡単には故障しない設計にはなっていますが、保護回路を過信する事は禁物です。

【手順2】 必要ならばCN4にジャンパピンを付ける
写真35、CN4へのジャンパピンの取り付け
↑ 画像をクリックすると拡大
写真35、CN4へのジャンパピンの取り付け

CN4(ENABLE BUZZER)にジャンパピンを付けると、ブートローダの書き込み時に、書き込みの様子を音でモニターできます。音が出るとうるさい場合は、CN4にはジャンパピンを付けないでください。

なお、どの様な音が出るかは、次の動画で確認できます。(この動画に出てくるブートローダ/スケッチライタは開発機なので、現行の基板とは細部が異なります)

音量の調整は、R18を交換し、抵抗値を変えることでできます。R18の抵抗値は標準では10kΩですが、抵抗値を低くすると音が大きくなり、抵抗値を高くすると音が小さくなります。抵抗値は1kΩ未満にならない範囲で調節してください。

【手順3】 CN5にジャンパピンを6個接続し、CN6とCN7にはジャンパピンが付いていないことを確認する。
写真36、CN5にジャンパピンを6個接続
↑ 画像をクリックすると拡大
写真36、CN5にジャンパピンを6個接続

注:CN5~CN7は、マイコンの種類の選択用のピンヘッダです。ATmega88/88V/168/168P/328Pの場合は、CN5のみに6個のジャンパピンを付けます。ATtiny44/84の場合は、CN6のみに6個のジャンパピンを付けます。ATtiny45/85の場合は、CN7のみに6個のジャンパピンを付けます。

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

使用するUSBシリアル変換器は、5V出力の物をお勧めします。3.3V出力の物でも使えますが、制限事項があります。上の写真に写っているのは、5V出力と3.3V出力を切り替えられる物です。

電源の入ったパソコンにUSBケーブルを接続すると、LED1(POWER)が点灯します。また、LED6(HEARTBEAT)が周期的に明るくなったり暗くなったりします。このようにLED6が周期的に明暗を繰り返すのはArduinoISPのファームウェアが正常に動作している印です。

【手順5】 SW1をArduinoISP側に切り替える
写真38、SW1をArduinoISP側に切り替える
↑ 画像をクリックすると拡大
写真38、SW1をArduinoISP側に切り替える

注:この操作で、ArduinoISPを使ったブートローダの書き込みが可能になります。なお、SW1(およびSW2、CN4)は電源が入っているときでも操作して構いません。ただし、ブートローダやスケッチの書き込みの最中には操作しないでください。

【手順6】 Arduino IDEを起動し、ツール→シリアルポートメニューでUSBシリアル変換器のポート番号(COM番号)を指定する

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

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

図16、シリアルポートの選択
図16、シリアルポートの選択
【手順7】 ツール→マイコンボードメニューで書き込むブートローダのArduinoの種類を選ぶ
図17、書き込むブートローダのArduinoの種類の選択
図17、書き込むブートローダのArduinoの種類の選択

上の図ではArduino Unoを選んでいますが、他の種類のArduinoのブートローダも書き込めます。マイコンの種類によって、対応するArduinoの種類が違います。

ATmega168 ・・・ Arduino Diecimila or Duemilanove w/ ATmega168、Arduino Nano w/ATmega168、Arduino Pro or Pro Mini (5V, 16MHz) w/ ATmega168、Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega168など
ATmega328P・・・ Arduino Uno、Arduino Duemilanove w/ ATmega328、Ardino Nono w/ATmega328、Arduino Pro or Pro Mini (5V, 16MHz) w/ ATmega328、Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328など

もし、ZIFソケットに装着したマイコンと、ブートローダのArduinoの種類が対応していなければ、ブートローダの書き込み時にエラーがでます。

【手順8】 ツール→書込装置メニューでArduino as ISPを選ぶ
図18、Arduino as ISPの選択
図18、Arduino as ISPの選択
【手順9】 CN3のZIFソケットにブートローダを書きこみたいATmega168/328Pを挿入し、レバーで固定する
写真39、ATmega168/328Pの挿入
↑ 画像をクリックすると拡大
写真39、ATmega168/328Pの挿入

上の写真を参考にして、ZIFソケット左上のレバーを立てた状態で、ATmega168またはATmega328Pを挿入してください。この際、マイコンの向きを反対にしないように注意してください。

マイコンがZIFソケットに挿入できたら、ZIFソケットのレバーを倒して、マイコンを固定してください。

写真40、ATmega168/328Pの固定
↑ 画像をクリックすると拡大
写真40、ATmega168/328Pの固定
広告
【手順10】 ツール→ブートローダを書き込むメニューを選び、ブートローダを書き込む
図19、ブートローダの書き込み
図19、ブートローダの書き込み

ブートローダの書き込み中は、LED3(PROGRAMMING)が点灯します。また、LED2(RX)とLED4(TX)は、USBシリアル変換器との情報のやり取りに合わせて点滅します。

手順2でCN4(ENABLE BUZZER)にジャンパピンをつけた場合は、ブートローダの書き込みの最中に音が出ます。

写真41、ブートローダ書き込み中のLED
↑ 画像をクリックすると拡大
写真41、ブートローダ書き込み中のLED

ブートローダが無事に書き込めると、LED2、LED3、LED4は消灯し、Arduino IDEの画面に「ブートローダの書き込みが完了しました。」と表示されます。CN4にジャンパピンをつけている場合は、音も止まります。

写真42、ブートローダ書き込み後のLED
↑ 画像をクリックすると拡大
写真42、ブートローダ書き込み後のLED
図20、書き込み完了時のメッセージ
図20、書き込み完了時のメッセージ

ブートローダの書き込みに失敗した場合は、LED5(ERROR)が点灯します。(エラーの出方によっては、点灯しないこともあります) また、Arduino IDEの画面にはエラーメッセージが表示されます。

写真43、ERROR LEDの点灯
↑ 画像をクリックすると拡大
写真43、ERROR LEDの点灯
図21、エラーメッセージ
図21、エラーメッセージ

注:上のエラーメッセージは、ブートローダの書き込み動作をするところで、誤ってスケッチの書き込み動作をしたときに出るものです。

【手順11】 ZIFソケットのレバーを起こして、マイコンを抜き取る

以上で、ブートローダの書き込みが終わりました。続けて同じ型番のマイコンに同じArduinoのブートローダを書き込む場合は、手順9以降を繰り返してください。

このページでは、ATmega168/328PにArduinoのブートローダを書き込む方法を説明しました。次のページでは、ブートローダを書き込んだATmega168/328Pに、さらにスケッチを書き込む方法を説明します。

目次へ  前のページへ (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の書籍購入ページに移動します。