初级会员

- 积分
- 191
- 金钱
- 191
- 注册时间
- 2019-5-17
- 在线时间
- 35 小时
|
用STM32F429做了一块板子,程序可以用SWD下载,但只能单次下载,连续点击下载会报错,程序能够进入debug,但是一点击全速运行就会退出,下载跑马灯程序,小灯只是微亮,电平不跳变,整个过程非常诡异
开始查找原因,先从软件入手,由于我手边有原子哥的阿波罗开发板,用的芯片也是429,所以将程序下载到原子的开发板后,能够正常运行,完全没有问题,那说明问题出在硬件上
起初在硬件上,我没有认真检查电路,总觉得可能是误操作导致芯片flash锁住了,后来想了想,新买的芯片没有必要将flash锁住吧,而且如果是flash锁住了,应该是程序一点都下载不进去,而不是可以下载,但不能debug
所以有关于flash锁住的问题先排除掉,但这个问题还是要注意一下,因为很多429芯片用ISP下载程序后会出现flash锁住的情况,而我之前也没有用ISP下载,这说明问题不在这里
然后检查BOOT,没有问题,检查芯片地线、电源线,没有问题,直到检查VDDA,才发现电压只有1.7V,看下原子的开发板,VDDA3.3V,好嘛,问题应该是他了
再次检查电路图,发现VDDA与VDD之间竟然连接了10K的电阻,而在芯片手册上,对VDDA的要求是尽量与VDD直接连接,而且
芯片手册上明确规定了VREF+的电压和VDDA的电压差不能小于1.2V
虽然我的板子上,没有用到AD采集,但是VDDA为整块芯片的模拟电路提供电源,这里还要感谢这篇帖子https://blog.csdn.net/u010307522/article/details/56681013,以下内容为复制粘贴
1.100引脚以下的芯片,ADC参考电压引脚VREF+在单片机内部和VDDA引脚连接。
2.100引脚以上的芯片,ADC参考电压引脚VREF+和VDDA是分开的。
所以,在100引脚以上的芯片中,我们可以是采用单独供电,改变ADC的参考电压。但是在100引脚以下的芯片中,就必须是看VDDA的电压值范围。
查看数据手册,可以发现,VDDA为所有的模拟电路部分供电,包括:ADC模块,复位电路,PVD(可编程电压监测器),PLL,上电复位(POR)和掉电复位(PDR)模块,控制VBAT切换的开关等。即使不 使用ADC功能,也需要连接VDDA,强烈建议VDD和VDDA使用同一个电源供电。VDD与VDDA之间的电压差不能超过300mV,VDD与VDDA 应该同时上电或调电。
所以,不管是任何引脚的STM32芯片,我们必须将VDDA和VDD引脚进行连接,所以,也就是说,100引脚以下的STM32的ADC参考电压是3.3V(固定的),没办法改变的。
VREF+在硬件上是必须 大于 2.5V,当此引脚电平值不正确时,STM32单片机也不能正常工作。
今天在调试STM32 的OTG板子的时候,出现的问题就是这个原因
————————————————
版权声明:本文为CSDN博主「子瓜云鬼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010307522/article/details/56681013
这里还要提到,VCAP1和VCAP2引脚一般连接2.2uf陶瓷电容接地,不然也会造成程序出错,这也是F4与F1的区别之一,有关于这几个引脚的电压配置,在芯片手册上有大篇幅叙述,而且多次提到VDDA要与VDD电源同源,VSSA与VSS要同源
好吧,找到问题症结,将板子上VDD与VDDA直接的电阻取下来,焊了个小锡丝上去,程序跑通了
|
|