• No : 11329
  • 公開日時 : 2022/04/05 14:20
  • 印刷

【NXP:Kinetis】 Kinetisのウォッチドッグタイマをリフレッシュするとリセットする件

Kinetis K20のウォッチドッグタイマの動作を検証しています。
ウォッチドッグタイマをリフレッシュするとリセットが発生します。
何故ウォッチドッグリセットが発生するのでしょうか。
カテゴリー : 

回答

Kinetis Kシリーズのウォッチドッグタイマをリフレッシュした際にウォッチドッグリセットが発生する最も考えられる要因は、次の2つの項目があります。2項目以外にも要因がありますので、リファレンスマニュアルのRestrictions on watchdog operationを参照ください。
 1. REFRESHレジスタに0xA602を書き込んだ後、0xB480を書き込むまでに20バスクロックサイクル以上の時間がかかった
 2. ウォッチドッグタイマをイネーブルに設定した後、ウォッチドッグカウンタが変化する前にリフレッシュした
 
対策方法は、次の通りです。
 
1.に関しては、20バスクロックサイクス以上の時間がかかる要因として最も考えられるのは、0xA602を書き込み後、0xB480を書き込むまでの間に割り込みが発生したことです。割り込みを禁止に設定した後、REFRESHレジスタに0xA602と0xB480を続けて書き込んでください。
 
2.に関しては、ウォッチドッグタイマで使用するクロックの周期と分周比からカウンタが動作する間隔を算出し、イネーブルからリフレッシュまでの時間をそれ以上に設定してください。例えば、LPOクロック(約1 kHz)を5分周の場合、5 msとなりますので、イネーブルから5 ms以上経過した後、リフレッシュしてください。