首页 > 其他分享 >STM32中SWD下载不进去的解决方法

STM32中SWD下载不进去的解决方法

时间:2023-08-04 17:48:34浏览次数:45  
标签:芯片 BOOT SWD STM32 电路 PCB 下载

这是我第一次写自己的博客,希望以后写博客可以当做自己的个人习惯并坚持下去,作为技术分享,也欢迎各位大佬前来指正。本人本科学习的机械电子工程,了解机械制图、嵌入式编程、目前刚好学习了PCB制板,正在向着全栈工程师的目标进发(自嘲一波,各位见谅,哈哈)

惨案现场以及经过

第一次绘制PCB,目的是画STM32F103为主控的板子。当收到板子后,当我兴致勃勃测试完电源电路,LED指示灯开始亮灯的时候,内心确实很兴奋。但是当我测试SWD下载电路,却发现一直报一个非常奇怪的错误,能检测到芯片但是下载不进去?! 一直报错 No target connected。

尝试解决

1,  怀疑是自己SWD下载电路的问题

 

但后来自己查阅资料后,发现下载电路没有问题,网上的SWD开源电路一大堆,相信SWD调试电路一般都不会出问题。再者说了,既然keil能检测到STM32的芯片,说明SWD电路是没问题的。

2,  启动方式的问题

STM32的程序启动方式其实也影响着下载方式。我们先看一下BOOT选择的设置不同有什么影响。

通过这个图片,我们可以得知,当BOOT0选择0,也就是拉低的时候,程序是从主闪存启动,而SWD下载是将程序下载到主闪存器,也就是说需要将BOOT0位拉低。我选择的拉低方式是画PCB的时候,直接接GND。【但我建议,第一次画板子的小伙伴,一定要将BOOT选择位通过跳线引出来,以备调试所需】

通过我绘制的电路图,可以发现BOOT选择位其实也没有问题。但是SWD还是一直下不进去…….

3,  芯片被锁的问题

这时候我就不得不怀疑,是不是我用芯片的问题,接着我换了一个STM32F103的芯片,结果还是同样的问题……

这是我想起来了正点原子一开始教的用串口下载,也就是通过FlyMcu,利用ISP下载方式,这也是芯片解锁的一种常用方式。还记得我前面提到的要把BOOT选择位引出来吗?就是为了ISP下载方式的调试,因为ISP下载是需要BOOT0接高,BOOT1GND,并按下复位键实现下载。然而我并没有引出BOOT选择,接着就是直接在芯片的引脚上引线,然后接出来测试。附一张当时的“抢救图”,真的是惨不忍睹…….

但结果,还是不尽如人意,当接好线,准备下载的时候,检测不到芯片……….

可能全网只有我才犯这么蠢的错误

抢救自己的第一块PCB的第三天,本想放弃的时候,突然看到电源电路中的一个问题VDDA和VDD的关系。VDD是STM32F103芯片的工作电压3.3V,而VDDA是芯片模拟电路的工作电压。他们之间有个关系,在芯片手册中的描述如下。

通过STM32F1系列的官方手册可以得知 VDDA和VDD之间的电压差不能超过300mV,而我当时不知道脑子怎么想的。我给VDDA和VDD之间加入了一个10K的电阻,直接使电压差大于300mV,这也导致了程序无法下载。

错误案例:

 后来,我将10K电阻拆下来,并用焊锡连接上,程序可以正常下载,测试板子其他功能一切正常。附赠修改图,电阻11直接连起来,去掉之后,一切正常。

至此,总结3个血泪教训。

1,       绘制原理图一定要细心,最好参考原子等市面上常见的原理图资料

2,       如果BOOT选择能引出来,尽量引出来。

3,       尽量不要自动布线,我这次的板子是自动布线,虽然幸运的是功能正常,但是备不住什么时候就出现问题。(因为当我没有发现电源电路问题时,我也怀疑是布线的问题)

总结:

这是一个电阻引发的3天抢救单片机的故事,以后我会分享自己的学习历程和经验,以及踩的坑,本人虽是机械专业,但方向是嵌入式,目前也会点PCB,以后分享的也是这三个方面的问题。希望喜欢的小伙伴继续支持,让我们在学习的道路上一起加油。

标签:芯片,BOOT,SWD,STM32,电路,PCB,下载
From: https://www.cnblogs.com/QLkeep/p/17606551.html

相关文章

  • web实现文件夹的上传和下载
    ​  上周遇到这样一个问题,客户上传高清视频(1G以上)的时候上传失败。一开始以为是session过期或者文件大小受系统限制,导致的错误。查看了系统的配置文件没有看到文件大小限制,web.xml中seesiontimeout是30,我把它改成了120。但还是不行,有时候10分钟就崩了。同事说,可能是客户这......
  • npm下载源配置
    Npm配置淘宝镜像更新:2023-05-1723:30一、npm配置淘宝镜像源npm是世界上最大的包管理器,是Node.js的默认包管理器。默认情况下,npm的包下载速度较慢,特别是在国内,因为它默认访问的是源在国外的仓库。但是npm官方支持在个人的~/.npmrc文件中配置镜像源。为了更快地下载依赖,可以使......
  • csharp实现文件夹的上传和下载
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求         <formid="postForm"action="${pageContext.request.contextPath}/UploadServlet"method="post"e......
  • c#实现文件夹的上传和下载
    ​ IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag        客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续......
  • STM32学习笔记
    目录时钟配置时钟配置时钟树系统时钟倍频到168MHzvoidSystemClock_Config(void){RCC_ClkInitTypeDefRCC_ClkInitStruct;RCC_OscInitTypeDefRCC_OscInitStruct;/*EnablePowerControlclock*/__HAL_RCC_PWR_CLK_ENABLE();/*Thevoltage......
  • 现在面试都会问什么?(PDF高清下载)
    前几天在网上看到一个北漂程序员的真实遭遇:“被裁整整一个月了,面试了22家,一个offer都没有拿到”这样的遭遇,确实不得不让人怀疑人生啊……虽说现在确实大环境不太好,被裁员的人也是很多,但是也不至于面试惨到如此地步吧?不过现在的企业和面试官,对于Java程序员的要求确实是越来越高,他们......
  • Python | 开源项目you-get的下载和使用
    安装前提条件建议使用以下依赖项:PythonFFmpeg(可选)RTMPDump$pythonPython3.9.11(tags/v3.9.11:2de452f,Mar162022,14:33:45)[MSCv.192964bit(AMD64)]onwin32Type"help","copyright","credits"or"license"formoreinformat......
  • php实现文件夹的上传和下载
    ​ 前段时间做视频上传业务,通过网页上传视频到服务器。视频大小小则几十M,大则1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃; 解决方案:1,修改服务端上传的限制配置;Nginx以......
  • SIEMENS PLC介绍、西门子S1200系列接线、编程、下载和仿真
    前言  西门西PLC、台达触摸屏、法兰克机床等等多年以前玩得比较多,改造机床、维修机床、给机床编程等等,没事还能扯个零件啥的,之前也没总结过,有时间就重新整理下。  本章后面以西门1200实物为例,下载一个基本程序。PLC  玩得比较多的就是西门PLC,单个模块就是3K起,一个24V电源......
  • 软件开发全文档下载(几百份软件阶段各类文档)
    一、前言软件开发工作中,在#夏天生活图鉴#计划,需求分析,开发实施,测试,评审,交付验收,以及投标等其他过程中,会产生大量的文档,为了规范项目整个流程,亦或是为了验收交付提供材料,或者是为了资质评审,我们都需要这些文档来支撑,下面我把这些文档罗列出来给大家参考,里面有好多套不同项目的模板......