目录
一.精度
二.读写时机
三.写RTC对内部ms计数的影响
四.用FPGA用GPS校准RTC
五. ms维护
六. IIC防锁计数清零
一.精度
二、读写时机接口为IIC,读写时机如下图。 注意:
1、写入从站地址、寄存器地址0操作,可连续写入秒、分、时、周、日、月、年7个数据;
2、读取操作中,写入从地址、寄存器地址0 、restart、读从机地址,可以立即连续读取秒、分、时、周、日、月、年共计7个数据;
三、RTC对其内部ms计数的影响RTC的秒脉冲低而有效,并且在每次输出时读取RTC中的时间。 读出秒的时刻,清除FPGA维护的ms、ns计数;
对RTC的写入包括GPS校准(从pps的上升沿写入RTC )、CPU主校准。
写入秒的时刻,强制把中断拉低输出,清零RTC内部ms。
以下操作用CPU写入RTC,33秒500ms写入30秒。
1、默认情况下,秒脉冲中断为占空比50%的方波,下降沿标记为秒中断,在499ms时为高。
2、在写入秒时强制降低中断
505ms写入秒时强制输出中断。 499ms写入秒时,中断保持为0,但ms会被清除。
500ms写入秒时强制输出中断细节,写入天后把CPU的时间直接更新给外部时间reg,清ms.
四.在FPGA中,用GPS修正RTC 1、GPS PPS的上升沿并开始写入,写入后,与RTC中断读出秒的时间点等价。 此时,将GPS的时间直接更新为外部时间reg,清除ms。
RTC中断出现在GPS写期间,此时FPGA无法响应中断读取,必须直接把GPS时间更新给外部时间reg.
五. ms维护ms清零时刻:中断读出秒时刻、写RTC入天时刻。
注: 50000个50M clk=50000*20ns=1ms将自动累计至999ms且计数49999时不可进位。 为了不出现999ms的误差,需要继续计数,等待清零时间。
六. IIC防锁定计数清除为了提高IIC总线的EMC抗干扰性能,在FPGA中添加防锁定功能,如果在总线启动后计数时间内操作没有完成,则发送停止位,返回到开始状态。
计数加法运算时请参考SCL的时钟高电平(400K、2.5us )。 1发1bit 1,每发1字节计数约9次后,读取1次约10*9*2.5us=225us。 一次写约9*9*2.5us=202.5us。
在总线空闲时立即清零,不可再等待SCL高。否则,读取完成后无法立即清除写入,发生完全计数错误后,再次开始写入,延迟约85us。 请参照下图。