AVR ISP mkII用のboards.txt設定が気になったので調べてみた。
普通のArduino UNOの設定
uno.bootloader.low_fuses=0xff uno.bootloader.high_fuses=0xde # 0xDEFF -> 1101 1110 1111 1111
AVR ISP mkII w/ ATmega328pの設定
atmega328bb.bootloader.low_fuses=0xe2 atmega328bb.bootloader.high_fuses=0xda # 0xDAE2 -> 1101 1010 1110 0010
◯上位バイト
board | BODLEVEL |
---|---|
Arduino UNO | 111→リセット禁止 |
AVR ISP mkII w/ ATmega328p | 101→2.7Vリセット |
◯下位バイト
board | SUT | CKSEL |
---|---|---|
Arduino UNO | 11→N/A | 1111→外部発振 |
AVR ISP mkII w/ ATmega328p | 10→低速立ち上がり電源 | 0010→4M内部発振→8Mじゃないの?? |
AVR ISP mkIIの方のatmega328bb.bootloader.low_fuses=0xe2は間違いではないのか?
動いてるみたいだけど。
外部発振から内部発振に切り替えられるってことはここも外部発振にしてしまえるのでは?
ということで実験してみた。
AVR ISP mkIIのヒューズ設定をUNOのものにして
AVR ISP mkIIからUNO上のATmega328pにアップロードしたら普通に動作した。
その後逆にBootloaderを焼きこんでから
Arduion UNOをターゲットとしてアップロードしたら同じく動作した。