• 検索結果がありません。

リセット関係レジスタ

ドキュメント内 mega8U2.pdf (ページ 33-38)

WDP 0 WDP 1

10.5. リセット関係レジスタ

10.5.1. MCU状態レジスタ (MCU Status Register) MCUSR

MCU状態レジスタはどのリセット元がMCUリセットを起こしたかの情報を提供します。

- - USBRF - WDRF BORF EXTRF PORF

7 6 5 4 3 2 1 0

ビット

MCUSR

$34 ($54)

R/W R/W

R/W R/W

R R/W

R R

内容参照 内容参照

内容参照 内容参照

0 0

0 0

Read/Write 初期値

ビット7,6 - Res : 予約 (Reserved)

これらのビットは予約されており、常に0として読まれます。

ビット5 - USBRF : USBリセット フラグ (USB Reset Flag)

このビットはUSBリセットが起こると設定(1)されます。このビットは電源ONリセットまたは、このフラグへの論理0書き込みによってリセット(0)されま す。

ビット4 - Res : 予約 (Reserved)

このビットは予約されており、常に0として読まれます。

ビット3 - WDRF : ウォッチドッグ リセット フラグ (Watchdog Reset Flag)

このビットはウォッチドッグ リセットが起こると設定(1)されます。このビットは電源ONリセットまたは、このフラグへの論理0書き込みによってリセット (0)されます。

ビット2 - BORF : 低電圧リセット フラグ (Brown-Out Reset Flag)

このビットは低電圧リセットが起こると設定(1)されます。このビットは電源ONリセットまたは、このフラグへの論理0書き込みによってリセット(0)さ れます。

ビット1 - EXTRF : 外部リセット フラグ (External Reset Flag)

このビットは外部リセットが起こると設定(1)されます。このビットは電源ONリセットまたは、このフラグへの論理0書き込みによってリセット(0)され ます。

ビット0 - PORF : 電源ONリセット フラグ (Power-on Reset Flag)

このビットは電源ONリセットが起こると設定(1)されます。このビットはこのフラグへの論理0書き込みによってのみリセット(0)されます。

34

ATmega8U2/16U2/32U2

10.5.2. ウォッチドッグ タイマ制御レジスタ (Watchdog Timer Control Register) WDTCSR

WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0

7 6 5 4 3 2 1 0

ビット

WDTCSR ($60)

R/W R/W

R/W R/W

R/W R/W

R/W R/W

0 0

0 不定

0 0

0 0

Read/Write 初期値

ビット7 - WDIF : ウォッチドッグ割り込み要求フラグ (Watchdog Interrupt Flag)

ウォッチドッグ タイマが割り込みに設定され、ウォッチドッグ タイマで計時完了が2度起こると、本ビットが設定(1)されます。対応する割り込み処 理ベクタを実行すると、WDIFはハードウェアによって解除(0)されます。代わりにWDIFはこのフラグへの論理1書き込みによっても解除(0)さ れます。ステータス レジスタ(SREG)の全割り込み許可(I)ビットとウォッチドッグ割り込み許可(WDIE)が設定(1)されていれば、ウォッチドッグ計時完 了割り込みが実行されます。

ビット6 - WDIE : ウォッチドッグ割り込み許可 (Watchdog Interrupt Enable)

このビットが1を書かれ、ステータス レジスタ(SREG)の全割り込み許可(I)ビットが設定(1)されると、ウォッチドッグ割り込みが許可されます。この設 定(=1)との組み合わせでウォッチドッグ リセット許可(WDE)ビットが解除(0)されると、割り込み動作種別になり、ウォッチドッグ タイマで計時完了が 起こると、対応する割り込みが実行されます。

WDEが設定(1)されると、ウォッチドッグ タイマは割り込み及びシステム リセット動作種別になります。ウォッチドッグ タイマでの最初の計時完了が ウォッチドッグ割り込み要求(WDIF)フラグを設定(1)します。対応する割り込みベクタの実行はハードウェアによってWDIEとWDIFを自動的に解 除(0)します(ウォッチドッグはシステム リセット動作になります)。これは割り込みを使用する間のウォッチドッグ リセット保護を維持するのに有用で す。割り込み及びシステム リセット動作種別に留まるには、各割り込み後にWDIEが設定(1)されなければなりません。然しながら、ウォッチ ドッグ システム リセット動作種別の安全機能に危険を及ぼすかもしれないため、これは割り込み処理ルーチン自身内で行われるべきではあ りません。次の計時完了に先立って割り込みが実行されない場合、システム リセットが適用(実行)されます。

表10-1. ウォッチドッグ タイマ設定

WDE WDIE 動作種別 計時完了での動作

WDTON

0 0 停止 なし

1 (非プログラム)

0 1 割り込み 割り込み

1 (非プログラム)

1 0 システム リセット リセット

