ICSP 或预编程微控制器

电器工程 微控制器 编程 程序员 icsp
2022-01-23 17:24:21

我设计了一个用于小规模生产的 PCB;目前我一次手工焊接 20 个。这个 PCB 使用了一个 ATMEGA168 微控制器,我在焊接到电路板上之前对其进行了编程——这种方法目前对我来说效果很好。

我正在考虑为我制造和组装一批 200 块电路板,因为我设计的产品似乎很受欢迎。将 ICSP 标头包含在板上或继续自己对 IC 进行预编程会更好吗?在制造或组装后重新编程电路板不是预期或必需的功能。

我不确定这是如何在更大规模的生产环境中完成的?添加 ICSP 接头会稍微增加制造成本,那么预编程是否是一种标准做法?

4个回答

如果您有用于接头的空间,那可能是最好的选择,而且 Majenko 推荐的稍微交错的针脚是在不增加复杂性的情况下将连接器固定到位的好方法。

但这里有另一种方法,适用于没有空间安装接头的电路板,或者标准接头无法完成所有编程/设置/电路板测试任务。

给定一个小尺寸的 PCB(直径 33 毫米) 在此处输入图像描述

你可以用测试点布置它(在背面标记) 在此处输入图像描述

并为它创建一个测试夹具(使用Pogo Pins在此处输入图像描述

这需要一些加工能力和至少一个柱钻(因为弹簧针必须完全垂直)。但是,如果您愿意冒险使用原型 PCB,您可以将其夹在一块材料上,并通过测试点孔“点”出,将弹簧针固定在正确的位置。(我从 Itead 以低得离谱的价格获得了 10 个 PCB,因此丢失一个 PCB 没什么大不了的)。

使用车床和铣床,制作支柱和夹具以将 PCB 准确定位在正确的位置是轻而易举的事情,但使用更简单的工具并不太难。

然后,您只需安装每个 PCB,对其进行编程和测试。松散连接器通常连接到 TI Launchpad 上的接头引脚,用于通过 SBW 接口对该 MPU (TI MSP430) 进行编程,但同样的原理也适用于 JTAG 或其他接口。(顶部的棕色电缆是同轴电缆,将校准信号传送到频率计数器)。 在此处输入图像描述

抛光桃花心木底座是可选的;我只是碰巧更喜欢蒸汽朋克风格的测试装置。

我建议总是在那种数量(小)中包含一个标题。如果数量较多,您可以考虑使用弹簧针的焊盘(您必须制作一个固定装置来保持 PCB 对齐),或者在您的数量中,您可以使用只需要孔且未填充的标签连接电缆之一垫(它们卡在板上)。

在此处输入图像描述

除了让您从对编程更新的需要中恢复过来外,这还允许您在编程之前让装配厂填充电路板,这可以改善物流。

预编程当然是一种选择,即使是批量生产(您甚至可以让分销商为您做),但它似乎主要用于最简单的应用程序。通常板上的芯片在组装后被编程(或能够被编程)。

我总是为 ICSP 标头添加空间,即使它没有被填充。根据情况,我目前有三种方法。

我的一个设计有一个非常细的间距接头,我已经为它构建了一个适配器(0.6mm 实芯线非常适合它):

在此处输入图像描述

当空间非常宝贵时,我会使用此连接器。(对不起,它模糊了,我手机的摄像头很糟糕)。

我经常使用的第二种安排是将 ICSP 合并到另一个标题中。如果 ICSP 引脚也可以用作 GPIO 引脚,并且您可以将它们与可拆卸连接一起使用,那么以最低成本包含您可能需要的任何其他 ICSP 连接(例如 MCLR)就足够简单了。然后,您只需将您的程序员插入到带有适配器的头中,该适配器应该足够简单。

第三种方式是为 ICSP 提供“交错”或“偏移”的标头封装。我主要在开发板上使用它,最终用户可能想要做 ICSP 但不想通过永久焊接接头来破坏他们的电路板。这种占位面积允许标准接头推入配合并在没有任何焊料的情况下实现良好的牢固接触:

在此处输入图像描述

当您开始处理大得多的数量时,让芯片制造商使用您的固件为您预编程芯片肯定会更具成本效益。我认为所有主要制造商都提供这种设施。

如果一个人正在使用可以在电路中重新编程的处理器,我强烈建议电路板的设计方式允许其使用,即使实际使用该功能需要为该特定目的构建一个夹具并且一个不不打算建造一个。如果在制造大量电路板后发现固件问题,则构建一个可以重新编程这些电路板的夹具可能比必须返工或重建它们便宜得多。

在某些情况下,一个好的方法可能是选择电路板的 I/O 布局,以便将在线重新编程所需的控制器引脚用于“自然”导致它们暴露于易于访问的接触点的目的。例如,设计用于金属圆顶触点的电路板可能会将触点本身连接到在线编程引脚。这样的设计不需要在布局中为编程连接器留出任何空间,但是——特别是如果电池触点的尺寸也通常是这样的,那么编程连接器就可以通过简单的弹簧加载触点来实现。

请注意,代码是否经过良好测试并不一定重要;从一批芯片到下一批芯片的变化仍然会导致意想不到的问题。例如,我设计了一个产品,它应该在处理器控制下自行关闭,当它应该是“打开”时,让处理器输出“高”在一个引脚上。在第一批的 10,000 个单元上,一切正常,但在后来的一批中,处理器会在其电压达到约 2 伏时开始出现故障,并且可以将该引脚切换回“高”;2 伏的“高”输出几乎不足以重新打开设备。由于处理器被指定在低至 IIRC 1.6 伏的睡眠模式下保持,可以通过重新编程单元来纠正问题,以便它们在激活关机状态时进入睡眠模式。如果无法进行这种重新编程,将需要更昂贵的返工(或报废和重建)。