|
量产几K台设备,出现一台STM32L476内部RC振荡器频率低了4.5%的故障板,引发高速串口通讯异常。 读了RCC_ICSCR寄存器,0x1090 0082,HSI时钟配置的是16M没有问题。 芯片内部时钟频偏这么大是正常的吗?没用外部晶振,担心其他设备后续也会出现内部振荡器频偏问题。 查看芯片手册内部振荡器受温度和电压影响大,设备出故障之前一直在室内库房存放了一年,取出来就发现故障了,会是什么外界原因引发频偏的吗? 有遇到过类似情况的吗?请高手指点啊 |
既然是RC振荡器,不可避免的受到外界环境影响精度,所以产品有根据精准时钟手动校准的方式。 不过对于串口这种异步时钟通讯,不要采用内部RC作为时钟源。如果两个芯片的时钟偏差为正和负两个方向,那么出现故障就是必然的。 所以要么采用晶体时钟,要不采用同步通讯方式。
环境会影响内部时钟,比如温度,电压等。建议代码增加内部晶振校准。可以参考RTC时钟校准的方法。