※この作業は,avrispmkII を必要とします。
どうも、らいです。
今回は、秋葉原のaitendoで買った、AVRマイコン用のUSBISP(ICに書き込むための道具)をwindows環境以外で使ってみることにしました。
ちなみに、ボクがlinux(以下ubuntu)を使っている理由は
・動作が軽い気がする。
・無料(これ重要!)
aitendoのセールで600円で売られていたので即買しました。
↓これ link :http://www.aitendo.com/product/9558
windows7で動作したんですが、どうもubuntuでは動作しないというか認識しないw
そこでUSBISPの内部のファームウェアを書き換えることにしました。
この記事を参考にしました。
http://www.sciencetronics.com/greenphotons/?p=938 ①
(hacking an AVR Programmer)
ケースを取り外し、本体裏面のUPジャンパーをショートさせました。
こんな感じ
①の記事によるとジャンパーをショートさせることに寄って セルフプログラミングが出来るようになるみたい。
ボクの認識では、セルフプログラミングは、マイコンのコアの部分まで書き超えることが出来る…みたいな。
それ故にファームウェアの書き換えも可能みたいな認識でいます。
ここからが問題です。 書き換えを行うためには、別に書き込むための道具が必要になります。。。
つまりこの作業は、上記のUSBISPだけでは、出来ないということです。
別のUSBISPを自作してwindowsに上記USBISPを接続後、自作USBISPに書き込むプロセスが必要かと思われます。
今回は、AVRISPmkIIを使うことにしました。 ※AVRISPmkII はubuntuで認識されます。
こんな感じで接続します。 (左:USBISP(たーげっと) 右:AVRISPmkII )
※USBISPは赤色で点灯していると思います 青色は書き換えた後に常時点灯に切り替わります。
AVRISPmkIIは、ターゲットへ給電が出来ないのでUSBISPをUSBポートに接続させます。
接続方法として
USBISP VCC GND MISO MOSI RES SCK
↓ ↓ ↓ ↓ ↓ ↓
AVRISPmkII VCC GND MISO MOSI RES SCK
こんな感じで接続しました。 そのままです。
ubuntu(linux)ないでの操作に入ります。
http://www.sciencetronics.com/greenphotons/?p=938 のサイトの一番したにある
”Download ZIP archive: 20130212_mega8_usbisp” をダウンロードします。
適当な場所で展開します。
cd コマンドで展開したディレクトリまで移動します。 "20130212_mega8_usbisp/default/"
lsコマンドで"20130212_mega8_usbisp.hex"があることの確認をします。
lsusbコマンドで接続したAVRISPmkIIが認識されていることを確認します。
※認識されていると "Atmel AVRISPmkII"とか出てきた気がします 曖昧
avrdudeコマンドでターゲット(USBISP)に書き込むわけなのですが…最初からavrdudeが入っているわけではないので、avrdudeをパソコンにインストールします。
sudo apt-get install avrdude でインストールできます。
avrdudeコマンドを使ってターゲットに書き込みます。
この記事を参考にしました。 http://c2nprds.com/122/
まずは、Fusebitの書き込み hfuse lfuse 両方とも書き込みました。
この記事を参考にして http://www.sciencetronics.com/greenphotons/?p=938
hfude = 0x9C lfuse = 0xEF
sudo avrdude -c avrispmkII -P usb -b 19200 -p m8 -U hfuse:w:0x9C:m
※hfuseの書き込みが終わったら
sudo avrdude -c avrispmkII -P usb -b 19200 -p m8 -U lfuse:w:0xEF:m
※lfuseの書き込みをします。
sudo avrdude -c AVRISPmkII -P usb -p m8 -U hfuse:r:-:h
sudo avrdude -c AVRISPmkII -P usb -p m8 -U lfuse:r:-:h
上のコマンドを実行するとカレントディレクトリにhfuseかlhuseの値が入ったファイルが作成されます。
ファイルは上書きされてしまうので コマンドを一回実行したら確認してください。
最後にファームウェアの書き換えを実行する。
avrdude -c avrispmkII -P usb -b 19200 -p m8 -U flash:w:20130212_mega8_usbisp.hex
書き換えが完了したら…
AVRISPmkIIの接続を解除して USBISPのセルフプログラミング用ジャンバを撤去した後に再度USBISPをubuntuに接続するとUSBISPが青色で点灯します。
lsusbコマンドで確認してみると
ubuntu側でもAVR用の書き込み機として認識されていることが分かります。
ちなみに、Windows側でも認識されていることがわかります。
※ドライバを当ててないので !マークが付いていますw
おまけ
ファームウェアを変更したUSBISPの動作確認として別のUSBISPを用意して上記と同じ動作をやってみました。 ※AVRISPmkIIを使わずにファームウェアの書き換えを行う。
どうも、らいです。
今回は、秋葉原のaitendoで買った、AVRマイコン用のUSBISP(ICに書き込むための道具)をwindows環境以外で使ってみることにしました。
ちなみに、ボクがlinux(以下ubuntu)を使っている理由は
・動作が軽い気がする。
・無料(これ重要!)
aitendoのセールで600円で売られていたので即買しました。
↓これ link :http://www.aitendo.com/product/9558
そこでUSBISPの内部のファームウェアを書き換えることにしました。
この記事を参考にしました。
http://www.sciencetronics.com/greenphotons/?p=938 ①
(hacking an AVR Programmer)
ケースを取り外し、本体裏面のUPジャンパーをショートさせました。
①の記事によるとジャンパーをショートさせることに寄って セルフプログラミングが出来るようになるみたい。
ボクの認識では、セルフプログラミングは、マイコンのコアの部分まで書き超えることが出来る…みたいな。
それ故にファームウェアの書き換えも可能みたいな認識でいます。
ここからが問題です。 書き換えを行うためには、別に書き込むための道具が必要になります。。。
つまりこの作業は、上記のUSBISPだけでは、出来ないということです。
別のUSBISPを自作してwindowsに上記USBISPを接続後、自作USBISPに書き込むプロセスが必要かと思われます。
今回は、AVRISPmkIIを使うことにしました。 ※AVRISPmkII はubuntuで認識されます。
こんな感じで接続します。 (左:USBISP(たーげっと) 右:AVRISPmkII )
※USBISPは赤色で点灯していると思います 青色は書き換えた後に常時点灯に切り替わります。
AVRISPmkIIは、ターゲットへ給電が出来ないのでUSBISPをUSBポートに接続させます。
接続方法として
USBISP VCC GND MISO MOSI RES SCK
↓ ↓ ↓ ↓ ↓ ↓
AVRISPmkII VCC GND MISO MOSI RES SCK
こんな感じで接続しました。 そのままです。
ubuntu(linux)ないでの操作に入ります。
http://www.sciencetronics.com/greenphotons/?p=938 のサイトの一番したにある
”Download ZIP archive: 20130212_mega8_usbisp” をダウンロードします。
適当な場所で展開します。
cd コマンドで展開したディレクトリまで移動します。 "20130212_mega8_usbisp/default/"
lsコマンドで"20130212_mega8_usbisp.hex"があることの確認をします。
lsusbコマンドで接続したAVRISPmkIIが認識されていることを確認します。
※認識されていると "Atmel AVRISPmkII"とか出てきた気がします 曖昧
avrdudeコマンドでターゲット(USBISP)に書き込むわけなのですが…最初からavrdudeが入っているわけではないので、avrdudeをパソコンにインストールします。
sudo apt-get install avrdude でインストールできます。
avrdudeコマンドを使ってターゲットに書き込みます。
この記事を参考にしました。 http://c2nprds.com/122/
まずは、Fusebitの書き込み hfuse lfuse 両方とも書き込みました。
この記事を参考にして http://www.sciencetronics.com/greenphotons/?p=938
hfude = 0x9C lfuse = 0xEF
sudo avrdude -c avrispmkII -P usb -b 19200 -p m8 -U hfuse:w:0x9C:m
※hfuseの書き込みが終わったら
sudo avrdude -c avrispmkII -P usb -b 19200 -p m8 -U lfuse:w:0xEF:m
※lfuseの書き込みをします。
sudo avrdude -c AVRISPmkII -P usb -p m8 -U hfuse:r:-:h
sudo avrdude -c AVRISPmkII -P usb -p m8 -U lfuse:r:-:h
上のコマンドを実行するとカレントディレクトリにhfuseかlhuseの値が入ったファイルが作成されます。
ファイルは上書きされてしまうので コマンドを一回実行したら確認してください。
最後にファームウェアの書き換えを実行する。
avrdude -c avrispmkII -P usb -b 19200 -p m8 -U flash:w:20130212_mega8_usbisp.hex
書き換えが完了したら…
AVRISPmkIIの接続を解除して USBISPのセルフプログラミング用ジャンバを撤去した後に再度USBISPをubuntuに接続するとUSBISPが青色で点灯します。
lsusbコマンドで確認してみると
ubuntu側でもAVR用の書き込み機として認識されていることが分かります。
※ドライバを当ててないので !マークが付いていますw
おまけ
ファームウェアを変更したUSBISPの動作確認として別のUSBISPを用意して上記と同じ動作をやってみました。 ※AVRISPmkIIを使わずにファームウェアの書き換えを行う。
成功しました。
ありがとうございます!