新しいアプリケーションの電源障害ルーチンからの回復を試みていますが、SNVS LPのドキュメントにイライラしています。当然のことながら、デフォルト値を書き込む前にRTC値が有効かどうかを知る必要があり、この目的のためにデジタル低電圧検出器に注目しています。(I.MX RT1160リファレンスマニュアル、2020ページ)。
LPLVDR の参照値の設定は簡単ですが、LP ステータス レジスタへの参照には満足できません。マニュアルによると、LPLVDR を設定した後、このレジスタの低電圧イベントをクリアする必要がありますが、このビットがレジスタのどこにあるかの記録はありません。ほとんどのビットは識別されず、予約済みとしてマークされています。私が見る限り、この状況はSNVSモジュールを使用する他のデバイスでも同じです。
いずれにせよ、SDK の SNVS_LP_Init() ルーチンを調べると、低電圧イベントは SNVS_LPSR_LVD_MASK で定義されているビット 8 であることがわかります。しかし、マニュアルに書かれていることにもかかわらず、それは初期化に設定されており、クリアされていません。また、電源投入時に有効な状態を確認する機能やマクロはないため、バッテリーが故障したかどうかを知るために何を探しているのでしょうか?初期化後も設定したままにしておくべきですか?無視してLPLVDRを直接チェックしますか?
私はそれがどのように機能するかを見ることができましたが、アプリケーションが信頼できることを確認するためには、NXPがどのように機能することを意図していたかを本当に理解する必要があります。
よろしくお願いします。
Sacha.
ありがとうエドウィン、
このドキュメントへのアクセスをリクエストしました。
NXPに公平を期すために、リファレンスマニュアルには、セキュリティ関連のビットフィールドに関する情報がセキュリティリファレンスマニュアルに記載されているという注記があります。SNVS リセット ステート ビットがセキュアとして分類される理由がわかりません。また、SDKにマクロがあり、この状態を簡単に確認できると便利です。
よろしくお願いします。
Sacha.
Hi @Sacha,
SNVS レジスタの詳細については、ここからダウンロードできるセキュリティ リファレンス マニュアルを参照してください (RT1160 と RT1170 の両方で同じファイルです)。
ただし、SRM には、このビットがリセット時に 1 であり、クリアされていないと表示されます。初期化後、このビットは次のSNVS_LPSR_LVD_MASKでクリアされます。
BR,
Edwin.