2407022_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2407022_ja-JP

2407022_ja-JP

PCA2131 RTC:断続的な周期割り込み(欠落または4倍の速度で動作)

こんにちは、皆さん

現在、 PCA2131 オートモーティブ RTC をバッテリー管理システム(BMS)に統合しているところで、周期的な中断発生に不安定な問題が発生しています。

問題の説明:定義された間隔(例:X分ごと)で割り込みを発生させようとしています。根本的な問題は、その動作が非常に不安定であることだ。

  • 場合によっては、割り込みが期待どおりに発生する。

  • 時々 、カウンターが本来の速度の約4倍の速さで動作しているように見えることがあります。

  • 場合によっては、割り込みが完全に無視されることがあります。

この問題はランダムに発生するため、根本原因の特定に苦慮しています。

テストと観察結果:

  • ハードウェア: 3~4種類の異なるRTCサンプルをテストしましたが、この異常な動作は複数のユニットで確認されています。

  • クロック構成:デフォルトの32.768kHzクロックに加え、16kHzおよび8kHzの構成についても評価しました。

  • 割り込み間隔: 1分、2分、5分の間隔でテストしました。

  • 結果:タイミングの不安定性は、これらのバリエーション全体にわたって持続する。

依頼:参考までに、回路図と取得した波形を添付しました。

添付ファイルを確認して、何が原因なのか理解する手助けをしていただけますか?この断続的なタイミング不安定性の原因となる特定のレジスタ構成、既知のエラッタ、ノイズやハードウェアの状態についてのご意見をいただけるとありがたいです。

サポートありがとうございます。

RTCRe: PCA2131 RTC: Intermittent periodic interrupts (Missed or running 4x faster)

こんにちは!

以下の点を確認していただけますか?

  • MSFフラグ(Control_2のビット7、アドレス01h)は、割り込みが発生するたびに明示的にクリアする必要があります。
    • ISR内では、必ずMSF(Control_2の7番目のビット)に0を書き込みます。データシートの7.11.5節に記載されているAND書き込みメソッド(0を書き込むとクリア、1を書き残す)を使います。

  • Control_1のMI(ビット1)とSI(ビット0)の両方が設定されている場合、結果として割り込みは1分に1回ではなく、1秒に1回発生します。
    • 定期的な1分間隔の割り込みを行うには、Control_1でMI = 1、SI = 0のみを設定してください。確認のため、登録簿を読み返してください。

結果を教えてください。


Re: PCA2131 RTC: Intermittent periodic interrupts (Missed or running 4x faster)

ご指示いただいた通りに確認しました。そのため、アラームが作動した時とアラームが解除された後に、CTRL_REG_1とCTRL_REG_2のスクリーンショットを撮ります。


Re: PCA2131 RTC: Intermittent periodic interrupts (Missed or running 4x faster)

こんにちは、

AEN_x = 1に設定してアラームコンパレータを無効化する書き込みはコメントアウトされます。5行すべてコメントを解除してください。これらの書き込みは、次の警報を再作動させる前に実行されなければなりません。

アラームトリガーのスクリーンショットでは、生のレジスタ値 ctrl2.w= 18 (0x12 = 0001 0010 バイナリ) は正しく以下を表示します:

  • ビット4 = 1 → AF(アラームフラグ)がセットされる
  • ビット1 = 1 → AIE(アラーム割り込みイネーブル)がセットされます

しかし、構造体フィールド ctrl2.b.af はデバッガで 0 と表示されます。つまり、Control_2のCビットフィールド構造体定義では、AFフィールドをビット4に正しくマッピングしていないということです。もしファームウェアのどこかがハードウェア割り込みラインRTC_ALarm_Flagやソフトウェア変数の代わりに ctrl2.b.af に分岐すると、アラームを検出できず、割り込みを見逃すことが完全に説明されます。これが割り込みの欠如症状の説明になります。

Control_2レジスタ構造体のビットフィールド定義を確認し、修正してください。afフィールドはビット位置4で宣言しなければなりません。

Re: PCA2131 RTC: Intermittent periodic interrupts (Missed or running 4x faster)

こんにちは、 ErikaC さん

レビューありがとうございます。

  1. ご要望どおり、AEN_xに関する5行のコメントを解除しました。

  2. ビットフィールドの定義を確認しましたが、正しいです。「アラームトリガー」画像では、ctrl2.b.af ビットが正常に 1 に設定されます。「アラーム解除」画像では、0にリセットされます。ビットフィールドは期待どおりに動作しています。

Re: PCA2131 RTC: Intermittent periodic interrupts (Missed or running 4x faster)返信を待っていますか、それともこの話は郵送で進めましょうか?
私のメールアドレス:- [email protected]
标记 (1)
无评分
版本历史
最后更新:
7 小时之前
更新人: