欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > RTC精度及校准

RTC精度及校准

2025/2/24 0:44:36 来源:https://blog.csdn.net/fenhong91/article/details/143503056  浏览:    关键词:RTC精度及校准

RTC精度偏差:

        RTC的基准时间和精度与石英晶体的频率相关,晶体的谐振频率取决于温度,因此RTC性能与温度相关,晶体的频率偏差是晶体正常频率的温度反转函数。

一、硬件方面:

1.使用高精度振荡器的RTC模块;

2.使用自带温补的RTC芯片;

3.使用温度补偿晶体振荡器;

4.电路中的晶振负载电容值、阻抗控制、布局时考虑电磁干扰;

5.供电电池的状态;

以上几个方面可以减小硬件带来的精度偏差。

二、软件方面:

1.使用网络时间协议(NTP)服务器同步时间;

2.外部时钟源(如GPS)进行校准;

3.STM32内部RTC校准测量误差,开发校准算法:

        STM32内部RTC精度不高,一般采用两种方法进行补偿;

(1)实测RTC的运行偏差,与标准时钟做对比,例如:每30天跑快的秒数偏差,计算ppm误差;

        校准公式:

        ppm误差=偏差s/基准值s*10^{6}

        例如:每30天跑快的秒数偏差为1.7S,那么误差为1.7s/(30*24*60*60)*10^{6}=0.65ppm。根据计算得到的误差值,查表(AN2604.pdf)得到校准值;

        表格数据转换的计算公式:

        假设校准值为1,每2^{20}时钟周期扣除1个时钟脉冲(注:STM32使用一个周期计数器进行校正,这个数字校正器通过从2^{20}个时钟周期减去0~127个周期的方法校正),(1/2^{20})*10^{6}=0.954ppm ,由于校准值最大为127 ,因此最大可以减慢(0.954*127)=121ppm。

        每30天快1s精度计算:

        1s/(30*24*60*60)*10^{6}=0.386ppm

        假设每30天偏差为100,偏差=100*0.386/0.954=29.97≈30,校准值为30。由此将校准值传入库函数BKP_SetRTCCalibrationValue(校准值)中补偿。

(2)测量TamperPin频率值(需要使用高精度频率计),计算ppm误差:

        局限性:

        校准的精度依赖于主时钟精度(例如STM32使用8M晶振作为主频);RTC校准寄存器只能对跑快时间校准,那么跑慢的时间校准,就需要软件配置晶振值为其范围的最小值。

        方法:

        采用软件自动校准+用户手动校准的方法,使用定时器T2对TamperPin的频率值自动测量,例如晶振使用32.768KHz±2Hz,那么32766作为基准频率,TamperPin=32766hZ/64=511.968Hz,然后使用高精度频率计测量TamperPin频率值,若实测值TamperPin=511.982Hz,误差为(511.982-511.968)/511.968*10^{6}=27.35ppm,查表(AN2604.pdf)得到校准值为28。

        注意:STM32复位会对RTC偏差有影响;

 4.RTC芯片配置校准:

(1)模拟微调寄存器ATR0~5,共6个模拟微调位调整片内负载电容值,用于RTC频率补偿;

(2)数字微调寄存器DTR0-2,共3个调整每秒钟的平均计数值和平均ppm误差;

        采用ATR+DTR微调结合的方法,可调ppm范围更大,具体可参考使用的芯片规格书。

       

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词