Support Request: PCA85073A RTC I2C Communication Issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Support Request: PCA85073A RTC I2C Communication Issue

62 Views
KRAJASEKHAR
Fresh Out Contributor
We are encountering an issue with the external RTC (PCA85073A) during I2C communication. While performing RTC set operations (seconds, minutes, hours) and subsequent RTC read operations, we are not receiving continuous readings for seconds ,minutes and Hours
Although the RTC cycles through 0 to 59, the readings are inconsistent and certain values appear to be missing. For example, instead of Continuous values, we observe jumps such as 0, 1, ,8,9,10, 11, 18, 19, 40, 41, 50, 51, 58, 59. The same irregularity is observed with minutes as well.
This behavior is impacting timekeeping accuracy. We kindly request your support in investigating the I2C communication and RTC read sequence to identify the root cause
Tags (5)
0 Kudos
Reply
1 Reply

22 Views
ErikaC
NXP TechSupport
NXP TechSupport

Hello!

Please see the datasheet section 7.4 Setting and reading the time.

During read/write operations, the time counting circuits (memory locations 04h through 0Ah) are blocked.
The blocking prevents
• Faulty reading of the clock and calendar during a carry condition
• Incrementing the time registers during the read cycle

Because of this method, it is very important to make a read or write access in one go, that is, setting or reading
seconds through to years should be made in one single access. Failing to comply with this method could result
in the time becoming corrupted.
As an example, if the time (seconds through to hours) is set in one access and then in a second access the
date is set, it is possible that the time will increment between the two accesses. A similar problem exists when
reading. A roll-over may occur between reads thus giving the minutes from one moment and the hours from the
next.
Recommended method for reading the time:

  1. Send a START condition and the target address (see Table 38) for write (A2h)
  2. Set the address pointer to 4 (Seconds) by sending 04h
  3. Send a RESTART condition or STOP followed by START
  4. Send the target address for read (A3h)
  5. Read Seconds
  6. Read Minutes
  7. Read Hours
  8. Read Days
  9. Read Weekdays
  10. Read Months
  11. Read Years
  12. Send a STOP condition

Please let me know your results!

0 Kudos
Reply