Arduino AVR  プログラマ(ISP: In-System Programmer)として使う

 

 

この文書はArduinoチュートリアルUsing an Arduino as an AVR ISP (In-System Programmer)の日本語訳です。

 

このチュートリアルではArduinoAVR ISP(in-system programmer)として使う方法を説明します。AVR ISPとしてArduinoを使うことにより、(新しい)AVR マイコン(Arduino で使われている ATmega168 ATmega328P)にブートローダを書き込むことができます。ここで紹介するコードは Randall Bohn 氏の mega-isp ファームウェアに基づいています。

書き込み手順

ArduinoAVRマイコンにブートローダを書き込むには以下の手順に従います。

1.    Exampleに含まれているArduinoISP スケッチを Arduino にアップロードします。このArduinoがプログラマとなります。

2.    Arduino と書き込む AVR マイコン(ターゲットと呼びます)の載ったボードを下の図のように接続します。

3.    Arduino IDE Tools > Board メニューから書き込みたいボード(ターゲット)に対応するボードを選びます (プログラマとして使うArduinoのボードではありません)。ターゲットのArduinoに対応する名前については environment page を確認します。

4.    Arduino IDE Burn Bootloader > Arduino as AVRISP をクリックします。

配線図(ターゲットが Arduino Duemilanove か Diecimilaの場合

 

 

 

下側のArduino AVR ライタとなり、上側の Arduino ATmega マイコンに書き込む例。Arduino NG 以前のバージョンではリセットピンがないため、上記の配線ができないことに注意。

 

配線図 (ターゲットが Arduino NG または、それ以前のボードの場合)

NG以前のボードには、リセット端子がないので、Atmegaマイコンの1ピンへ直接つなぐ。

 

配線図 (ブレッドボード上の AVR マイコンの場合)

もっと詳しい説明がチュートリアル Arduino to Breadboard にあります。

 

 

 

ATmegaマイコンの内蔵発振子を使う場合の接続例。水晶発振子を使うように書き込んだマイコンの場合は、この配線では書き込めないことに注意する。

Arduinoと同様に水晶発振子とセラミックコンデンサ(18から22pF)をつなぐ例。


訳者による注意書き

このチュートリアルを利用するには Arduino IDE 0018 以降が必要です。0017以前を利用している場合は新しいバージョンをダウンロードしてインストールして下さい。

また Windows 7 上の Arduino IDEと Arduino Diecimila をプログラマとして使おうとしたときに、うまくターゲットに書き込めないトラブルがありました。原因は、Arduino IDE (正確には Arduino IDE から呼び出された avrdude.exe) が書き込みのためにプログラマのArduinoと通信しようとしたときに、Arduino Diecimila のマイコンにリセットがかかり、Arduino ISP とではなく、プログラマ上のブートローダと通信してしまうためです。

対策として、プログラマから AVR マイコンを外し、リセットピンである1番ピン(上記の図では右上側になる、ピンの近くに小さい○の凹みがある)を軽く曲げて、Arduino の IC ソケットにささらないようにしました。そっと曲げないと足が折れてしまうので注意します。書き込みが終わったら、また1番ピンを元のように戻します(戻さないと普通の Arduino として使えない)。曲げ戻しを繰り返すと足が折れてしまいますし、あまりいい対策ではありませんが、参考まで。



この文書は Arduino のチュートリアル Using an Arduino as an AVR ISP (In-System Programmer) をNoriaki Mitsunaga が訳しました。文書の再利用については原文のライセンスに従います。
戻る