AVRのフューズビット
- 2014/09/22 20:46
- カテゴリー:電子工作, Arduino・AVR
AVRのフューズビットについて調査してみようと思いAtmelのデータシートを参照した
- ATmega168Pと328Pのみ
- フューズビットとされているがデータシートではフューズバイトと記載されている
- 負論理なのでビットの意味に対する肯定・否定は、0:肯定、1:否定となる
- クロック選択関係はややこしかったので未稿
328P
上位バイト(HIGH FUSE)
名称 | ビット | 意味 | 備考 |
RSTDISBL | 7 |
PC6がI/Oピンかリセットピンかを選択 0:I/Oピン 1:リセットピン |
|
DWEN | 6 | デバッグWIRE機能許可 | |
SPIEN | 5 |
プログラム許可 0:許可 1:非許可 |
フラッシュメモリとEEPROMへの書込みを制御 |
WDTON | 4 |
ウォッチドックタイマを常時有効 0:有効 1:無効(プログラムモード) |
0:有効ではリセット後から開始される 1:無効の場合WDTCSRで有効にできる |
EESAVE | 3 |
ChipErase(初期化)時EEPROMの内容を保護 0:初期化しない 1:初期化する |
0なら内蔵されているEEPROMを初期化しない |
BOOTSZ1 | 2 |
ブートローダの容量選択 00:2048bytes($3800~$3fff) 01:1024bytes($3c00~$3fff) 10:512bytes($3e00~$3fff) 11:256bytes($3f00~$3fff) |
()内はブートローダアドレス範囲(開始~終了) 開始アドレスがブートローダ実行時のリセットアドレス プログラム領域は$0000~ブートローダ開始アドレス-1となる |
BOOTSZ0 | 1 | ||
BOOTRST | 0 |
リセット時に実行される領域の選択 0:ブートローダ領域 1:プログラム領域 |
下位バイト(LOW FUSE)
名称 | ビット | 意味 | 備考 |
CKDIV8 | 7 |
システムクロック8分周 0:8分周する 1:8分周しない |
|
CKOUT | 6 |
システムクロック出力 0:出力する 1:出力しない |
PB0に出力 |
SUT1 | 5 |
起動時間選択(最低14×CK) 00:+0 01:+4.1ms 10:+65ms 11:予約 |
00でリセット時RSTDISBLが0の場合は+4.1ms |
SUT0 | 4 | ||
CKSEL3 | 3 | クロック種別選択 | |
CKSEL2 | 2 | ||
CKSEL1 | 1 | ||
CKSEL0 | 0 |
拡張バイト(Extended FUSE)
名称 | ビット | 意味 | 備考 |
- | 7 | 未使用 | |
- | 6 | ||
- | 5 | ||
- | 4 | ||
- | 3 | ||
BODLEVEL2 | 2 | 低電圧検出リセットの検出電圧選択 | |
BODLEVEL1 | 1 | ||
BODLEVEL0 | 0 |
168P
上位バイト(HIGH FUSE)
名称 | ビット | 意味 | 備考 |
RSTDISBL | 7 |
PC6がI/Oピンかリセットピンかを選択 0:I/Oピン 1:リセットピン |
|
DWEN | 6 | デバッグWIRE機能許可 | |
SPIEN | 5 |
プログラム許可 0:許可 1:非許可 |
フラッシュメモリとEEPROMへの書込みを制御 |
WDTON | 4 |
ウォッチドックタイマを常時有効 0:有効 1:無効(プログラムモード) |
0:有効ではリセット後から開始される 1:無効の場合WDTCSRで有効にできる |
EESAVE | 3 |
ChipErase(初期化)時EEPROMの内容を保護 0:初期化しない 1:初期化する |
0なら内蔵されているEEPROMを初期化しない |
BODLEVEL2 | 2 | 低電圧検出リセットの検出電圧選択 | |
BODLEVEL1 | 1 | ||
BODLEVEL0 | 0 |
下位バイト(LOW FUSE)
名称 | ビット | 意味 | 備考 |
CKDIV8 | 7 |
システムクロック8分周 0:8分周する 1:8分周しない |
|
CKOUT | 6 |
システムクロック出力 0:出力する 1:出力しない |
PB0に出力 |
SUT1 | 5 |
起動時間選択(最低14×CK) 00:+0 01:+4.1ms 10:+65ms 11:予約 |
00でリセット時RSTDISBLが0の場合は+4.1ms |
SUT0 | 4 | ||
CKSEL3 | 3 | クロック種別選択 | |
CKSEL2 | 2 | ||
CKSEL1 | 1 | ||
CKSEL0 | 0 |
拡張バイト(Extended FUSE)
名称 | ビット | 意味 | 備考 |
- | 7 | 未使用 | |
- | 6 | ||
- | 5 | ||
- | 4 | ||
- | 3 | ||
BOOTSZ1 | 2 |
ブートローダの容量選択 00:1024bytes($1c00~$1fff) 01:512bytes($1e00~$1fff) 10:256bytes($1f00~$1fff) 11:128bytes($1f80~$1fff) |
()内はブートローダアドレス範囲(開始~終了) 開始アドレスがブートローダ実行時のリセットアドレス プログラム領域は$0000~ブートローダ開始アドレス-1となる |
BOOTSZ0 | 1 | ||
BOOTRST | 0 |
リセット時に実行される領域の選択 0:ブートローダ領域 1:プログラム領域 |