こんにちは、皆さん
現在、 PCA2131 オートモーティブ RTCをバッテリー・マネジメント・システム(BMS)に統合しています。
アラームフラグ(AF、Control_2レジスタ01hのビット4)がハイのままになるという問題が継続的に発生しています。基本的なSPI通信は完璧に動作しており、タイムレジスタの設定や読み込みは問題なくできます。しかし、初期化時にAFフラグをクリアできません。
重要な背景情報:
私が実行しているシーケンス:
Control_2(レジスタ01h)を読み取ります。AFビットは1と読み取られます。
ローカル構造体でAF = 0とAIE = 0に設定してフラグをクリアします。
変更したバイトをControl_2に書き戻す。
Control_2をもう一度読み込んでください。AFビットはまだ1です。
デバッグセッションのスクリーンショットを添付しました。クリア前、クリア操作中、および読み出し後のレジスタの状態を示しています。
私の質問:
すべてのAE_Xビットが無効化されている場合、他にAFフラグを即座に再アサートさせる(またはクリアを妨げる)内部条件は何でしょうか?
ご意見やご提案をいただければ大変ありがたいです!
こんにちは、ヴィカスさん。
ご確認いただきありがとうございます。データシートに記載されている PCA2131 の動作を考慮すると、AE_S/AE_M/AE_H/AE_D/AE_W がすべて 1 であると仮定すると、RTC が AF を正しく再トリガーしているようには見えません。最も可能性の高い原因はビットフィールドの順序ミスマッチです。3つの読み書きSPIメッセージの範囲をぜひ教えていただけますか?タイミングと、書き込みおよび読み出しされたレジスタ/ビットを確認するため。
敬具、
ヨゼフ
こんにちは、ヴィカスさん。
警報記録を再度確認してください。これらのレジスタのアドレスは0Ehから12hです。
AE_xビットをすべて1に再度設定してみてください。
敬具、
ヨゼフ