选择微控制器的调试/编程连接器

TL;DR摘要:对于ARM SWD、TI Spy-Bi-Wire或Microchip ICD,使用无脚Tag-Connect印刷板布局和标准针/垫分配,并获取Tag-Connect电缆。

设计使用微控制器的设备时,需要提供一个调试和编程连接器。这可能仅用于开发时编写和调试软件,或也可以留在生产单位中,用于工厂内编程。

制造商和工具制造商确保我们生活在一个充满调试连接器和围绕它们的混乱的世界。这就是为什么我们最终得到这个: 

那么,对于新设计选择哪种连接器呢?

本文主要关注具有SWD(单线调试)接口的ARM设备,但也适用于其他零件,如使用Spy Bi-Wire(2线JTAG)协议的德州仪器MSP430,Microchip ICD,或者需要更完整的JTAG引脚集的零件。

流行的调试连接器

通常被考虑的一些常见选择:

  • 0.1英寸IDC头上的10针JTAG。通常使用公头。缺点:它很大,而且头部成本高。
  • 使用0.05英寸微型头(10针或20针,Samtec FTSH-110和FTSH-105)的Cortex调试连接器。10针连接器相当小,可作为SMD元件使用,但比IDC连接器更贵。
  • 0.1英寸IDC连接器的20针。你不是认真考虑那个恐龙吧,你是吗?它比我设计的一些板还大。
  • 自定义的4或6针(或通孔,或铜垫)。这里的问题是“自定义”部分。这最终会在未来反咬你一口,当你的自定义连接器在工厂地板上断裂,你必须从海外运送一个新的,而生产被迫停止的那一天。
  • Tag-Connect 6针脚印的一个变体(带腿或不带腿)。注意这里没有连接器:只是PCB上的一个标准化脚印。
  • Tag-Connect 6针+ Tag-Connect 10针(用于ETM信号):对于这种组合,甚至有一个预制的电缆可用,带有20针IDC连接器和标准ARM Cortex 20针分配。

一个立即的观察是,这些连接器大多需要,嗯,连接器。这是您需要在电路板上放置的额外组件,这会花费金钱。对于生产单元或较大的原型运行,该连接器在产品的整个生命周期中只会被使用一次,这是一种浪费。

Tag-Connect解决方案或带有弹簧针基连接器的自定义脚印在这里有一个明显的优势,即它们不需要在PCB上放置任何组件,因此每块板的调试连接器成本降至0,这是非常棒的!

这是Tag-Connect印刷电路板上的实际外观:

这就是带有弹簧针的电缆看起来的样子: 第二个主要考虑因素是尺寸,以及随之而来的板上空间要求。唯一的竞争者是10针0.05英寸微型接头和Tag-Connect 6针脚印。10针微型接头实际上在一个方向上稍微小一些,但差异并不显著。这是10针0.05英寸微型接头的样子(这个来自Nordic Semiconductor nRF52832开发板,PCA10040):

有腿还是无腿?

Tag-Connect连接器电缆有两种变体:一种带“腿”,一种不带“腿”。有什么区别?

Tag-Connect使用带有弹簧的弹针,这些弹针会压在PCB上。如果你想让连接器保持在位,你必须持续施加力。这对于快速编程来说是可以的,你可以用一只手持住连接器,另一只手启动编程任务,但对于延长的调试会话来说效果不是很好。对此,“腿”脚印(和连接器)的效果要好得多。腿充当小夹子,所以一旦插入连接器,它们就会卡住并紧紧地将弹针压在板上,时间无限。

“腿”脚印的问题在于它的尺寸:它明显大于“无腿”变体。更糟糕的是,它需要在板上开四个大孔。大孔总是一个问题:它们(显然)需要穿过所有层,并且你需要在它们周围留出保持区域。这意味着,“腿”脚印对你的设计的影响比“无腿”变体要大得多。

对于生产单位,连接可能在产品的生命周期中只进行一次,并且可以随时手持,毫无疑问:您肯定更喜欢"无脚"的脚印,它节省了板空间。但是原型怎么办?一方面,您可以负担得起板空间,但另一方面,您不想仅因为需要在最终修订中移除孔而重新设计PCB。

幸运的是,还有另一种解决方案。Tag-Connect 出售一个小型保持夹。它是一块 PCB,上面有三个插座,适合 Tag-Connect 电缆的插针。这不是一个机械上完美的解决方案,夹子随着时间的推移会磨损(它们也非常容易丢失!),但实际上它工作得相当好。

我建议总是选择“无脚”印制板脚印和电缆,购买一堆保持夹,并节省电路板空间和重新设计电路板的成本。

使用标准信号分配

我在野外见过硬件,设计师在ARM SWD(在Cortex-M0上)上使用了Tag-Connect脚印,但分配了不同的信号。可能的动机是为了混淆接口。

我不推荐这样做:混淆很容易被发现,而且最终会得到一个不兼容的脚印,这将不可避免地导致问题。

实用性

Tag-Connect建议在印刷电路板的另一侧不要放置任何元件(或布线)。虽然这是一个好的建议,但在小型板子上,由于布局限制紧张,有时候并不总是能够这样做。

正如我所发现的,即使使用保持夹来固定电缆,也可以在另一侧放置组件。不过,我建议在组件和保持夹之间使用一块绝缘体,以防止任何可能的短路(纸张效果很好)。虽然这不是推荐的做法,但这确实有效,尽管固定调试连接器变得有点复杂。

这是一个原型板的示例(请原谅原型焊接质量),其中组件放置在调试封装的区域内:

批评

Tag-Connect并非全是好处。网站组织得不好,所以很难找到您正在寻找的信息。提供了多种变体,尽管大多数人只需要一种类型的电缆,但它并没有显著显示。不幸的是,这似乎是嵌入式世界中制造调试和编程设备的公司的传统。

我对该公司的第二个不满是,公司提供了带有 Tag-Connect 脚印的可下载 CAD 库,但声明说:

这些文件是按'原样'提供的,不保证它们是完整的、无误的或适合使用的。在Tag-Connect网站(见下文)提供的最新数据表中仔细检查导入的贴片,特别是检查孔大小、引脚编号,并密切注意焊膏屏蔽层,以确保没有焊膏沉积在贴片垫上。

如果您查看提供的ZIP文件,通常会有给定CAD的几种封装变体。我应该使用哪一个?为什么验证它是我的责任?

我认为Tag-Connect应该清理这个库并提供一套受支持的脚印,至少对于更受欢迎的CAD包,不带免责声明。它应该是这个解决方案的价值的一部分。

结论

综合考虑,Tag-Connect仍然是最佳的现成调试和编程解决方案。我建议在所有设计中标准化使用它。

早期博客文章: KiCon 2019 (2019-03-27)
后续博客文章: 2020年5月新功能 (2020-05-16)