时间乱码五重奏:从VBAT悬空到SCL复用全链路排雷指南

RTC读出时间跳秒、乱码的解决方法

1. Q:为什么我用仿真器单步调试检测不RTCACK呢?

A:因RTCI2C总线0.5s超时自动复位的功能,在调试时打断点必须打Stop信号的后面,如果Stop之前会触0.5s通信超时功能,从而看不到完IIC信号。

 

2. Q:为什么RTC读出来时间有跳秒的现象。9秒直接跳16秒,而且大89才变0

ARTCBCD码计时BCD码的0x10表示十进制10秒,用十进制来看就是会看到9160x10=16)。

 

3. Q:为什么有时候我读到的时间是乱码?

A1. RTC已完全掉电,再上电读到的时间是随机数(可能是乱码,随机值范围0-FF,所以用户显示出来时间就像是乱码一样。)。

     2. 使SD2068SD2403的时VBAT脚悬空也可能会读到乱码,因SD2068SD2403需要遵VBAT电压低VDD0.3v以上,不然可IIC通信进VBAT模式,导致无法读到正确时间

     3. 总速度太快或通信程序的时序中有不符合规范的地方,也可以尝试IO口工作模SCL设置为推挽输出SDA设置为开漏输出。

     4. SCLSDAIO口被复用。

     5. 芯片SDA端口没有加上拉电阻。

 

4. Q:为什么小时会跑2526

A:没有正确设12/24小时制。在小时寄存器02H)的最高位12/24小时制。

 

5. Q:为什么小时显9091

A:读出小时数据后没有把最高位12/24小时控制位)屏蔽掉。

 

6. Q:时钟芯片产生中断输出的时候INT脚是高电平还是低电平?

AINT端口是一N沟道开路输出口,使用时通常接一个上拉电阻。没有中断输出的时候是高电平,产生中断后变为低电平。

2025年1月18日 15:20