最終更新:2010-03-19 (金) 08:32:26 (5151d)  

ヒューズビット
Top / ヒューズビット

AVRの動作設定をする領域。プログラムとは別に設定する。

ATtiny2313

Low

ビット名前意味説明
7CKDIV8Divide clock by 8CPUクロックの分周?比を設定(1/8にするかどうか)
6CKOUTClock outputCLK0からCPUクロックを出力するかの設定
5SUT1Select Start-up timeマイコンに電源を入れてから動作するまでの準備期間
4SUT0
3CKSEL3Clock source SelectCPUクロックの元となるクロックの入力方法を設定
2CKSEL2
1CKSEL1
0CKSEL0

High

ビット名前意味説明
7DWENdebugWIRE EnableddebugWIRE?を有効にするかどうか
6EESAVEEEPROM SaveEEPROMの内容をを保持するかどうか
5SPIENSPI EnabledEEPROM、フラッシュROMのSPI書き込み機能の有効・無効を切り替える(Parallel時のみ)
4WDTONWDT Onウォッチドッグタイマを有効にするかどうか
3BODLEVEL2Brownout Detector Level低電圧リセット検出回路の検出レベルと遅延時間を設定
2BODLEVEL1
1BODLEVEL0
0RSTDISBLReset DisabledRESETピンをI/Oピンとして使うための設定

Ext

ビット名前意味説明
0SPMENSPM? EnabledSPM?命令を有効にするかどうか

その他

名前意味説明
BODENBrownout Detector Enabled低電圧リセット検出回路の有効・無効
CKOPTClock Option発振回路 1:小振幅, 0:フルスイング
BOOTSZBoot Flash Sizeブートブロックサイズを定めるビット
BOOTRSTBoot ResetRESET時に0番地からスタートするか、ブートブロックの先頭からスタートするかを決めるビット
SELFPRGEN
OCDENOn Chip Debug Enabled
JTAGENJTAG Enabled

Low: 11001111 (0xCF)
     ||||++++-- CKSEL[3:0] クロック選択
     ||++-- SUT[1:0] 起動時間
     |+-- CKOUT (0:PB0にクロックを出力)
     +-- CKDIV8 クロック分周初期値 (1:1/1, 0:1/8)

High:11011111 (0xDF)
     |||||+++-- BODLEVEL[2:0] (111:無, 110:1.8V, 101:2.7V, 100:4.3V)
     ||||+-- EESAVE (消去でEEPROMを 1:消去, 0:保持)
     |||+-- WDTON (1:WDT通常動作, 0:WDT常時ON)
     ||+-- SPIEN (1:ISP禁止, 0:ISP許可) ※Parallel時のみ
     |+-- DWEN (On-Chipデバッグ 1:無効, 0:有効)
     +-- RSTDISBL (RESETピン 1:有効, 0:無効(PC6))

メモ

  • これはどこのサイトでも基本事項のように扱っているので逆に書かれている例が少なく思ったのですが、ヒューズビットの設定の中にAVRを動かすクロックの発生源の設定があります。
  • 出荷時は内部の発振器を使っているのでそのまま読み書きできるのですが、この設定を変えて外部に水晶を使うなどにした次の瞬間から、その設定したものを使わないと読み書きできなくなります。HIDaspは12MHzの水晶を使っていて、最初ここで急に読み書きができなくなったのでびっくりしました。対処法としては、各種水晶やセラミック発振子を手元に持っておく、といった感じでしょうか。

avrspx

>avrspx.exe -fl11101111 (Lower byte。ここでクロックの設定が変わる)
>avrspx.exe -fh11011011 (Higher byte)

計算

メモ

ISPプログラマの使い方


このPDFへのリンク

参考