STM32
直播中

席毖庸

7年用户 1013经验值
擅长:596874
私信 关注
[问答]

STM32F030F4 HSI时钟温度测试过不去是怎么回事?

最近做一个传感器项目,因为比较紧凑,选用了F030F4的单片机使用内部8M时钟PLL到36M作为时钟源,在代码中开启了2个定时器,一个1s一个50ms,1s的定时器中进行喂狗并翻转IO口电平,50ms定时器中查询某个状态位然后通过io驱动LED闪烁做状态指示,定时器中断代码如附件所示。目前遇到的问题是用烙铁在芯片上方5mm处加温,过一会1s定时器控制翻转电平的io口变成了低电平,不再翻转,50ms的定时器io口电平翻转正常,但是用示波器测波形不稳定,有时会从9.6Hz直接跳到10.16Hz然后再跳回来。现在程序正常工作,在1s的定时器里做了喂狗操作,能确定的是程序没跑飞,也没复位,串口输出,i2c读取传感器数据也正常,就是1s定时器翻转io口电平驱动led,从闪烁变成了常亮。
请大家给帮忙分析下看看是什么情况,谢谢

回帖(2)

郎渐海

2024-4-9 09:25:00
如果是温度引起的,不应该只有1s的定时有变化,而其他的运行正常,几率太小了。
通常温度急剧变化对内部时钟会有影响,如果影响到节温,那基本芯片就不能运行了。
所以楼主不妨只运行这个1s的程序,看看同样条件下是否正常。当然最好还是在恒温恒湿箱里做这个实验,否则条件不确定容易引起误判。
举报

周必镜

2024-4-9 15:03:58
可能的原因是芯片温度过高导致的不稳定性。当芯片温度升高时,晶体管的参数会发生变化,可能导致定时器的工作不稳定。
另外,由于你使用了HSI时钟,而HSI时钟是由内部的RC振荡器提供的,其稳定性相对较差。当芯片温度升高时,RC振荡器的频率可能会发生变化,进而导致时钟源的频率变化,从而影响到定时器的工作准确性。

解决办法可以尝试以下几种:
1. 使用外部晶体为时钟源,而不是使用HSI时钟,外部晶体稳定性更好,可以提高定时器的准确性和稳定性。
2. 对芯片进行散热设计,确保温度不会过高,以避免芯片参数发生变化。
3. 检查代码中定时器的设置是否正确,确保不会因为其他原因导致定时器的工作不稳定。
4. 如果可能,可以尝试调整定时器的时钟预分频、重装载值等参数,以找到一个适合的配置。

另外,如果你使用了看门狗(WDT)功能,在定时器中做了喂狗操作,可以尝试关闭WDT功能,看是否会影响到定时器的稳定性。
举报

更多回帖

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