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