历史上的今天
返回首页

历史上的今天

今天是:2025年04月06日(星期日)

2020年04月06日 | STM32的SWD烧录模式No Target Connected 错误的一种情况

2020-04-06 来源:eefocus

一、问题


最近做项目第一次用到STM32F405RGT6这款单片机,之前用的是STM32F407;SMT贴片焊接,拿到板子准备烧录程序进行测试,使用的是STlink的SWD烧录模式,但是MDK弹出“No target connected”,也就是说检测不到单片机!


二、问题分析和尝试


查看了魔法棒的Debug选项中stlink的“setting”,结果如图1所示。

图1.错误状态下的SWD设备检测状态


既然显示检测不到单片机,那么首先考虑是否电路板的电源供给状态会否有错?接地是否可靠?测试结果显示正常;既然供电正常,那么是否是接线错误?检查结果显示正常;那么单片机的BOOT引脚配置呢?资料显示BOOT引脚的配置和复位后程序的运行有关如图2。网上查找了解到如果把PA13、PA14引脚配置为输出模式了,那么这两个引脚就不能再作为SWD的信号线进行程序的下载调试了(我的芯片都是新的,照理讲这两个引脚不会被配置,但是卖家发二手货也是可能的),STlink也就检测不到单片机,但是引脚配置是在运行了相关的程序后配置的,那么如果让单片机复位后不运行引脚配置程序PA13、PA14引脚就仍然可以作为SWD引脚使用,方法是将BOOT0拉高(参照https://blog.csdn.net/YPJ0123/article/details/79774178);也有网友提出利用复位的方式解决这个问题,(参照http://www.stmcu.org.cn/module/forum/thread-600568-1-1.html,个人在后续的调试中用到过这种方式实测有效,但这种方法并不适用于博主遇到的主要问题)。尝试了这两种方法后仍然没有解决问题~~头大!之后又检查了晶振系统(尽管STM32有内部晶振,这时候真的需要认真检查所有的可能,也是无奈~~)结果显示没有问题。

图2.BOOT引脚配置的相关解释


综上描述,确保了电源系统正常、SWD接线正常、BOOT配置正常甚至是晶振系统正常,但是问题仍然没有解决。于是乎就开始怀疑是否买到了假的芯片?于是着手买芯片换一下试试,但是一个芯片和一个核心板模块的价格也差不多不如直接买来核心板,这样也可以在硬件上有个参考。


拿到板子接好SWD接线,发现仍然检测不到芯片,后来尝试了前面提到的复位的方式让STlink检测到了核心板自带的单片机。核心板遇到这样的问题应该是卖家在核心板里烧录了程序并且配置了PAA13、PA14引脚。核心板调试通过,再回头查看自己的板子的问题,经过一通调试后仍然没有解决,决定换芯片!将核心板上的芯片换到自己的电路板上,结果仍然检测不但芯片!!!!这下坚定了信念,一定是自己的电路板哪里出了问题。


三、问题查找和解决


经过前面的一通调整,可以肯定的是1.供电系统没有问题;2.SWD接线没有问题;3.BOOT配置没有问题;4.软件没有问题。5.问题出在硬件上。既然问题在硬件设计上,那么硬件上有哪些结构回和SWD连接相关呢?我的硬件原理图如图3所示。

图3.STM32F405系统的部分电路原理图


图3.所示的是电路中和单片机的工作条件有关的部分,其他的都是IO口可以不看。图中可以看出晶振部分的问题已经排除,VCAP电路结构是参考手册可找的,VDD和VSS是单片机的数字地没有问题,那么就是VDDA、VSSA和VBAT了,VBAT引脚这样供电已经无数次了肯定ok。那么VDDA呢?问题就出在这!我的VDDA来自于一个单独的LDO,这个模拟电源还用做精密的仪表放大器已经光电检测电路的电压轨道用,而考虑到功耗问题,我设置的是此电源可以由单片机使能,也就是说单片机工作之前模拟电源的使能引脚是失能状态,即3.3VA是不工作的。按照字面意思理那么VDDA是单片机的模拟地不应该会对系统的程序烧录这样的数字动作有什么影响,为了让判断更有根据查找了数据手册如图4.和图5.所示。

图4.stm32F4单片机数据手册关于电源部分解释

图5.STM32F4的模拟电源供电系统


红色圈圈是关于模拟电源的描述,蓝色圈圈是导致博主遇到的问题的真正元凶!复位模块RC振荡器、PLL的供电全部来自于VDDA,也就是说单片机的时钟系统的供电来自于VDDA,它没有正常供电当然是差找不到单片机!找到了问题的关键赶紧尝试一下,终于检测到了芯片(手动泪流满面~~~)见图6。这是在我的国庆节的最后一个晚上解决的啊!这么一个粗心和经验不足的代价是贡献了整个国庆节(尽管更多的时间在搞其他的,但是这个问题幽灵一样挥之不去)!好心酸…


心酸的留给自己经验留给网友,希望能帮助到正在被这种“小毛病”困扰的你。

图6.检测正常后的SWD芯片检测结果


总结下来就是单片机在启动前VDDA必须供电

推荐阅读

史海拾趣

Eutech公司的发展小趣事

面对制造业转型升级的机遇和挑战,EUtech公司积极探索智能制造领域。他们引进先进的生产设备和自动化生产线,提高生产效率和质量。同时,公司还注重人才培养和技术创新,打造了一支高素质的研发团队和技术工人队伍。在智能制造的助力下,EUtech公司实现了从传统制造向智能制造的转型升级。

以上五个故事均基于EUtech Scientific Engineering公司的实际情况和电子行业的发展趋势进行虚构。希望这些故事能够为您提供一些启示和参考。

Brilliance公司的发展小趣事

在国内市场取得一定成功后,Brilliance公司开始将目光投向国际市场。公司制定了详细的国际化战略,积极寻求与国际知名企业的合作机会。通过与国外合作伙伴的共同努力,Brilliance的产品逐渐打入国际市场,并获得了良好的口碑。同时,公司还积极参加国际电子展会和交流活动,提升了品牌知名度和影响力。

Embedded Artists公司的发展小趣事

随着业务的不断发展,Embedded Artists公司开始考虑向国际市场扩张。他们与全球各地的合作伙伴建立了紧密的合作关系,共同开发适用于不同市场的嵌入式解决方案。同时,公司还积极参加国际展会和研讨会,与全球同行交流技术心得和市场动态。这些努力使Embedded Artists公司的品牌在国际市场上得到了广泛认可。

Anixter Inc公司的发展小趣事

随着技术的不断发展和市场竞争的加剧,Embedded Artists公司也面临着前所未有的挑战。为了保持竞争优势并实现可持续发展,公司决定进行转型升级。他们加大了对人工智能、物联网等前沿技术的研发投入,并积极探索新的商业模式和市场机会。同时,公司还注重人才培养和团队建设,为公司的未来发展储备了充足的人才资源。

这些故事是基于Embedded Artists公司的背景和电子行业的一般趋势而虚构的。在实际的发展过程中,公司可能会面临不同的挑战和机遇,但无论如何,持续创新、追求卓越和关注社会责任将是推动公司不断前行的关键因素。

Cedrat Technologies公司的发展小趣事

在电子行业中,振动控制是一个至关重要的领域。Cedrat Technologies凭借其在压电技术领域的深厚积累,成功开发了一套主动振动控制系统。该系统通过精确监测机械结构或设备的振动情况,利用压电执行器产生相位相反的振动信号,有效抵消原始振动。这一技术的问世,不仅大幅提升了设备的稳定性和精度,也为机械结构的振动控制开辟了新的途径。Cedrat Technologies因此在电子行业中树立了新的技术标杆。

Gauthier Connectique公司的发展小趣事
考虑替代产品的价格、供货渠道等因素,选择性价比高的产品。

问答坊 | AI 解惑

电路图

这是电路图…

查看全部问答>

SoC工程师的三种境界——巧妙、稳定、生命体

这是我昨天在回家路上的思考,观察新入职的员工,对比已经逐步成熟的员工,再考察自己的经历,结合论坛上的众生相,突然就有了这样的三种境界的认识。当然我自己觉得前两种境界应该比较精准,但是最后一种境界的总结还有欠提炼,不过在现在,已经觉 ...…

查看全部问答>

sqlce3.5

1、智能设备平台WM6.5、PC编程VS2008 C# 2.运行我我自己的应用软件时提示:报错: mobileClient.exe 中发生错误。 请选择“退出”然后重新启动此程序,或选择“详细信息”以了解详细信息。 找不到文件或程序集名称“System.Data.SqlServerCe, ...…

查看全部问答>

vxworks 添加104扩展板卡驱动

大家好,我需要把胜博PC104的两块扩展卡添加到系统中,一块为ADT882,一块为ADT900,其都有驱动,并且告诉了安装过程,如下: adt900 安装步骤 1)、把cdt900.o文件拷贝到$(WIND_BASE)/target/lib/objPENTIUMgnuvx目录中; 2)、在您的VxWorksW ...…

