完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现在在使用CH571,有几个疑问需要确认:
1. 内部RTC如何进行温度补偿? 我的想法是通过晶振温度取消累加到30秒,对R16_RTC_CNT_32K进行调整,太频繁我任务会影响计数,导致误差更大。 2.如果上面的补偿可行,那么我利用1秒的周期中断,通过一个IO输出秒脉冲,29秒是未补偿的,第30秒是补偿后的秒脉冲,通过平均,是否可以反应我RTC的误差? 通过中断输出的秒脉冲是否对精度有影响? 或者官方有更好的版本或者方案 关于温度,如果做晶振温度曲线补偿,那么芯片内部的温度传感器的精度是多少?资料说是10度?真的这么差吗? 如果真的这么差,那是否采用贴片热敏电阻,通过AD测量,可以获取到较高精度? 谢谢 |
|
相关推荐
1个回答
|
|
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设计的目的,是满足内部模块受温度影响时校准使用的, 具备比较一致的线性度, 这也正符合绝大多的校准只关心温度变化量,而并不关心测量结果的绝对误差这一特点. |
|
|
|
只有小组成员才能发言,加入小组>>
555 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2927 浏览 2 评论
2424 浏览 1 评论
908浏览 2评论
719浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
443浏览 1评论
570浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
837浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 05:47 , Processed in 0.908687 second(s), Total 42, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号