CH571/573的内部低频时钟校准, 本身是支持定时强制校准的,在BLE的历程里面,config.h 文件中有个宏BLE_CALIBRATION_PERIOD 即为强制定时校准的间隔,这个值的单位是ms,默认是2分钟.
这个宏最终是在HAL_Init 函数中调用,并且开启一个定时的任务,如果使能了内部的rc 将会定时强制校准内部时钟 Lib_Calibration_LSI(); (在EVT>EXAM>BLE>HAL>MCU.c 文件中调用), 芯片专门设计了通过一定周期的RTC的cnt变化,记录高频时钟的变化次数的计数器, 可以参考这个代码的实现, 来了解芯片内部的低频RC校准原理.
另外,ble在初始化时候,也传入了获取温度,和内部低频rc校准的函数,
默认在(在EVT>EXAM>BLE>HAL>MCU.c 的函数CH57X_BLEInit 中)
至于芯片内部的温度sensor的精度,
实际上,sensor测量的绝对误差很大程度上取决于生产校准. 专门设计用于准确测量的sensor是在生产时通过若干严格校准的点的值来修正测量结果,最终实现高准确度([size=15.008px]accuracy)和高精密度([size=15.008px]precision)的. 而这些往往直接影响到芯片的最终成本.
CH571/573 其内部温度sensor设计的目的,是满足内部模块受温度影响时校准使用的, 具备比较一致的线性度, 这也正符合绝大多的校准只关心温度变化量,而并不关心测量结果的绝对误差这一特点.
CH571/573的内部低频时钟校准, 本身是支持定时强制校准的,在BLE的历程里面,config.h 文件中有个宏BLE_CALIBRATION_PERIOD 即为强制定时校准的间隔,这个值的单位是ms,默认是2分钟.
这个宏最终是在HAL_Init 函数中调用,并且开启一个定时的任务,如果使能了内部的rc 将会定时强制校准内部时钟 Lib_Calibration_LSI(); (在EVT>EXAM>BLE>HAL>MCU.c 文件中调用), 芯片专门设计了通过一定周期的RTC的cnt变化,记录高频时钟的变化次数的计数器, 可以参考这个代码的实现, 来了解芯片内部的低频RC校准原理.
另外,ble在初始化时候,也传入了获取温度,和内部低频rc校准的函数,
默认在(在EVT>EXAM>BLE>HAL>MCU.c 的函数CH57X_BLEInit 中)
至于芯片内部的温度sensor的精度,
实际上,sensor测量的绝对误差很大程度上取决于生产校准. 专门设计用于准确测量的sensor是在生产时通过若干严格校准的点的值来修正测量结果,最终实现高准确度([size=15.008px]accuracy)和高精密度([size=15.008px]precision)的. 而这些往往直接影响到芯片的最终成本.
CH571/573 其内部温度sensor设计的目的,是满足内部模块受温度影响时校准使用的, 具备比较一致的线性度, 这也正符合绝大多的校准只关心温度变化量,而并不关心测量结果的绝对误差这一特点.
举报