AVRにプログラムを書き込むにはAVRライタが必要。これまで使ってきたのは、USBaspを使ってきた。USBaspは、このキットにセットにしているもの。
これで特段困っているわけでもないけど、ArduinoをAVRライタにできるそうなのでやってみた。
ArduinoISP
ArduinoをAVRライタにするプログラムがArduinoISP。Arduino IDEに標準で含まれている。
「ファイル → スケッチ例 → ArduinoISP → ArduinoISP」とたどって開く。’
使用するボードに合せて設定。今回はArduino UNO(互換機)を使用。
後は、普通にコンパイル・書込み。これで、ArduinoがAVRライタになった。
動作確認
接続
ArduinoISP化したArduino UNOのピンアサインは次の通り。図は、Arduinoの公式サイトから引用。
Arduino UNO | 端子名 |
---|---|
10 | RESET |
11 | MOSI |
12 | MIOS |
13 | SCK |
これらは上の図の赤丸の部分。+5VとGNDは下の赤丸。これらをターゲットのISP端子に接続する。
手前がArduinoISP化したArduino UNO互換機。使用したArduino UNO互換機のカラーLEDが眩しすぎるので付箋紙(を折りたたんで)被せてある。
奥がターゲットのATtiny85。書込み用のボードはこちら。
avrdudeでチェック
では、ちゃんと使えるか確認。ArduinoISPもavrdudeで使える。
オプション「-c arduino」でArduinoISPを指定、「-P COM6」はArduinoを接続しているシリアルポート、「-b 19200」はArduinoとの通信速度(19200bps固定でいいみたい)。ターゲットデバイスは「-p」オプションで(上の例はATtiny85)。ちゃんとターゲットと通信できており、フューズ設定を読み出せた。
なお、avrdudeはこちらで入手できる。
関連記事。
Arduino IDEから使う
このArduinoISPをライタとしてArduino IDEから使用する場合は書込み装置として「Arduino as ISP」を選択する。
これとシリアルポートを適切に選択するだけ。実際にスケッチをコンパイルしてターゲットに書き込むには、「スケッチ → 書込み装置を使って書き込む」を選べばOK。
Lチカを書き込んでみて問題なく動作することを確認した(上の接続例の写真がそれ。静止画なので動かないけど)。
コメント