打印
[应用相关]

STM32单片机VCAP电容太小引起内核电压波动导致单片机异常...

[复制链接]
716|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gwsan|  楼主 | 2021-9-6 14:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
问题:现象1:上位机记录的角度从-90.3°变为0,现象2:有时甚至不回复数据
在线调试发现单片机死机,使用软件RST复位之后查看RCC_CSR寄存器发现并不是程序里的看门狗复位排除是软件看门狗复位引起的,如果是看门狗复位,只会出现现象1不会出现现象2,这时会出现下文中的不出现④⑤的问题。(注意不能断电,断电会丢失寄存器的数据)。判断STM32复位类型可以参考这一篇博客https://blog.csdn.net/u010361744/article/details/97158204


  • 查看上位机保存的数据。

读数据和回数据帧格式(UltraEdit软件,每行显示20个数据)

1、字节数均为10,ID=08时的读回数据即为黄框所示

读数据帧头为AA ID 52 00 + 4个00         +  2字节校和;

回数据帧头为BB ID 52 01 + 4字节数据 +  2字节校验和。



使用特权

评论回复
沙发
gwsan|  楼主 | 2021-9-6 14:19 | 只看该作者
现象如下:在①的时候读数据和回复数据都是正常的,且正常数据位9A 99 BA C2,因为这个是先发低位,所以是十六进制C2BA999A,转换为Float数为-93.30,在项目里表示陀螺仪的位置在-93.30°,十六进制转FLOAT的转换方法可以参考在线网址http://lostphp.com/hexconvert/

在②和③的位置,发现只有读数据的命令,没有回数据的命令

在④⑤的位置,有了回数据的命令,但是数据变成00000000,对应Float就是0°,并且后面一直是0。(还有一种状态是,只有①②③之后,单片机直接不回复,并且测试内核电压不是一个稳定的电平,而是一个很大的纹波,波形见下图1和2,后面也找到了原因确实是内核电压不稳定导致的)

在后面毫无头绪,百度,发现有两篇**提到VCAP,使用示波器测试波形,并且注意到原理图上的电容20pF,而不是数据手册要求的2.2uF,记录了一下改变电容前后内核电压的波形,分别为下图的3和4。


更换电容之后,内核电压纹波明显更小,数据手册要求的内核电压大小在1.1V~1.3V之间,而不更换电容之前的内核电压在1.1~1.4V之间波动,更换电容之后再连续三天记录数据未发现异常复位导致角度变为0(记录之前给一个初始角度不为0,多个记录有的角度为正,有的角度为负,使用SSCOM软件记录数据,同时使用KK录像机记录视频,双向验证),至此问题解决,舒服。



总结:
1、画原理图的时候使用复制粘贴太习惯影响了VCAP电容值没有更改,后面的原理图检查没有排除问题。

2、单片机的大部分异常问题多是电源问题引起的,而且多是电容值变小或者电容虚焊导致电压波动太大,VCAP1和VCAP2均更改为2.2uF即可,因为VCAP1和VCAP2是连接到一个地方的,所以两个电容可以并联

3、板子回来之后除了测试各种电压时候输出电压是否正确时,增加观察纹波是否太大


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

3434

帖子

1

粉丝