linux设置rx8010时间,【经验】实时时钟模块RX8010SJ精度的软件校准方法

RX8010SJ因其简单使用、SOP8封装和高性价比在电子产品设计中广泛应用。尽管其32.768KHz晶体单元在25℃下校准,但在-40℃至85℃工作温度范围内精度会受影响。本文介绍了通过内部软件校准来改善高温或低温环境下的精度,涉及频率偏差计算、数字补偿寄存器的使用,以及正负补偿的计算方法。通过设置数字补偿寄存器,可以在一定程度上减少温度对时钟精度的影响,但需要注意此操作可能影响内部定时器中断和FOUT功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

d5d9b9f47e0896f75e023c39ea75964c.png

RX8010SJ,由于使用简单、标准SOP8封装和高性价比等特点,已经被广泛的应用于各种电子产品的设计中。虽然RX8010SJ内置出厂时经过校准的32.768KHz的晶体单元,能够很大程度上保证了其精度,但是内部晶体单元的校准是在25℃条件下的校准(每月1分钟的偏差)。而RX8010SJ允许的工作温度范围是-40℃至85℃,并且RX8010SJ内部没有温度补偿,因此在高温或低温环境下,其精度会出现偏差。本文介绍使用RX8010SJ的内部软件校准的方法,可一定程度上提供其在高温或低温环境的精度。

计算频率偏差

进行软件校准之前,先要了解清楚RX8010SJ内部晶体的频率温度特性,如下图1为RX8010SJ的频率温度特性曲线图,其近似的曲线函数为:∆fT = α(θT-θX)2。

∆fT:全温范围的频率偏差

α[1/℃2]:温度系数(-0.035±0.005)  * 10-6/℃2

θT[℃]:校准温度(+25±5℃)

θX[℃]:任何温度

7f73efeb7c807e3a02c9d2f99cea0086.png

图1:RX8010频率温度曲线图

根据曲线函数可以计算出任何温度时的频率偏差,但为了得到完整的频率偏差,还需要加上频率精度和电压特性。因此完整的频率偏差公式为:∆f/f = ∆f/fo + ∆fT + ∆fV。

∆f/f:全温全压范围的频率偏差

∆f/fo:频率精度

∆fT:全温范围的频率偏差

∆fV:全压范围的频率偏差

日期的误差计算公式为:Data Difference = ∆f/f * 86400(秒)。例如:∆f/f = 11.574*10-6表示一天接近1秒钟的误差。

数字补偿寄存器

计算出了频率偏差,接下来看如何根据频率偏差来设置寄存器进行校准。RX8010SJ具有一个数字补偿寄存器(Digital offset register)可以用来对时钟精度进行向前或向后调整,寄存器地址是0x30,如下表1。通过寄存器可设置的最小分辨率是3.05 *10-6,可调整的范围是+195.3*10-6到-195.3* 10-6。当通过频率精度或时钟精度计算补偿值时,请验证寄存器初始化后的精度。

545c74fdb16954c3370d77c23ae1eaaf.png

表1

当禁止数字补偿时,设置DTE = 0,L7~L1的值会是一个任意值。

当DTE = 1时,数字补偿功能被使能。此时,数字补偿寄存器会根据被设置的值来补偿计时器,它是每隔10秒钟改变一秒的计时数来进行补偿的。在时钟补偿过程中,32.768KHz的输出频率FOUT是不会改变的,因为内置的振荡器频率没有改变。下面表2表示了L7~ L1位与数字补偿值的关系。其中L7位表示补偿情况,0表示正补偿,1表示负补偿。

f4bbbbcf02fe8726a10366d314fbca89.png

表2

计算补偿值

当进行正补偿时,公式为L[7 ~ 1] = [Offset Value]/ 3.05 * 10-6,结果中小数被舍去。例如,补偿值是+192 *10-6,L[7 ~ 1] = 192.26 / 3.05 = 63 (dec) = 0111111(bin)。

当进行负补偿时,公式为L[7 ~ 1] = 128 - [Offset Value] / 3.05 * 10-6,结果中小数被舍去。例如,补偿值是-158 *10-6,L[7 ~ 1] = 128 - ( 158 / 3.05 ) = 76(dec) = 1001100(bin)。

从时钟精度上进行计算,如30天需要补偿30秒钟。30秒 / 2592000秒(30天) = 11.57 * 10-6,正补偿计算: L[7 ~ 1] = 11.57 / 3.05 = 4 (dec) = 0000100(bin),负补偿计算:L[7 ~ 1] = 128 - ( 11.57 / 3.05 ) = 124 (dec) = 1111100(bin)。

需要注意的是,使用数字补偿功能会对RX8010SJ的其他功能造成影响,因为这个功能调整的是内部时钟,这将影响内部固定周期定时器中断功能和FOUT功能。

1)FOUT功能:

设置成1Hz:每10秒钟,有1Hz周期波动。

设置成1024Hz:每10秒钟,有1024Hz周期波动。

设置成32.768KHz时,无影响。

2)固定周期定时器中断功能

设置成64Hz或1Hz时钟源:每10秒钟,一个周期波动。当向下计数的值被设置很大,波动看起来相对较小。

设置成4kHz时钟源时,无影响。

以上便是RX8010SJ实时时钟模块通过内部软件校准的计算及校准的全过程。如果您的设计需要在恶劣温度环境下工作,希望以上内容可以对您有帮助。

世强元件电商版权所有,转载请注明来源及链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值