所有关于电路
技术文章

自定义微控制器设计:硬件,工具和工具链

2016年11月25日通过卡尔斯顿人粉红

这是将自定义微控制器设计带入生活的一步一步指南的第1部分。

这是将定制微控制器设计带入生活的一步一步指南的第1部分。

相关信息:

大多数电子爱好者最终会发现,设计一个包含微控制器的定制PCB是非常有益的。这条路偏离了评估委员会提供的便利、经过验证的功能和开发支持。这些特性的确很有帮助,但它们也阻碍了我们从定制设计中获得更深刻的见解。使用自定义板,你必须自己设计这些功能。此外,您必须测试它们并确认一切都按预期工作。

微控制器硬件-我们需要什么?

定制的微控制器设计不需要太多额外的电路来实现。它所需要的是:

  • 某种电源
  • 连接闪光灯或调试工具的硬件接口
  • 一个时钟
  • 一个复位电路

微控制器的最小设置

电源供应

对于每一个电路,我们都需要一个可靠的电源供应。您必须创建一个电源电路,它接受预期输入电压的范围,并提供微控制器需要的所有电源电压。

请不要忘记包括一个去耦(AKA旁路)电容器为每个VCCPIN-这适用于微控制器以及电路板上的所有其他集成电路。典型值为100 NF,但始终在其提供特定的解耦建议时检查设备的数据表。

时钟

时钟是单片机的心跳。没有心跳,微控制器什么都做不了。它根本无法运行。

许多微控制器包括内部时钟源,如果您不需要高度稳定或高度精确的时钟频率,这通常是最佳选择。当需要高稳定性或精度时,常见的选择是基于晶体的振荡器。

当你仔细选择正确的时钟源时,请考虑以下因素:

  • 所需的频率
  • 零件间的频率公差
  • 抖动,即振荡信号周期在周期之间的变化
  • 频率过温稳定性
  • 包裹
  • 负载电容(使用晶体时,通常需要包括外部负载电容)

此外,你必须检查微控制器的数据表关于默认时钟配置。对于初始配置过程,微控制器不能在没有一个可接受的时钟的情况下启动。

重启

微控制器具有复位引脚,您需要小心连接到该引脚的电路。这可能听起来可能是奇怪的 - 也许是在思考,“这只是一个上拉或下拉电阻!”

但事情并不总是那么简单。重置引脚允许您重新启动您的微控制器,无需循环电源或连接调试工具。复位针可以由一个按钮或板上的另一个设备驱动,或者它甚至可以通过电缆连接到某种外部控制器。在任何情况下,你需要确保驱动复位引脚的电路提供适当的复位信号(通常是低活跃信号,并注意开关反弹如果您正在使用按钮)。

另一个担忧是虚假的重置。如果复位引脚是浮动的,或者上拉电阻非常大(因为这使复位线对噪声更敏感),就会发生这种情况。即使你的上拉电阻不是太大,你仍然必须考虑由附近的痕迹或高强度电磁干扰(电磁干扰)的噪声源耦合而来的伪复位的可能性。

Flash或Debug工具的硬件接口

在自定义设计中需要一个物理连接器来连接flash/调试硬件。这通常是基本的销头用于连接flash/调试硬件。你只需要知道接口标准(JTAG,社署,ISP,DebugWire等等)和适当的引脚为你的程序员硬件。实际上,您可能不需要了解实际的调试接口——通常最好的方法是简单地复制原理图中显示的微控制器到调试头的连接,用于相关的评估板。

至此,我们已经介绍了微控制器设计的基本部分。如果你有了所有这些电路,你就可以把一个程序装入你的微控制器,这样它就可以开始做一些事情,而不是什么都不做。

系统内编程(ISP)报头的10针和6针引脚的一个例子。图片由奥西克西(的工作)cc by 3.0]

工具和工具链——我们需要什么?

绝大多数现代评估板(例如Arduinos)配备了完全集成的USB接口和预装的引导程序。只需将电路板插入USB端口,请为OS安装正确的驱动程序,也许选择COM端口,然后按IDE中的编程按钮。这很容易。

您可能需要更多的外部硬件和更多的知识来启动和运行自定义微控制器设计。

所以让我们假设如下:你的微控制器在它的内存中没有引导加载程序,你的定制PCB不包括flash/调试硬件。

Flash / Debug接口硬件(包括驱动程序)

有很多flash/调试硬件工具的供应商,从非常便宜到非常昂贵。

请记住,并不是所有的flash/调试硬件都有适用于所有操作系统的驱动程序。而且,并不是所有的驱动程序都易于安装。花点时间,确保你为你的微控制器设计购买了正确的设备。

flash/调试接口设备的一个示例。图片由塞格尔

初始固件测试

对于微控制器的初始测试,您需要一些基本的固件。一个经典的led闪烁程序是好的,或者你可以提出任何其他直接的功能,提供明确的确认,你的微控制器实际上正在执行固件。如果您的板没有一个LED或任何其他指示灯,您可以在其中一个引脚上产生一个方波,并使用示波器确认信号是存在的。

集成开发环境(IDE)软件允许您创建一个程序并将其加载到微控制器的闪存中。图片由ARM公司

编程工具

为了将程序文件加载到微控制器的闪存中,你需要一个编程软件工具。通常,您将使用集成开发环境(IDE)中的编程功能,用于编写固件。

Atmel Studio中包含的编程工具。图片由爱特梅尔公司

与您的自定义微控制器设计

所以让我们说今天你收到了你最喜欢的PCB制造商的第一批定制设计。让我们带这个宝贝生命!

检查空PCB

首先,检查空的PCB,看看是否有什么明显的错误。这听起来可能有点傻,但我见过完全镜像的多氯联苯和带移位焊罩的多氯联苯。你需要留意由制造商而不是设计师造成的问题。通常PCB是完好的——实际上,如果你使用的是信誉良好的制造商,它几乎不可能有任何严重的问题。不过,你们都知道墨菲定律

检查明显的问题后,打开CAD软件,花几分钟比较实际的PCB和布局文件。如果你发现PCB上有些错误不是你的错,不要犹豫向制造商投诉。最好是现在找到任何缺陷,而不是在你有所有的组件焊接到板。

短裤,打开

大多数PCB制造商都可以做一个电测试(又称e-test),以确认实际PCB中的所有连接与CAD数据中的连接是否一致。这甚至可以包含在标准价格中。如果你没有对你的电路板进行电子测试(或者你对电子测试的质量有疑问),你可以假设电路板是正常的,或者自己用万用表检查连接。

接下来是什么?

是时候点燃你的烙铁和收集所有的部分,你将需要为你的定制微控制器设计!

在里面下一篇文章我将为您提供一些关于如何组装、焊接和测试PCB的逐步建议,我们还将介绍如何将固件加载到微控制器的闪存中。