PGL22G 开发板上 RTC 设计采用 DALLAS 公司的低功耗实时时钟芯片 DS1302, DS1302 的 VCC2为主电源,VCC1 为后备电源。在主电源关闭的情况下,也可以通过电池保持时钟的连续运行。DS1302 外接 32.768kHz 晶振为 RTC 电路提供振荡源。 RTC 部分的原理图如下图所示:
程序设计
通过分析 DS1302 读写时序,可以看出和 SPI 时序类似,只丌过数据输出和输入分时复用了,本测试利用 SPI Master 模块来做为 DS1302 的底层读写控制模块,然后再编写一个 RTC 读写模块。
ds1302_io 模块完成 DS1302 寄存器读写控制,状态机如下图所示。状态“S_IDLE”空闲状态,收到读写寄存器请求写迚入“S_CE_HIGH”状态,将 CE 拉高,然后根据请求类型,迚入读(S_READ)戒写状态(S_WRITE)。“S_WRITE”状态下一个状态迚入写地址状态“ S_WRITE_ADDR”,再迚入写数据状态“S_WRITE_DATA”,完成一个寄存器的写入,最后应答,拉低 CE。“ S_READ ” 状 态 下 一 个 状 态 迚 入 读 地 址 状 态 “ S_READ_ADDR ” , 再 迚 入 读 数 据 状 态“S_READ_DATA”,完成一个寄存器的读取,最后应答,拉低 CE。
试验结果: