リファレンスマニュアルの理解に基づくと、以下の点に関してWDOGの予期せぬ動作が発生しています。
「すべてのウォッチドッグ制御ビット、タイムアウト値、およびウィンドウ値は、一度書き込んだ後
128バスクロック以内にリセットします。これは、書き込みが行われた後、
リセットが発生しない限り変更されない。」
私の最初の解釈では、リセット後最初の128バスクロック以内にWDOGを設定する必要があり、そうしないとUPDATE=0のデフォルト設定が使用されるということです。これにより、WDOGを再度再構成することができなくなります。
しかし、私はそれとは異なる経験をしています。KE1がリセットから復帰すると、バスクロックとコアクロックが同じ周波数で動作するため、WDOGを再構成する際にIARデバッガのCYCLECOUNTERを確認することにしました。そうすれば、リセットからどれだけのバスクロックが経過したかが分かると思ったからです。リセット解除後、144サイクルが経過したことが示された。そこで、関数の開始時に遅延ループをどんどん長くしていき、144サイクルをはるかに超えても再構成が可能かどうかを確認することにしました。
遅延時間がどれほど長くても、WDOGのデフォルトのタイムアウトである8ms以内であれば、WDOGの再構成は正常に完了する。デバッガーが何らかの役割を果たしていないことを確認するため、デバッガーを使用した場合と使用しない場合の両方でこの動作を観察しました。オシロスコープを使ってリセット信号をストロボ照射することで、タイミングを確認することもできました。
つまり、リファレンスマニュアルを読んだ限りでは、リセット状態から復帰した後はWDOGを再構成できるということだ。そして、WDOGへの最初の書き込みを実行すると、残りのレジスタフィールドを再構成するために128個のバスクロックが利用可能になります。
例えば、リセットから1000バスクロック待ってからWDOG_CSレジスタを設定するとします。WDOG_CSを設定してWDOG_TOVALを設定した後、128個のバスクロックを取得します。TOVALが設定されると、新しい設定が有効になります。
これはリファレンス・マニュアルの正しい解釈でしょうか?それとも、リセット後に128個のバスクロックが取得される、あるいはデフォルト設定が有効になるという私の以前の解釈が正しいのでしょうか?
こんにちは、 @sean_dvorscak さん、
投稿ありがとうございます。
KE1xFP100M168SF0RM の「 30.4.3.2.1 ウォッチドッグのロック解除」および「 30.5.2 ウォッチドッグの設定」のセクションを参照してください。
正しい解釈は以下のとおりと思われる。
この解釈はあなたの測定結果と一致しています。リセットから128バスクロック以上経過した場合でも、デフォルトのウォッチドッグタイムアウトが期限切れになる前に再構成が行われれば、WDOGは正常に再構成される可能性があります。
つまり、128バスクロックの設定ウィンドウは、リセット解除からの経過時間だけでなく、ロック解除シーケンスにも関連付けられている。
新しい設定が完了しない場合、WDOGはリセットされたデフォルト設定で動作を継続します。
お役に立てば幸いです。
BR
セレステ
------------------------------------------------------------------------------------------------------------------------
注:この投稿があなたの質問への回答になっている場合は、「解決策として承認」ボタンをクリックしてください。ありがとう!
------------------------------------------------------------------------------------------------------------------------
ウォッチドッグ設定を更新するには、特定のコマンドシーケンスに従う必要があります。128バスクロックがどこから来たのかはわかりませんが、例えばK80サブファミリリファレンス・マニュアル、改訂版4、2015年9月を参照してください。
ウォッチドッグ制御レジスタのALLOW_UPDATEが設定されている限り、一度だけ書き込み可能な制御レジスタと構成レジスタのロックを解除して変更できます。
1. 20バスクロックサイクル以内に、特定のロック解除レジスタ(WDOG_UNLOCK)に0xC520に続いて0xD928を書き込みます。
2. バスのクロックサイクルを1回待つ。ロック解除シーケンスの書き込み直後のバスクロックサイクルでは、レジスタを更新することはできません。
3.ウォッチドッグ構成時間(WCT)と同じ長さの更新ウィンドウが開きます。このウィンドウ内で、設定レジスタと制御レジスタのビットを更新できます。
これらのレジスタビットは、ロック解除後に一度だけ変更できます。更新ウィンドウ内に構成レジスタと制御レジスタのいずれも更新されない場合、ウォッチドッグはシステムにリセット、つまり割り込み後にリセットを発行します。初回ロック解除後にWCT内のウォッチドッグを再度ロック解除しようとしても効果はありません。
ご説明いただきありがとうございます。
WDOGを設定するために、リセットされていないバスクロックが128個以上あることが分かって安心しました。
もしKE1xFP100M168SF0RMの新しい改訂版が作られるなら、「...128バスクロック以内」という部分を削除することを提案したいと思います。セクション30.4.3.1の最初の文から。
この提案は馬鹿げているかもしれませんが、リセットからWDOGを設定するために利用できるバスクロックは128個しかないという誤った情報がオンラインで見つかったため、あえて提案しました。残念ながら、Google AIの概要にも同じ誤情報が繰り返されてしまう(…FUTUREって素晴らしいよね)。
理解した。残念ながら、私の知る限りでは、Kinetisファミリ向けの新しいロードマップは存在しません。この度、MCXファミリを発表いたしました。ご興味がおありでしたら、ぜひご検討ください。MCX Arm Cortex-M インダストリアル&IoT MCUs | NXP Semiconductors