AVRISP mkII とAVR StudioとArduinoIDE

AVR Studio5を使って書き込みます


Arduino初心者の私ですが、AVRISP mkIIを購入しましたので、早速、新品のATMEGA328P-PUにArduinoのブートローダーを書き込んでみました。

まず、ATMEL社のWebよりAVR Studio5をダウンロード、そしてインストール。続いてAduinoボードから現在動作しているATMEGA328を、足を曲げないよう丁寧に取り外し、新規に購入したATMEGA328に装着し直します。AVRISP mkIIをISPコネクタにつなぎ、さらにUSBケーブルでPCに接続します。Arduinoボード本体も電源を入れます。

AVR Studio5を起動して「Tools – AVRprograming」の順に進み [Tool]欄が”AVRISP mkII”, [Device]欄が”ATmega328P”,[Interface]欄が”ISP”になるようにセットして「Apply」ボタンをクリックします。その後表示された「Interface settings」メニューをクリックすると、書き込みスピードの設定画面になります。ここはデフォルトのまま125KHzにしておきました。

さて次は”Arduino bootloader”の指定です。やはり左のメニューから「Memories」をクリックして、[Flash]欄に適正なHexファイルを指定します。最後に「Program」ボタンをクリックで書き込むことができます。その後メニューの 「Fuses」 をクリックしてヒューズビットを書き込みました。

今回私は 
arduino-1.0\hardware\arduino\bootloaderes\atmega\ATmegaBooT_168_atmega328.hex を書き込んでみました。

書くと簡単ですが、私が上記の手順を発見するまで結構時間がかかってます。(….半日ほど)でも、実際の書き込み作業は数秒で終わり、まったくあっけないです。

果たして生ATMEGA328はArduinoの動作をはじめました。もう、私は得意満面です。

ところが、です。今度はAduinoIDEから同様に書き込もうとしましたが、何回やってもエラーが出てうまくいきません。原因を調べたところ。ここに回答が載っていました。

AVR StudioとArduinoIDEは、同時にこの機能を使うことはできないみたいです。具体的にはAVR Studioが使うAVRISP mkII用のUSBドライバとArduinoIDEが使うAVRISP mkII用のUSBドライバが違う物で、共存できないとのことでした。

そういえば、AVR Studio5をインストールするときに”USB なんたら jungo driver をインストールするか?”との表記があったような気がします。 「当然でしょう!」と悪態ついた事を思い出しました。

ArduinoIDE用のAVRISP mkII用USBドライバは上記フォーラム中に書いてありますが、

..\arduino-XXXX\hardware\tools\avr\utils\libusb\bin 以下のディレクトリに入っていました。

ArduinoIDEの1.0版では、Fileメニューに「Upload Using Programmer」の項目があります。試してみるとブートローダだけでなく、スケッチもAVRISP mkII経由で書き込みができました。すごいですね、Arduino!