几乎每个开发板都带有内置的编程工具。取决于供应商,可能是PE Micro,SEGGER J-Link OB甚至供应商’自己的工具,例如ST-Link。在大多数情况下,机载编程器的功能受到很大限制,因此使用外部编程器非常有意义。连接编程器通常需要使用从编程器到开发板的跳线,这可能导致错误的布线,掉线甚至是老鼠的电线嵌套,如下图所示:
有一天,当我与IAR的美国东海岸FAE 亚伦·鲍赫(Aaron Bauch)交谈时,他提到他是如何创建一个板子来使其I-Jet程序员JTAG / SWD连接适应ST Microelectronics所采用的6针单行连接的他们的大部分董事会。我以为这是个好主意,但不幸的是,亚伦无法分享他的板子或设计。因此,在本文中,我将引导您逐步了解如何创建自己的适配器。
该过程的第一步是选择一个带有6针连接器的开发板。我在几个课程中都碰巧使用了STM32F429I-Disco开发板,因此该开发板是最佳选择。由于该适配器板非常简单,只不过是从一组引脚到另一组引脚进行路由跟踪,因此我决定启动Altium并使用一张原理图创建一个SWDAdapter项目。
It’始终从某个地方开始是很有必要的,我觉得在开发板上查看6针SWD连接器是一个不错的起点。单看连接器,我就知道它是1×6,.100断开标题。我的标准连接器’看过一百万次。我从零件库中放了一个到原理图上。此时,我还打开了STM32F429I-Disco板的用户手册,并在文档中搜索了描述SWD标题的页面。我发现下表描述了每个引脚的作用:
通过快速浏览此表,您是否发现任何问题?一世’给你一个提示,看一下引脚1…. it’s VDD_Target,即应用程序的VDD。该引脚不为程序员提供检测的目标电源,而是充当内置ST-Link的检测线!这意味着这些引脚实际上是为不在开发板上的零件编程的!
如果我们要创建一个外部编程器适配器,那么该适配器也将需要一种检测微控制器电压的方法。由于VCC不是’在6针连接器上,我决定将另一个2针连接器添加到适配器。这将为我提供一个未使用的引脚,然后还为将MCU VCC跳到外部编程器提供了一种方法。这不是一个理想的解决方案,但是比跳6根电线更干净。为了确保我不会忘记引脚分配或引脚1将不被使用,我复制了引脚分配表并将其粘贴到我的原理图图纸上。
此时,剩下的唯一调查是弄清楚我的J-Trace Pro的ARM Cortex-M处理器的引脚排列。我找到了程序员的数据表,然后添加了2×将5个标准.100连接器连接到我的原理图,然后再次粘贴引出线的副本。您可能想知道为什么我要使用10针接头而不是第一张图片中的20针。之所以这样做,是因为我有一个20针至10针的适配器,使用这种较小的尺寸可以使我的PCB保持较小。
现在所有连接器都已安装好,我花了几分钟时间为所有连接线布线。将原理图放在一起时,我总是喜欢遵循一些建议。这些包括:
- 留下很多评论,以便我能记得自己为什么做事
- 用易于识别的信号描述标记每个网络
- 自动指定零件
- 用No ERC符号标记所有未使用的引脚
结果是以下示意图:
正如您所看到的,结果是不错的,直接的并且易于阅读。下一步是开发PCB,然后对构建这些简单适配器板的成本进行一些分析。 (应该首先完成的事情,而不是稍后完成的事情)。由于那将花费一些时间,因此我们稍后将其保存为第2部分。
我只是在寻找这样的东西,雅各布。
谢谢 !
您’re welcome! I’一旦所有部分都准备好,我就计划了第3部分,我确认它确实有效。当时我’还将为任何想要发布的人发布gerber和文件!
感谢Jacob提到IAR’的转接板。 IAR提供了该功能,可以在ST的SWO线上使用丰富的调试信号’IAR的发现和Nucleo板’s C-Spy调试器和时间轴功能。
请与您当地的IAR销售人员联系,部件号为ADA-MIPI20-STSWD6。
感谢您让我们知道!当我们最后一次交谈时,我没有’没有意识到这是我可以从IAR购买的,否则我会这样做的!