replacing crystal with TCXO

Krupski:
My library does not read the registers one at a time. It reads the whole 7 byte block of registers in one call and then the data is BCD->Decimal converted afterwards from the read buffer, not directly from the RTC (I'm no dummy!) :slight_smile:

By "one at a time" I meant that CS is asserted and then deasserted for each byte. In a burst read CS goes active low, multiple bytes are transferred, and then CS goes high. That section of the datasheet you quoted is the reason why this is desirable:

"...the user buffers are synchronized

  • to the internal registers on the falling edge of CS...*

When you assert/deassert CS for each byte you latch the time repeatedly. If there is a rollover while doing this you may get the wrong time/date. For example, suppose the time is 10:59:59. It's possible to read the seconds as "59", the time rolls over to 11:00:00, and then you read minutes and hours ending up with "11:00:59". The odds of seeing this happen aren't very high, but it is a possibility.

If you do a burst read the data is latched only once so you are guaranteed that it will not change.

Krupski:
...where did you find any example code from Maxim? I never saw any (I've only got the chip datasheet PDF). I would like to see their sample code - might give me some good ideas.

http://pdfserv.maximintegrated.com/en/an/AN4005.pdf