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でも書き込めるかもしれないが試していない)