概述
前言
前段时间自己制做了一块基于ARM芯片的F407ZGT系列的控制板,鉴于之前在自己曾在正点原子购买的探索者开发板验证过SWD的两线烧写及仿真模式,这次设计就只引出两PA13,PA14引脚;然而在首次上电调试的时候却无法识别到芯片,后面网上搜索了相同的案例,试了一天也没能解决,心里有点慌.........。提示:以下是本篇文章正文内容,下面案例可供参考
一、为什么要使用SWD模式?
示例:SWD全称Serial Wire Debug 串行线调试
1.SWD 模式比 JTAG 在高速模式下面更加可靠. 在大数据量的情况下面 JTAG 下载 程序会失败, 但是 SWD 发生的几率会小很多. 基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的.
2. SWD 仿真, 这种模式支持更少的引脚。在做产品设计的时候,当产品存在尺寸要求,推荐使用 SWD 模式, 他需要的引脚少,相比于JTAG模式的20个引脚, 布局需要的 PCB 空间更小了.
二、网上的类似问题及解决方式
1.引用链接
https://blog.csdn.net/u010333084/article/details/104954638?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
http://news.eeworld.com.cn/mcu/ic491538.html
https://blog.csdn.net/weixin_45456099/article/details/117481520
https://blog.csdn.net/qinrenzhi/article/details/82763181
2.个人经历及解决方案
当然我搜索过解决方案并不止以上几条链接,虽然网上大部分网友分享的经验都是重复的,但我还是比较感谢有这样一批技术爱好者能把自己经验和知识分享出来。下面说下我遇到的问题及最终怎么解决的。
首先,我对我做的这块ARM板的硬件设计以及焊接工艺还是比较有信心的,所以我不觉得板子本身存在什么问题,可能只是软件设置上存在问题,事实上后面发现确实是软件设置问题…。
我是用CUBEMX生成的工程文件,然后用KEIL打开文件设计模式并编译后就开始烧写程序了,首次烧写成功,但当我进入DUBUG模式就出现了错误,后来我再次重新烧写发现烧写也错误,进入设置模式,发现无法识别到芯片;
后面我又将同样的程序使用SWD模式在正点原子的开发板上实验,烧写正常,DEBUG模式正常,what fuck…,这是怎么回事?,后面一天我都开始要怀疑自己了,难道自己的硬件设计有缺陷,不不不…
后面,我重新理了下思路,发现我在使用CUBEMX生成工程文件的时候,时钟源的外部高速晶振频率选的是8MHZ正好是开发板的时钟频率,而我设计的板卡实际上是25MHZ的晶振,一拍大腿赶紧改,哎,就是这个问题。
真是一是糊涂折磨死人呀…
此外,首次烧写失败后是不能直接进行重新烧写的,芯片可能已经被写保护了。
板子上留有JTAG接口的网友可以直接使用JTAG烧写解除保护,没有的比如我,可以采用改变BOOT0电平解除保护
https://blog.csdn.net/Simon223/article/details/104794675?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7.control
总结
大家平时做设计的时候一定要仔细,千万不要给自己埋坑,感谢支持!
最后
以上就是淡定钥匙为你收集整理的SWD模式下无法识别到芯片前言一、为什么要使用SWD模式?二、网上的类似问题及解决方式总结的全部内容,希望文章能够帮你解决SWD模式下无法识别到芯片前言一、为什么要使用SWD模式?二、网上的类似问题及解决方式总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复