[time-nuts] Maxim DS3232 and I2C

d0ct0r time at patoka.org
Sat Feb 15 16:04:09 EST 2014


I think I found the information in the datasheet:

The read operation can be used to read multiple bytes with a
single transfer. When reading bytes from the slave,
the master simply ACKs the data byte if it desires to
read another byte before terminating the transaction.
After the master reads the last byte it must NACK to
indicate the end of the transfer and then it generates
a STOP condition

On an I2C START or address pointer incrementing to location 00h, the 
current time is transferred to a second set of registers.
The time information is read from these secondary registers, while the 
clock may continue to run. This eliminates the need to reread the 
registers in case the main registers update during a read

As far as I understood, I could specify the address and number of bytes 
to read. Then I could obtain all necessary fields using one transaction. 
I tried it - it seems it works.

Thanks !




On 2014-02-15 14:19, Chris Albertson wrote:
> Even on the primitive chips that don't have mutlipbyte reads and
> buffers.  Just read it twice and see it the two reads are the same.
>   On the one in the thousand case where they differ, read a third
> time.   Problems only happen if you are so unlucky to read the time
> just before the seconds flip over and as I said, you detect a second
> flip by reading twice.
> 
> But it appearts this chip is more sophisticated and has buffers
> 
> On Fri, Feb 14, 2014 at 2:20 PM, d0ct0r <time at patoka.org> wrote:
> 
>> I would like to ask an advise for following:
>> 
>> Lets say I have a DS3232 RTC connected by I2C to some MCU. The
>> maximum allowed I2C bus speed is 400KHZ. And I need to read time
>> (HH:MM:SS) from it. It will be THREE SEPARATE REQUESTS for each part
>> (hours, minutes and seconds). My concern: what if I start to read
>> time at the edge, when it will change itself inside of DS3232 ?
>> Potentially, I could get weird results, like hours and minutes stay
>> the same, but seconds has changed. Or even worth - hours is the
>> same, but seconds and minutes has changed. Is there any method to
>> read all three values (HH:MM:SS) by one single requests ? Or is
>> there any other workaround for this issue ? Or it is not issue at
>> all ? Thanks !
>> 
>> --
>> WBW,
>> 
>> V.P.
>> _______________________________________________
>> time-nuts mailing list -- time-nuts at febo.com
>> To unsubscribe, go to
>> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts [1]
>> and follow the instructions there.
> 
> --
> 
> Chris Albertson
> Redondo Beach, California
> 
> Links:
> ------
> [1] https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts

-- 
WBW,

V.P.


More information about the time-nuts mailing list