マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 11.1.1. アクセス可否の設定

Up: 11.1. 無限ループの例(値のチェック漏れ)

Next: 11.1.3. カウント数の設定


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 11. 独立型ウォッチドッグタイマ: 11.1. 無限ループの例(値のチェック漏れ):

11.1.2. カウント速度の設定

 次に独立型ウォッチドッグのカウント速度を設定します。独立型ウォッチドッグはLSIで動作しているのですが、LSI自体のクロック速度は固定されています(40KHz)。そこでカウント速度の調整は、プリスケーラの分周比を調整することによって行います。分周比は4分周から256分周まで設定可能です。

 独立型ウォッチドッグの再ロードレジスタに設定できる値の範囲は0x0から0xFFF(4096)までです。

 LSIクロックの周波数が40KHzとすると、独立型ウォッチドッグのカウンタアンダーフローが発生するまでの時間は、プリスケーラの分周比と再ロードレジスタの値によって、 17?1の通りとなります。

17?1 LSIクロックの分周比に応じた設定可能時間

分周比

最小時間(0x0)

最大時間(0xFFF)

4

0.1ms

409.6ms

8

0.2ms

819.2ms

16

0.4ms

1,638.4ms

32

0.8ms

3,276.8ms

64

1.6ms

6,553.6ms

128

3.2ms

13,107.2ms

256

6.4ms

26,214.4ms

 分周比を小さくするとアンダーフローまでの時間を細かく設定できますが、カウントできる最大時間が短くなってしまうことがわかるかと思います。

 なおLSIクロックは動作条件(温度等)や個体差によって30KHzから60KHzまでの誤差が発生しますので、独立型ウォッチドッグの作動は想定した時間の倍くらいかかることがあると考えておいた方がよいでしょう。

 独立型ウォッチドッグのプリスケーラを設定するためには、IWDG_SetPrescaler関数(ライブラリ 17?2)を使用します。

ライブラリ 17?2 IWDG_SetPrescaler関数

関数プロトタイプ

void (uint8_t IWDG_Prescaler)

動作

独立型ウォッチドッグの分周比を設定します。

引数

IWDG_Prescaler

分周比をいずれかのマクロ(ライブラリ 17?3)で指定します

戻り値

無し

ライブラリ 17?3 IWDG_Prescalerに指定するマクロ

IWDG_Prescaler_4

4分周

IWDG_Prescaler_8

8分周

IWDG_Prescaler_16

16分周

IWDG_Prescaler_32

32分周

IWDG_Prescaler_64

64分周

IWDG_Prescaler_128

128分周

IWDG_Prescaler_256

256分周


Previous: 11.1.1. アクセス可否の設定

Up: 11.1. 無限ループの例(値のチェック漏れ)

Next: 11.1.3. カウント数の設定


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。
_Toc266801166