由于可以正确读写NV SRAM,说明其读写时序是正确的。需要确认寄存器配置,以下建议供参考:
- 使能振荡器:DS1557出厂时,/OSC (B7 of 7FFF9h) = 1,即关闭时钟。用户需要在初始化时,初试时间写入后启动时钟工作:/OSC = 0。
- RTC寄存器采用双缓存(外寄存器、内寄存器),外寄存器与处理器交换数据;内寄存器随时钟变化更新,与外寄存器交换数据。上电初始化时,控制寄存器(7FFF8h) B7 = 1, 将时钟初始值写入RTC外寄存器。寄存器(7FFF8h) B6 = 1,暂停时钟对外寄存器的更新。
- 写入时钟初始值后,寄存器(7FFF8h) B7 = 0, 初试时间值更新到RTC内寄存器;B6 = 0, 允许外寄存器随时钟更新。
- 处理器每次读取时间时,先将寄存器(7FFF8h) B6 = 1,以保持RTC外寄存器不受时钟变化的影响,处理器读取稳定的时间值。写操作完成后,将寄存器(7FFF8h) B6 = 0.