ヒューズビット

WOBでは、CPUの動作モードを定義する情報をCPU内のヒューズ(実体はEEPROMだと思われる)に以下の通り書き込んでいる。

Extended Byte = 0xFC

name bit data desc
7 1
6 1
5 1
4 1
3 1
BODLEVEL2 2 1 BODレベル4.3V
BODLEVEL1 1 0
BODLEVEL0 0 0

High Byte = 0xDE

name bit data desc
OCDEN 7 1 内蔵デバッグ禁止
JTAGEN 6 1 JTAG禁止
SPIEN 5 0 シリアルプログラム許可
WDTON 4 1 WDTはWDTCSRで許可
EESAVE 3 1 チップ消去時にEEPROMも消去
BOOTSZ1 2 1 ブートローダは最少サイズ=512バイト
BOOTSZ1 1 1
BOOTRST 0 0 ブートローダ領域のリセットベクタを使う

Low Byte = 0xD7

name bit data desc
CKDIV8 7 1 システムクロックを8分周しない
CKOUT 6 1 クロック出力しない
SUT1 5 0 起動時間は14クロック+4ms
SUT0 4 1
CKSEL3 3 0 外部クロック全幅発振(20MHz全速のため)
CKSEL3 2 1
CKSEL3 1 1
CKSEL3 0 1

AVRStudio4のAVRProgによるヒューズの書き込み

Arduino開発環境ではヒューズの書き込みまで対応していないので、Atmel謹製の開発環境AVRStudio4の中のAVRProgを使用している。(avrdudeでも書き込めるかもしれないが試していない)