コード移行作業の一環として、BSFフラグが設定されてしまうという問題に直面しています。BSFフラグが設定されていることにより、分レジスタのEMONビットも設定されます。
その結果、画面に表示される「分」の値は任意の値を示しています。さらに、年の値が正しく保存されず、RTCの日付と時刻を設定した後でも、2000年と表示され続けます。
下記の条件でテストを試みましたが、問題は依然として解決していません。
フラグレジスタ(0x43)を0x00に設定し、すぐに読み取ったところ、0x00が表示されました。しかし、3秒後にレジスタを再度読み取ったところ、値は再び0x08(または0x00)に設定されていた。
こんにちは、Ris_eekさん
良い一日!
BSFフラグが単にクリアできないというだけではない。代わりにRTCは新しいバッテリー切り替えイベントを検出し、再びBSFを設定しています。データシートによると、バッテリー切り替えロジックが電源遷移イベントを検出したときにBSFが設定されます
約3秒後に再アサートされるという事実は、VDDの電源が繰り返しバッテリー切り替え閾値を下回り、繰り返しVDD>VBAT>VDDの切り替えを引き起こしていることを意味します。各遷移はBSFをリセットします。
RafaR_0-1788887610951.pngRafaR_0-1788887610951.pngRafaR_0-1788887610951.pngRafaR_0-1788887610951.pngRafaR_0-1788887610951.png
この絶え間ない電圧変動により、RTC(リアルタイムクロック)が常にリセットされるため、常に2000年と表示されるのです。電源信号に問題がないか確認することをお勧めします。
この情報がお役に立てば幸いです。他に何かご不明な点がありましたら、お気軽にお問い合わせください。
良い一日をお過ごしください。幸運を祈ります。
こんにちは、Ris_eekさん
良い一日!
データシートには次のように記載されています。
フラグBSF(レジスタフラグ、アドレス2Bh)の主張は、ピンINTAおよびINTBで割り込みを生成するために使用できます。割り込みはパルス信号として生成されるか、あるいはビットBSF条件に従う恒常アクティブ信号として生成されることがあります。BSFはコマンドによって解除されるまで設定されたままになります。
私が送った参照画像には「インターフェース経由でクリア済み」と記載されています。
自動的にクリアされるわけではなく、クリアする必要があります。
この情報がお役に立てば幸いです。他に何かご不明な点がありましたら、お気軽にお問い合わせください。
良い一日をお過ごしください。幸運を祈ります。
ハードウェアにおいては、VDD(4.93VDC)とVBAT(3.02VDC)の電圧は一定である。電圧変動を防ぐため、バッテリー供給には100 nFのコンデンサが接続されています。
バッテリースイッチレジスタ(26h)は0x00に設定されています。したがって、BSM(バッテリースイッチモード)はVレベルでスイッチングするように設定されています。Vレベルが1.5Vなのは、BSTH(バッテリースイッチ閾値電圧)ビットが0に設定されているためです。
前回のメールで参照した図25に示すように:
VDD < Vth の場合、BSF は 1 に設定されます。
VDD > VBAT の場合、BSF をクリアする必要があります。
しかし、電源投入状態では、測定された電圧はVDD = 4.93 VDCであり、これはVBAT = 3.02 Vよりも大きい。それでも、BSFは許可されない。
なぜBDDがVBATより大きいのにBSFが固定されているのか、説明していただけますか?