0

I2C ベースの RTC から複数のバイトを読み取る場合、各バイトの読み取り中に値の 1 つが増加する可能性があるようです。

たとえば、時間が次の場合:

2014-12-31 23:59:59

この値を読んでいると、時間がロールオーバーする可能性があります

2015-01-01 00:00:00

実際に読むことができます:

2015-01-01 23:59:59

(最初に読み取る値によって異なります)。

では、信頼できる読み取りを保証するのは rtc ドライバーの責任ですか?

4

1 に答える 1

1

DS1337のデータシートを読むと、9 ページに次のように記載されています。

時間と日付のレジスタを読み書きするときは、内部レジスタが更新されるときのエラーを防ぐために、2 次 (ユーザー) バッファが使用されます。時間と日付のレジスタを読み取る場合、ユーザー バッファは、任意の開始または停止時、およびレジスタ ポインタがゼロにロールオーバーしたときに、内部レジスタに同期されます。

したがって、読み取り (または書き込み) が 1 回の I2C 操作 (ラップアラウンドなし) で発生した場合、RTC デバイスはすべてが同期されていることを保証します。

[他のデバイスのデータシートは調べていませんが、すべて同じように機能すると思います。]

于 2015-02-28T06:00:52.420 に答える