1 (非プログラム)

1 1 割り込み及びシステム リセット 割り込み、その後システム リセット動作種別 1 (非プログラム)

x x システム リセット リセット

0 (プログラム)

ビット4 - WDCE : ウォッチドッグ変更許可 (Watchdog Change Enable)

このビットはウォッチドッグ リセット許可(WDE)と前置分周器ビットの変更用の時間制限手順で使用されます。WDEビットの解除(0)や前置分周 器ビット変更のため、WDCEは設定(1)されなければなりません。

一旦1を書かれると、4クロック周期後にハードウェアがWDCEを解除(0)します。

ビット3 - WDE : ウォッチドッグ リセット許可 (Watchdog System Reset Enable)

WDEはMCU状態レジスタ(MCUSR)のウォッチドッグ リセット フラグ(WDRF)によって無効にされます。これはWDRFが設定(1)されると、WDEが 常に設定(1)されることを意味します。WDEを解除(0)するにはWDRFが先に解除(0)されなければなりません。この特徴は失敗を引き 起こす状態中の複数リセットと失敗後の安全な起動を保証します。

ビット5,2~0 - WDP3~0 : ウォッチドッグ タイマ前置分周選択 (Watchdog Timer Prescaler 3,2,1 and 0)

このWDP3~0ビットはウォッチドッグ タイマが走行する時のウォッチドッグ タイマの前置分周を決めます。各種前置分周値と対応する計時完了 周期は表10-3~10.で示されます。

10.5.3. ウォッチドッグ タイマ クロック分周レジスタ (Watchdog Timer Clock Divider Register) WDTCKD - - WDEWIFCL WCLKD2 WDEWIF WDEWIE WCLKD1 WCLKD0

7 6 5 4 3 2 1 0

ビット

WDTCKD ($62)

R/W R/W

R/W R/W

R/W R/W

R R

0 0

0 0

0 0

0 0

Read/Write 初期値

ビット7,6 - Res : 予約 (Reserved)

これらのビットは予約されており、常に0として読まれます。

ビット5 - WDEWIFCL : ウォッチドッグ早期警告割り込み要求フラグ解除形態選択 (Watchdog Early Warning Interrupt Flag Clear Mode) このビットがソフトウェアによって設定(1)されると、ウォッチドッグ早期警告割り込み要求フラグ(WDEWIF)はウォッチドッグ割り込みサブルーチン移行 時にハードウェアによって解除(0)されません(このフラグへの論理1書き込みにより、ソフトウェアによって解除(0)されなければなりません)。

解除(0)時、WDEWIFは対応する割り込み処理ベクタ実行時にハードウェアによって解除(0)されます。

ビット4 - WCLKD2 : ウォッチドッグ タイマ クロック分周選択 (Watchdog Timer Divider) 下の「WCLKD1,0 : ウォッチドッグ タイマ クロック分周選択」をご覧ください。

ビット3 - WDEWIF : ウォッチドッグ早期警告割り込み要求フラグ (Watchdog Early Warning Interrupt Flag)

ウォッチドッグ早期警告割り込み許可(WDEWIE)ビットが許可され、ウォッチドッグ タイマで計時完了が起こると、本ビットが設定(1)されます。対 応する割り込み処理ベクタを実行すると、WDEWIFはハードウェアによって解除(0)されます。代わりにWDEWIFはこのフラグへの論理1書き 込みによっても解除(0)されます。ステータス レジスタ(SREG)の全割り込み許可(I)ビットとWDEWIEが設定(1)されていれば、ウォッチドッグ計時 完了割り込みが実行されます。

ビット2 - WDEWIE : ウォッチドッグ早期警告割り込み許可 (Watchdog Early Warning Interrupt Enable)

このビットがソフトウェアによって設定(1)されているとき、ウォッチドッグ早期警告割り込み要求フラグ(WDEWIF)がハードウェアによって設定(1)され ると、ウォッチドッグ割り込みベクタで割り込みが生成されます。

ビット1,0 - WCLKD1,0 : ウォッチドッグ タイマ クロック分周選択 (Watchdog Timer Divider) 表10-2. ウォッチドッグ タイマ クロック分周形態設定

WCLKD2 WCLKD1 WCLKD0 動作形態 0 0 0 ClkWDT=Clk128k

ClkWDT=Clk128k/3

0 0 1

0 ClkWDT=Clk128k/5

ClkWDT=Clk128k/7 0

1 1

0 1

1 ClkWDT=Clk128k/9

ClkWDT=Clk128k/11 1 ClkWDT=Clk128k/13 ClkWDT=Clk128k/15 1

1

0 0 1 1

0 1 0 1 表10-3. ウォッチドッグ前置分周選択, WCLKD=000 (ClkWDT=Clk128k)

WDP3 0 1

WDP2 0 1 0 1

