STM32开发板如何利落地连接外部编程器?从0设计一款SWD适配器

嵌入式ARM 2019-04-08 17:18

来源:beningo.com

作者:Jacob Beningo

编译:付斌

如果有兴趣下载此项目的设计文件和gerber,请点击下方“阅读原文”下载


为STM32开发板设计一个简单的编程适配器


几乎每个开发板都带有内置的编程工具,不同的供应商可能是PE Micro,SEGGER J-Link OB,甚至是供应商自己的工具,如ST-Link。


大多数情况下,板载编程器的功能相当有限,使用外部编程器则是很有意义的一件事。连接编程器通常需要使用从编程器到开发板进行跳线,这个过程可能导致错误的接线,更有甚者还连成了“老鼠窝”,如下图所示:



一天,我与IAR的美国东海岸FAE Aaron Bauch谈及此处时,他创建了一块电路板来使他的I-Jet编程器JTAG / SWD连接适应ST Microelectronics所采用的6针单排连接大多数板子。这是一个好主意,但不幸的是,Aaron无法分享他的电路板或设计。所以在这篇文章中,将向您介绍如何创建自己的适配器。


过程的第一步是选择一个带有6针连接器的开发板。碰巧在我的几个课程中使用STM32F429I-Disco板,所以这个板子是这次的主角。由于这个适配器板非常简单,只是从一组引脚到下一个引脚的路由跟踪,我决定启动Altium并创建一个带有单个原理图表的SWDAdapter项目。


查看开发板上6针SWD连接器是一个很好的着手点,但从连接器来看,仅可看出它是一个1×6,标准.100的连接器,我还见过百万次标准连接器。通过打开STM32F429I-Disco板的用户手册,在文档中搜索了描述SWD头的页面。我发现下表描述了每个引脚的作用:



快速浏览一下这张表,你注意到有什么问题吗?我会给你一个提示,看看针脚1 ...... 它是VDD_Target,即应用程序的VDD。这个引脚不提供目标电源供程序员检测,而是充当内置ST-Link的感应线!这意味着这些引脚实际上是为了对不在开发板上的部件进行编程而设计的!


如果我们要创建一个外部编程器适配器,那么适配器也需要一种方法来检测微控制器电压。由于VCC不在6针连接器上,我决定将另一个双针连接器添加到适配器,这将为我提供一个未使用的引脚,然后将MCU VCC跳线到外部编程器,虽然不是一个理想的解决方案,但至少比跳6线好太多了。为了确保我没有忘记引脚或者引脚1未被使用,我复制了引脚表并将其粘贴到我的原理图表上。


最后,唯一需要查阅的就是找出我的J-Trace Pro for ARM Cortex-M处理器的引脚。我找到了官方的数据表,然后在我的原理图中添加了一个2×5标准.100连接器,并再次粘贴了一份引脚。为什么我会使用10针头而不是第一张图像中的20针。这样做的原因是因为我有一个20针到10针的适配器,使用这个较小的尺寸可以让PCB也保持小尺寸。


现在所有连接器都在板上,我花了几分钟连接所有连接。将原理图放在一起时,我在制作这个过程时候喜欢做这些工作来让我制作效率更高:


  • 留下记录,以便我记得为什么我做了一些事情

  • 使用易于识别的信号描述标记每个网络

  • 自动指定部件

  • 使用No ERC符号标记任何未使用的引脚


结果如下:



结果很好,下一步是开发PCB,对构建这些简单适配器板的成本进行一些分析。


PCB布局以及原型设计:BOM和成本


完成原理图后,只需按一下按钮,即可将组件和网络推入PCB文档。在铺设电路板时,过程遵循以下几点:


  • 将组件排列在空白纸上

  • 自动路由以确保存在有效的路由解决方案

  • 定义板轮廓(在这种情况下~1英寸乘0.75英寸)

  • 路由任何电源信号(VCC等)

  • 设定返回路径和地面的策略

  • 路由信号

  • 添加多边形填充

  • 添加版权,备注等

  • 检查布局

  • 进行任何调整

  • 生成生产文档


在元件布置阶段,确保连接器方向正确至关重要。



如图所见,使用两层,路由这些信号非常简单,无需添加任何过孔即可实现!


