HRC校准原理
HRC(硬度测量中的Rockwell C Scale缩写,在此上下文中指代某种硬件时钟)的校准原理是通过调整特定的控制参数,使得HRC的实际频率尽可能接近预期的目标频率。这一过程通常涉及到调整温度补偿(Temperature Compensation, TC)和频率调整(Adjustment, ADJ)参数,以最小化实际频率与目标频率之间的差异。
LRC校准原理
LRC(假设为另一种类型的时钟)的校准原理与HRC类似,都是通过调整输出频率的控制参数来减小误差。LRC的目标频率通常设定为32768Hz,但在实际应用中可能需要通过校准来达到这一标准。
校准系数
HRC_TC:不同温度下,TC值对应的不同的温度特性,选取最好的TC值后就会固定,所以暂时使用数据手册中推荐的默认值
HRC_ADJ:通常需要遍历一定范围内的值(例如0~127),以找到最优的调整值获取实际频率的方式1:
将HRC作为CLKOUT的源,CLKOUT连到示波器,示波器的API直接得到HRC的频率值。缺点:通过示波器的方式获取频率只能精确到Khz,误差较大(不使用该方式)
获取实际频率的方式2:
芯片出厂OSC和PLL时钟是准确的,可以用准确的时钟源作为基准统计出准确的1s内待校准的时钟的实际时间。
具体做法为:
- 选择PLL/OSC作为RTC的时钟源,使能RTC秒中断,先保证单片机的系统时间是标准的;
- 选择待校准的HRC/LRC作为TMR4/5(支持异步时钟源)的源;
- 观察标准的秒中断的时间内即统计1s内TMRCNT的计数计算出频率;
自加载flash
为了使校准后的参数能够在系统重启后仍然生效,可以将校准结果存储在Flash内存中,并在系统启动时自动加载到相应的寄存器中。
测试步骤
- 上电初始化后进入主程序
- 配置RTC时钟源
- 配置TMR时钟源和预分频
- 执行校准步骤:
设置HRC_ADJ值。
清零TMR计数器,使能TMR计数器和RTC秒中断。
记录秒中断周期内的TMR计数值,计算实际频率。
遍历不同的HRC_ADJ值,找到误差最小的值,并将其保存在Flash中。