单片机学习小组
直播中

刘杰

7年用户 1292经验值
私信 关注

如何解决高温下STM32采用内部晶振作为系统时钟的时钟源导致时序紊乱问题?

如何解决高温下STM32采用内部晶振作为系统时钟的时钟源导致时序紊乱问题?

回帖(1)

谢海莲

2022-2-14 14:04:46
单片机的时序问题在整个控制系统中举足轻重,尤其在设及到高速或者要求较高稳定性的通信中,如SPI等总线通信,时序问题便格外重要。受芯片参数的限制,过高的时钟频率可能导致芯片无法响应,过低的时序又常常导致数据传输速率的降低,甚至温度也会影响时序。
1 高温导致时钟紊乱问题引出

用过STM32的都肯定了解过STM32的时钟树,官方推荐的系统时钟的时钟源最好通过外部有源晶振芯片来提供,主要考虑到外部的石英晶体的频率精度高且稳定,能为高速的外接通信芯片提供高精度高稳定性的时钟。单对于集成度高的电路,受限于电路板面积大小,往往要求设计者舍弃一些要求取得折中办法。笔者就曾设计过一款高集成度的加速度温度补偿电路,由于放在管壳中,对电路板的面积和形状有严格的要求,在满足功能兼顾性能的前提下,由于板子过小,笔者不得不放弃外部晶振为stm32提供系统时钟,只能用内部的晶体振荡器时钟为系统提供时钟源,这样不仅满足了要求还节省了石英晶体振荡芯片的成本,本以为皆大欢喜,确遇到了下面的麻烦。
2 时钟紊乱问题

由于温度补偿电路在测试阶段需要在温箱环境下产生-40-105度的温度进行测试数据采集并补偿计算,60度以下时,电路工作正常,按预期进行,65度时,电路输出的数据明显异常,缺乏经验的我费了好长时间才发现问题所在:原来,内部的振荡器产生的时钟不仅精度较低,而且受温度影响大,这导致在高温时,时序严重偏离标称值,所以导致了IIC通信时序紊乱,数据读取和分析出错。关于内部振荡器时钟的温漂,在芯片数据手册里有详细说明,这里留给读者去找出来。
3 总结

实践检验真理,往往实际应用中会遇到意想不到的问题,这时候不仅需要经验更需要沉下心来回归手册,注意细节才能解决这些隐藏的难题
举报

更多回帖

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