在设计电路板时,我喜欢查看生成的电路板,了解它在3D渲染中的样子。执行此操作时,可以为连接器添加3D模型,然后可以将其导出给机械工程师,以便使用电子模型构建外壳和其他工作。对于这个简单的电路板,我没有花时间添加这些连接器模型。最终电路板的外观如下所示:



从上往下看这个模型,在左侧,10针连接器将与两个针式公连接器一起安装在顶部。P3是连接到目标的母连接器,实际上将放置在电路板的底部。


电路板的材料清单(BOM)也非常简单。主板选择了以下组件:



这里有几点需要注意:


  1. 对于开发人员来说,组件P2可能会有很大不同,这取决于他们在编程器上使用的布线。我选择使用旧式IDC连接器。

  2. 连接器BOM成本不超过1.50美元。

  3. 我添加了一条IDC电缆,以防我没有,将外部编程器连接到适配器板。

  4. 此处未列出PCB的定价。


事实证明,如果进行小型电路板运行,PCB成本是最大的费用。我统计了一下,发现包括运费在内的约100美元,可以生产大约50块板子。如果你打算制造这些设备这是很棒的,但我只对设计板子过程感兴趣。总的来说,每个适配器将花费我25美元左右。


我可以做的更便宜吗?当然可以了!我本可以购买几条1.11美元的电缆,切断连接器,然后直接将电缆焊接到P3连接器上。不过仍然需要添加VCC跳线,布线可能已经建成了,加上烙铁大约5美元。但说实话,这样就没有设计布局一个PCB那么有趣了。


检验成果


转接板到货了,正如前两部分中讨论的那样,大多数开发板附带的板载调试器都是可用的,但通常提供的远不如专业调试器。我们一直在探索如何为ST Microelectronic开发板创建适配器板,以便我们轻松使用外部调试器。接下来让我们检查最终的结果!


在打开并检查我的板后,我发现它们看起来状态良好。正如您在下面看到的那样,该板看起来就像我们在第2部分中列出的那样,测量尺寸大约在1英寸×1.25英寸:



在烧制我的烙铁后,我将我的元件焊接到电路板上。JTAG / SWD和我的电源引脚在顶部,底部是6引脚SWD。组装好的电路板如下所示:


在这个阶段,我注意到两个小缺陷:


  1. 我从未测量过JTAG / SWD连接器尺寸,因此连接器略宽于电路板。

  2. JTAG / SWD连接器太宽了,覆盖了VCC和上面的一些丝印。


不过这些缺陷都不会影响适配器的运行,考虑到这块板设计速度很快,很多板尺寸都是估摸的,其实对板的结果还是非常满意的。事实上,这些缺陷是如此微不足道,如果我没有指出它们,甚至可能都不会引人注意。


随着电路板的组装,是时候测试它了,看看我是否真的可以用我的适配器编程一个微控制器。为了测试,我将适配器板连接到STM32F429I-Discovery板上的6针连接器。我还将一个20针到10针的IDC连接器连接到我的SEGGER J-Link Ultra +,并将我的新带状电缆连接到适配器板。在此阶段,设置如下:



如果你还记得,我必须将VCC引脚放在电路板上,以便检测目标MCU是否通电。此时,我们需要将适配器板上的VCC引脚跳线到开发板上的VCC。为了做到这一点,我使用了Sparkfun母对母接头,并连接到STM32429I-Discovery板上的3V引脚之一。最终设置如下:



真正的考验当然是我是否可以编程微控制器。我将J-Link连接到我的电脑,并尝试使用简单的RTOS LED闪烁程序对电路板进行编程。谢天谢地,一切都按预期工作!没有给我更多的跳线(好吧,只是VCC的那个)。


如果有兴趣下载此项目的设计文件和gerber,请点击下方“阅读原文”下载


网友提问:


最终工作的性能是否达到了预期?例如:基于SWO printf的调试,暂停和单步执行代码,mem监视,分析(例如来自Atollic True Studio或simmilar),从STM Studio观察变量,基本的mem读写操作(例如来自SMT32 ST-Link Utility )?


看起来codeload确实有效。在代码加载(启动代码)后是否还需要按下目标(ST发现)板上的物理重置按钮来重置目标?速度如何(例如,在写入或读取闪存内容时)?


Jacob Beningo:


板载的调试器非常有限,因为是编程微控制器的最小解决方案。如果查看数据表,ST-Link v2的连接速度约为15 kb / s,而J-Link EDU的速度约为1 mb / s。更高端的调试器可以获得更快的速度。