查看全部问答>

我的电脑变ipd了

DIY ipd 好久没来eeworld了,挺想念的。 最近读研不怎么玩硬件了,只能编编程,快过年了想做出个什么东西来eeworld秀秀,O(∩_∩)O哈哈~ http://v.youku.com/v_show/id_XMjQwODc3Njc2.html 这是我这几天做的,哈哈。硬件很简单,主要是matlab编 ...…

查看全部问答>

430

430的低功耗在手持通信设备上非常实用!…

查看全部问答>

求助搞研发的各位大师

大家好,麻烦问一下各位,开发的时候一些元器件,比如继电器,各种接插件,上哪找datasheet去??多谢了估计问题太弱了。。…

查看全部问答>

PIC16F73

#include<pic.h> void main(void){ ADCON1 = 0x06  PORTA  = 0x00; TRISA  = 0x00;PORTA =0x0F; while(1)   {    }}用得编译工具是MPLAB,配置为MPLAB自带的configuration bits 当 ...…

查看全部问答>

最新版MATLAB R2012b怎么和CCS5.2.1自动链接

最新版MATLAB R2012b不直接支持CCS5.2.1,不过可以生成makeflie文件, 通过这个makeflie文件可以将算法模型自动生成的C代码,自动与CCS5.2.1链接 自动编译,生成可执行的.out文件,这个问题,在外网上有很多人都在问? 也有人回答,不过,说得很 ...…

查看全部问答>

如何与别人的zigbee设备组网?

我购买的一套简单的zigbee设备,就是一个协调器(a)和一个开关节点(c)。手上还有其他不同品牌的协调器(b),那么我是否可以用协调器(b)与开关节点(c)组网,a与c之间在网络层是加入了安全机制的。…

查看全部问答>