良い一日!
私たちは現在、MCXN236 100ピンを搭載したカスタム基板を開発中です。当初、RTCが起動しないという問題がありました(これについては私の別の投稿を参照してください)。この問題は解決しました(ドキュメントの誤りです。16kオシレータをONにしたままにしないと、32Kオシレータを正しくオンにできません)。メインシステムがオフになっているときは、RTCはVBATに接続された3Vバッテリーによって給電されます。外部水晶発振子は32768 7pFで、内部コンデンサが6pFに設定された状態でMCUの近くに接続されています。
RTCが動作するようになったので、時刻を設定してテストしたところ、メイン電源がオンのときもオフのときも、3Vバッテリーのみで動作しているときも、時刻は維持され、正常に動作しました。これは予想通りです。
昨夜、私は正確に時刻を設定し、メインの電源を切りました。今朝10時間後、RTCは日付と時刻を正しく進めましたが、時刻が約54分進んでいます。
今朝テストしてみたところ、時間を計測し、携帯電話に1時間のタイマーをセットした。今回は主電源をオンにしたままにして、1時間後に確認したところ、RTCは約5分進んでいました(1分5秒進んでいました)。これは、オフ時の誤差が小さい場合と一致しています。これは16Koscの最大誤差6%をはるかに上回っているので、その値にフォールバックするとは考えにくい。デバッグのためにCycloneに接続した場合、すべてが起動して動作していることを確認した後、MCUを一時停止し、Peripheral+タブでRTCが32Koscに接続されていることを確認できます。
他に考えられる問題点は思いつきません。何かご提案があれば大変ありがたいです。電気的には非常に基本的なもので、この製品でColdfireV1 MCUを使用していた際、外部RTCチップと組み合わせた同じ水晶発振回路を長年使用していました。MCXN236はMCUの素晴らしいアップグレードであり、他のすべての機能は移行済みで作業中ですが、この内蔵RTCは(私の投稿や他の起動問題に関する投稿にあるように)対処するのが最も困難でした。
VBATピンに関してもう一つ質問があります。これには内部電源スイッチは含まれていない、ということでよろしいでしょうか?つまり、DS1307 RTCを使用する場合、このチップにはVCC接続と3Vバッテリー接続の両方があり、切り替えは内部で行われます。MCXNの場合、バッテリーとメインの+3V3を外部でOR接続してVBATピンに接続する必要があるようですが、合っていますか?
乾杯! -ジェフ-
こんにちは、 @jmullen_condoseさん
投稿ありがとうございます
32Kの周波数を測定して、期待通りの周波数が出ているかどうか確認していただけますか?
使用する結晶は、データシートにどのバリエーションが記載されていますか?
使用しているConfig Toolsのバージョンは何ですか?
使用しているSDKのバージョンは何ですか?
はい、解決しました。周波数カウンターを使うというご提案、ありがとうございました。水晶発振器を調べてみたところ、確かに周波数が約6%ずれていた。使用した水晶発振子は、Micro Crystal CM7V-T1A-32.768kHz-7pF-20PPM-TA-QCです。
研究所に依頼してそれを取り外してもらい、ダラスRTCチップを使用した旧型ColdfireV1ラインの32768ラジアルスルーホールタイプのものを取り付けてもらい、32768のスポットを再測定しました。この問題はSMT結晶が原因でした。なぜその水晶発振子が問題だったのか全く分かりません。仕様上は問題ないように見えるのですが。もし可能であれば、そちらも簡単に確認していただけると助かります。なぜ今回正常に動作しなかったのか、非常に興味があります。
改めて、ご提案ありがとうございました。別の部品に交換したところ、問題が解決しました。
乾杯!