通过此适配器接口使用外部程序员可以更快地完成所有操作。基于所使用的探测器也有改进,例如无限断点,同时访问多个总线的能力等等。


嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  • 随着AI大模型训练和推理对计算能力的需求呈指数级增长,AI数据中心的网络带宽需求大幅提升,推动了高速光模块的发展。光模块作为数据中心和高性能计算系统中的关键器件,主要用于提供高速和大容量的数据传输服务。 光模块提升带宽的方法有两种:1)提高每个通道的比特速率,如直接提升波特率,或者保持波特率不变,使用复杂的调制解调方式(如PAM4);2)增加通道数,如提升并行光纤数量,或采用波分复用(CWDM、LWDM)。按照传输模式,光模块可分为并行和波分两种类型,其中并行方案主要应用在中短距传输场景中成本
    hycsystembella 2025-01-25 17:24 108浏览
  • 前篇文章中『服务器散热效能不佳有解吗?』提到气冷式的服务器其散热效能对于系统稳定度是非常重要的关键因素,同时也说明了百佳泰对于散热效能能提供的协助与服务。本篇将为您延伸说明我们如何进行评估,同时也会举例在测试过程中发现的问题及改善后的数据。AI服务器的散热架构三大重点:GPU导风罩:尝试不同的GPU导风罩架构,用以集中服务器进风量,加强对GPU的降温效果。GPU托盘:改动GPU托盘架构,验证出风面积大小对GPU散热的影想程度。CPU导风罩:尝试封闭CPU导风罩间隙,集中风流,验证CPU降温效果。
    百佳泰测试实验室 2025-01-24 16:58 66浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 299浏览
  • 不让汽车专美于前,近年来哈雷(Harley-Davidson)和本田(Honda)等大型重型机车大厂的旗下车款皆已陆续配备车载娱乐系统与语音助理,在路上也有越来越多的普通机车车主开始使用安全帽麦克风,在骑车时透过蓝牙连线执行语音搜寻地点导航、音乐播放控制或免持拨打接听电话等各种「机车语音助理」功能。客户背景与面临的挑战以本次分享的客户个案为例,该客户是一个跨国车用语音软件供货商,过往是与车厂合作开发前装车机为主,且有着多年的「汽车语音助理」产品经验。由于客户这次是首度跨足「机车语音助理」产品,因
    百佳泰测试实验室 2025-01-24 17:00 82浏览
  • 项目展示①正面、反面②左侧、右侧项目源码:https://mbb.eet-china.com/download/316656.html前言为什么想到要做这个小玩意呢,作为一个死宅,懒得看手机,但又想要抬头就能看见时间和天气信息,于是就做个这么个小东西,放在示波器上面正好(示波器外壳有个小槽,刚好可以卡住)功能主要有,获取国家气象局的天气信息,还有实时的温湿度,主控采用ESP32,所以后续还可以开放更多奇奇怪怪的功能,比如油价信息、股票信息之类的,反正能联网可操作性就大多了原理图、PCB、面板设计
    小恶魔owo 2025-01-25 22:09 166浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 163浏览
  • 书接上回:【2022年终总结】阳光总在风雨后,启航2023-面包板社区  https://mbb.eet-china.com/blog/468701-438244.html 总结2019,松山湖有个欧洲小镇-面包板社区  https://mbb.eet-china.com/blog/468701-413397.html        2025年该是总结下2024年的喜怒哀乐,有个好的开始,才能更好的面对2025年即将
    liweicheng 2025-01-24 23:18 133浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 197浏览
  • 飞凌嵌入式基于瑞芯微RK3562系列处理器打造的FET3562J-C全国产核心板,是一款专为工业自动化及消费类电子设备设计的产品,凭借其强大的功能和灵活性,自上市以来得到了各行业客户的广泛关注。本文将详细介绍如何启动并测试RK3562J处理器的MCU,通过实际操作步骤,帮助各位工程师朋友更好地了解这款芯片。1、RK3562J处理器概述RK3562J处理器采用了4*Cortex-A53@1.8GHz+Cortex-M0@200MHz架构。其中,4个Cortex-A53核心作为主要核心,负责处理复杂
    飞凌嵌入式 2025-01-24 11:21 167浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 226浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