我参考这个方法校准内部RC振荡器,但是测试计时60秒,实际偏差0.04秒,偏差太大,这显然不能接受,似乎校准没有效果。
按照文档描述,是有用高速时钟来校准内部32K RC振荡器的 , 为什么精度只能到500ppm?
是因为校准时间不足还是其他原因?按理说应该是可以接近高速时钟的精度 (24M晶振的精度)。
内部RC振荡器偏差太大,不仅影响蓝牙连接,还会影响我们程序中其他功能的计时。
请问如何提高内部RC振荡器的精度?
这个问题涉及我们已经发货的大量订单,希望能帮助我尽快解决,谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我参考这个方法校准内部RC振荡器,但是测试计时60秒,实际偏差0.04秒,偏差太大,这显然不能接受,似乎校准没有效果。
按照文档描述,是有用高速时钟来校准内部32K RC振荡器的 , 为什么精度只能到500ppm?
是因为校准时间不足还是其他原因?按理说应该是可以接近高速时钟的精度 (24M晶振的精度)。
内部RC振荡器偏差太大,不仅影响蓝牙连接,还会影响我们程序中其他功能的计时。
请问如何提高内部RC振荡器的精度?
这个问题涉及我们已经发货的大量订单,希望能帮助我尽快解决,谢谢!
内部RC精度肯定不如外部晶振,一般的32.768K晶振精度都在± 40ppm
500ppm一分钟的误差是0.03S
因此内部RC一般都在对精度要求不高的场景中使用
按理说应该是可以接近高速时钟的精度 (24M晶振的精度)
达不到外部晶振的精度,若要达到更高的精度,则需要使用外部晶振
校准间隔是这个宏吗?设置1000
#define RCOSC_CALIBRATION_PERIOD 1000
内部RC精度不如外部是知道的,我想确认的是,用高速时钟来校准内部32K RC振荡器,为什么精度还是666ppm(1分钟偏差0.04S)?是否没有校准成功?怎么排查呢?
校准间隔是这个宏吗?设置1000
是的
内部RC精度收温度影响很大,如果有较大的温漂,就会影响其值
1分钟不具有代表性,不能说明精度是666ppm,你应该测更长时间看看
设置好后协议栈会自动校准,你可以将校准间隔改小试试
好的,我测试更长时间看看。
除了RCOSC_enableCalibration();这种校准方式,还有别的方式优化内部RC振荡器的精度吗?
还有别的方式优化内部RC振荡器的精度吗?
没有了
我校准间隔改小至100,测试了30分钟,精度大概700ppm。偏差还是太大了,该怎么办?
设置好后协议栈会自动校准
请问我如何确认自动校准是否设置成功?哪个函数可以查到?