STM32
直播中

邓长生

10年用户 907经验值
擅长:可编程逻辑
私信 关注
[问答]

STM32L476内部RC振荡器频偏超大的原因?怎么解决?

量产几K台设备,出现一台STM32L476内部RC振荡器频率低了4.5%的故障板,引发高速串口通讯异常。
读了RCC_ICSCR寄存器,0x1090 0082,HSI时钟配置的是16M没有问题。
芯片内部时钟频偏这么大是正常的吗?没用外部晶振,担心其他设备后续也会出现内部振荡器频偏问题。
查看芯片手册内部振荡器受温度和电压影响大,设备出故障之前一直在室内库房存放了一年,取出来就发现故障了,会是什么外界原因引发频偏的吗?
有遇到过类似情况的吗?请高手指点啊



回帖(2)

陈艳

2024-3-29 10:36:39
既然是RC振荡器,不可避免的受到外界环境影响精度,所以产品有根据精准时钟手动校准的方式。不过对于串口这种异步时钟通讯,不要采用内部RC作为时钟源。如果两个芯片的时钟偏差为正和负两个方向,那么出现故障就是必然的。 所以要么采用晶体时钟,要不采用同步通讯方式。
举报

笑尽往事

2024-3-29 14:30:00
STM32L476的内部RC振荡器频偏超大的原因可能有以下几个方面:

1. 温度影响:内部RC振荡器的频率是由温度来控制的,温度过高或者温度波动较大会导致频率的变化。

2. 电压影响:内部RC振荡器的频率也受到供电电压的影响,如果供电电压不稳定或者波动较大,也会导致频率的变化。

3. 工艺差异:在芯片制造中,由于工艺的差异,不同的芯片可能存在一定的频率偏差。

为了解决频偏问题,可以采取以下措施:

1. 使用外部晶振:使用外部晶振可以提供更稳定的时钟信号,减少频偏问题。

2. 温度和电压的控制:尽量保持芯片工作时的温度和电压稳定,避免出现较大波动。

3. 校准频率:对于需要更高精度时钟的应用,可以在芯片初始化时进行频率校准,根据实际的频率偏差进行补偿。

值得注意的是,内部振荡器的频率偏差在一定范围内是正常的,不同的芯片可能存在一定的频率差异。如果频偏超出了芯片规格书中的允许范围,那可能是芯片本身存在问题。

对于您遇到的故障板频率低了4.5%的问题,可能是由于存放环境的温度或电压波动引起的。您可以尝试调整相关的工作环境,如温度控制、电压稳定等,看是否能够解决问题。如果问题仍然存在,可能需要考虑更换芯片或者采用外部晶振来提供稳定的时钟信号。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分