こんにちは、NXPコミュニティの皆さん、
当社独自のボード(PCF85263A RTCとAM6252を使用)は、初期起動シーケンス中に以下のコマンドを使用してRTC時刻を一度だけ読み取ります。
hwclock -u -s
約1,000回に1回の割合で、RTC値の取得に失敗するという断続的な問題が発生しています。
(ただし、もし失敗してすぐに読み取りコマンドを再試行した場合、問題なく時刻を取得できます。)
トラブルシューティングの過程で、全く同じ条件下でI2Cクロック周波数を400kHzから100kHz(400000→100000)に下げました。この変更後、約6,000回のテストを繰り返し実施しましたが、システムは一度も故障することなく完璧に動作しました。
PCF85263Aのデータシートによると、最大I2Cバス周波数400kHz(ファストモード)をサポートしています。
何かアドバイスをいただけますか:
PCF85263Aを400kHzで使用した場合に発生する、この断続的なI2C読み取りエラーに関して、既知の問題、エラー、または同様の過去の報告はありますか?
400kHzクロックを維持しつつ解決するために、特定の構成やバスの静電容量/プルアップ抵抗の考慮点、またはデバッグの手順があれば教えてください。
あらかじめサポートに感謝いたします。
こんにちは、伊勢織さん。
PCF85263A自体には、400kHzのI²C動作において、既知の不具合や文書化されたハードウェアの問題はありません。この部品は400kHzまで仕様・生産テストされており、あなたが述べた挙動は、PCF85263Aの欠陥というよりも、ホストコントローラやバス側のタイミング準拠が限界的であることの典型的な症状です。
推奨されるデバッグ手順:
- I²Cバスを400kHzでオシロスコープし、SCL/SDA波形をキャプチャします。RTC読み出しトランザクション中に、Tlow ≥ 1.3 µs、Thigh ≥ 0.6 µs、Tr ≤ 300 ns、および Tf ≤ 300 ns であることを確認してください。PCF85263Aのデータシートの表68に記載されているタイミング要件と比較してください。
- AM6252の正誤表を確認し、既知のI²C 400kHz SCL低周期違反がないか確認してください。I²Cクロックが存在する場合は、クロック周波数を375~384kHzに下げてください。これにより、通常は十分なマージンが回復し、実際には400kHz付近を維持できます。
回路図中のプルアップ抵抗の値を確認してください。抵抗値が約2.2 kΩより高い場合は、1 kΩ–2.2 に置き換えてください。kΩで測定し、400kHzで再測定する。
- シングルアクセス読み取りの検証:PCF85263Aはロールオーバー破損を防ぐために、すべてのタイムレジスタを単一のI²Cアクセスで読み取ることを要求しています。
BRs、トーマス