The RTC time in PMIC cannot be updated. Is there a problem with the configuration of which register? The configuration of registers is as follows.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
The RTC time in PMIC cannot be updated. Is there a problem with the configuration of which register? The configuration of registers is as follows.
Hello Cao,
please give me a moment to look over the information you've posted.
But as a quick check, did you pause the RTC before trying to set the time?
BR,
Nicholas
Hi Nicholas
We tried pausing the RTC, but I don’t know whether the pausing was successful. Is there any way to determine whether the RTC has been paused?
Hello Cao,
You can see the STOP_RTC bit in register 0xC2 on page 0, the bit should be 0 to reflect that the RTC has stopped and can now be modified.
Hi Nicholas,
Can you give us a register configuration and your operation steps when the RTC time is successfully updated? So that we can compare whether there is any problem with our operation or settings?
Thanks.
Hello Cao,
For reference here's the datasheet, please use this to see the bitfields for the register each will use the following format.
NAME:
command
I'm writing this procedure assuming that the crystal isn't powered up and the RTC is not activated
RTC_SECONDS:
Write to register 0xB5 with data value 0x30
RTC_MINUTES:
Write to register 0xB6 with data value 0x22
*This sets the clock to be at 22minutes & 30 seconds*
RTC_CTRL_2:
Write 1 to the Least Significant bit in the register of 0xC3, this enables the Crystal Oscillator
RTC_CTRL_1:
Write 1 to the Least Significant bit in the register of 0xC2, this enables the RTC
RTC_STATUS:
Read the register 0xC4, bit 1, will tell you the status of the RTC, 0 for stop, 1 for running <----- Use this register if you're ever unsure of the state of the RTC
At this point the counter will have started from from the 22m30s
RTC_CTRL_1:
Write 0 to the Least Significant bit in the register of 0xC2, this STOPs the RTC
RTC_STATUS:
Read the register 0xC4, bit 1, will tell you the status of the RTC, 0 for stop, 1 for running, confirm that it has stopped.
RTC_SECONDS:
Read register 0xB5
RTC_MINUTES:
Read register 0xB6
RTC_SECONDS:
Write register 0xB5 with data 0x20
RTC_MINUTES:
Write register 0xB6 with data 0x45
Starting the RTC again.
RTC_CTRL_1:
Write 1 to the Least Significant bit in the register of 0xC2, this enables the RTC
RTC_STATUS:
Read the register 0xC4, bit 1, will tell you the status of the RTC, 0 for stop, 1 for running
RTC_STATUS:
Read the register 0xC4, bit 6, Will toggle the GET_TIME bit to load the shadow registers with the current time and will set them, this should be a value slightly larger than set, confirm that the time is ~45m & 20s
BR,
Nicholas