项目场景:
使用NXP17xx开发串口服务器,在温度70°C的机房中使用,或者使用高温吹风机对着MCU吹到60°
问题描述
在高温下,串口转发网络的数据是乱码,而在常温或者空调房中可以正常稳定正确的输出转发数据。
原因分析:
通过查阅资料,MCU可以稳定工作在-40°~128°,所以在60°就出问题这是不正常的。通过一顿折腾,发现配置时钟源使用的是24MHZ的内部时钟。
芯片内部的RC OSC,在芯片设计时,为了保证在没有外部时钟/晶振输入的情况下,芯片也能工作,所以内部集成了一些振荡电路(RC Oscillator),32KHZ和24MHZ(48Mhz)时标配,不过这些内部振荡器精度有限(可能误差在20%),适用芯片低俗运行场合。如果在芯片高速运行的场合(或者精度要求高的场合),那一定需要外接高精度振荡器。
解决方案:
因为我们的项目中硬件中使用了可以产生稳定的12MHZ晶振,软件驱动一般配置使用外部时钟,从而给芯片的各部分外设倍频到想要的稳定的时钟。
时钟配置选择外部时钟源,问题解决。