WDP1 0 1 0 1 0 1 0 1

WDP0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

WDT発振周期数(1期間) 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 早期警告

割り込み 16ms 32ms 64ms 125ms 0.25s 0.5s 1.0s 2.0s 4.0s 8.0s 代表的 (予約)

計時完了 周期

(VCC=5V) リセット/

割り込み 32ms 64ms 128ms 0.25s 0.5s 1.0s 2.0s 4.0s 8.0s 16.0s 表10-4. ウォッチドッグ前置分周選択, WCLKD=001 (ClkWDT=Clk128k/3)

WDP3 0 1

WDP2 0 1 0 1

WDP1 0 1 0 1 0 1 0 1

WDP0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

WDT発振周期数(1期間) 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 早期警告

割り込み 48ms 96ms 192ms 375ms 0.75s 1.5s 3s 6s 12s 24s (予約) 代表的

計時完了 周期

(VCC=5V) リセット/

割り込み 96ms 192ms 384ms 0.75s 1.5s 3s 6s 12s 24s 48s

36

ATmega8U2/16U2/32U2

表10-5. ウォッチドッグ前置分周選択, WCLKD=010 (ClkWDT=Clk128k/5)

WDP3 0 1

WDP2 0 1 0 1

WDP1 0 1 0 1 0 1 0 1

WDP0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

WDT発振周期数(1期間) 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 早期警告

割り込み 80ms 160ms 320ms 625ms 1.25s 2.5s 5s 10s 20s 40s (予約) 代表的

計時完了 周期

(VCC=5V) リセット/

割り込み 160ms 320ms 640ms 1.25s 2.5s 5s 10s 20s 40s 80s

表10-6. ウォッチドッグ前置分周選択, WCLKD=011 (ClkWDT=Clk128k/7)

WDP3 0 1

WDP2 0 1 0 1

WDP1 0 1 0 1 0 1 0 1

WDP0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

WDT発振周期数(1期間) 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 早期警告

割り込み 112ms 224ms 448ms 875ms 1.75s 3.5s 7s 14s 28s 56s (予約) 代表的

計時完了 周期

(VCC=5V) リセット/

割り込み 224ms 448ms 896ms 1.75s 3.5s 7s 14s 28s 56s 112s

表10-7. ウォッチドッグ前置分周選択, WCLKD=100 (ClkWDT=Clk128k/9)

WDP3 0 1

WDP2 0 1 0 1

WDP1 0 1 0 1 0 1 0 1

WDP0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

WDT発振周期数(1期間) 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 早期警告

割り込み 144ms 288ms 576ms 1.1s 2.3s 4.6s 9.2s 18.4s 36.8s 73s (予約) 代表的

計時完了 周期

(VCC=5V) リセット/

割り込み 288ms 576ms 1.1s 2.3s 4.6s 9.2s 18.4s 36.8s 73s 147s

表10-8. ウォッチドッグ前置分周選択, WCLKD=101 (ClkWDT=Clk128k/11)

WDP3 0 1

WDP2 0 1 0 1

WDP1 0 1 0 1 0 1 0 1

WDP0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

WDT発振周期数(1期間) 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 早期警告

割り込み 176ms 352ms 704ms 1.4s 2.8s 5.6s 11.2s 22.5s 45s 90s (予約) 代表的

計時完了 周期

(VCC=5V) リセット/

割り込み 352ms 704ms 1.4s 2.8s 5.6s 11.2s 22.5s 45s 90s 180s

表10-9. ウォッチドッグ前置分周選択, WCLKD=110 (ClkWDT=Clk128k/13)

WDP3 0 1

WDP2 0 1 0 1

WDP1 0 1 0 1 0 1 0 1

WDP0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

WDT発振周期数(1期間) 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 早期警告

割り込み 208ms 416ms 832ms 1.6s 3.3s 6.6s 13.3s 26.6s 53.2s 106.4s (予約) 代表的

計時完了 周期

(VCC=5V) リセット/

割り込み 416ms 832ms 1.6s 3.3s 6.6s 13.3s 26.6s 53.2s 106.4s 212.9s

表10-10. ウォッチドッグ前置分周選択, WCLKD=111 (ClkWDT=Clk128k/15)

WDP3 0 1

WDP2 0 1 0 1

WDP1 0 1 0 1 0 1 0 1

WDP0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

WDT発振周期数(1期間) 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 早期警告

割り込み 240ms 480ms 960ms 1.92s 3.8s 7.6s 15.3s 30.7s 61.4s 122s (予約) 代表的

計時完了 周期

(VCC=5V) リセット/

割り込み 480ms 960ms 1.92s 3.8s 7.6s 15.3s 30.7s 61.4s 122s 245s

38

ATmega8U2/16U2/32U2

ドキュメント内 mega8U2.pdf (ページ 33-38)