所有关于电路
技术文章

自定义微控制器设计:装配,测量,编程

2016年12月02日经过Carsten Pinkle

这是将您的自定义微控制器设计带到寿命的逐步指南的第2部分。

这是将您的自定义微控制器设计带到寿命的逐步指南的第2部分。我们将介绍装配,初始测量和编程。

相关信息:

每件:装配、焊接和测试

首先在你的桌子上准备组装和焊接所需的一切。记住,你不希望组装和焊接所有的部件到你的第一个原型PCB上,然后做所有的测试。最好只是焊接电路的一个功能部分,比如电源,然后确认这个部分能做它应该做的事情。然后焊接下一个功能分段并测试它,等等。

这种循序渐进的焊接和测试方法将帮助您识别出现的任何问题的根源。此外,你也可以在设计错误导致其他部件损坏之前发现它(例如,最好是发现你的电源产生5v而不是3.3 V)之前您将该电压应用于微控制器)。

焊接电源电路并测试它

一般来说,你应该焊接的第一小节是电源电路。焊接电源电路后,用适当的pcb清洁剂(如异丙醇)清洁电源电路,并检查短路和开路情况。(在这一点上,我们假设PCB没有制造缺陷,所以在这种情况下短路和开路就是焊接缺陷。)

采取您的实验室电源,设置适当的电流限制,并为部分组装的PCB供电。现在使用您的电路创建的万用表所有输出电压,并要特别小心,可以确认所有微控制器的电源引脚都存在正确的电压。然后不要忘记在继续之前关闭电源。

焊接微控制器电路

现在电源电路工作正常,我们可以组装单片机电路。

首先,焊接微控制器和用于过滤电源电压的无源元件(去耦电容总是必需的,在某些情况下铁氧体磁珠是有益的)。确保你的微控制器摆放在正确的方向上。你现在可以使用万用表来检查短路和开路,但如果你想测试微控制器的功能,你需要焊接时钟源(除非微控制器有内部振荡器)、复位电路和flash/调试硬件所需的任何组件。

当您有一切焊接时,请使用您的首选清洁剂清洁。视觉检查(显微镜或放大镜在这里有帮助,尤其是具有细桨距组件),并使用您的万用表检查您关注的任何连接。如下图所示,您可以使用万用表的电阻测量功能来评估焊接连接。

所有电源连接都特别小心(不要忘记调试头可能有电源引脚)。这里的开放式电路可能会使您的微控制器完全不起作能,并且短路可能导致损坏。

在这一点上,你的PCB有最小的有源电路,微控制器没有固件,所以当你给你的板通电时,不应该有大的电流消耗。如果你还没有,调整你的工作台电源的输出电压和电流限制,然后打开电源,看看会发生什么。如果,与预期相反,工作台电源的显示器显示高电流,关闭它再次。别慌(说起来容易做起来难);只要拿出你的万用表和放大镜,试着找出问题所在。

检查复位引脚处的电压

为了确保可靠的运行,复位引脚必须有一个稳定的、干净的电压,在微控制器数据表中的逻辑高或逻辑低规格范围内。如果复位引脚是低激活的,你需要一个逻辑高电压来使能微控制器;如果是有源高电压,则需要逻辑低电压。

如果微控制器在复位引脚上有一个内部上拉(或下拉)电阻,并且您不需要硬件复位功能,您可能没有额外的电路连接到复位引脚。在这种情况下,不需要检查复位引脚处的电压。但是如果你的设计包含一个复位电路,测量复位引脚处的电压,以确保它是可接受的。

探测时钟

如果您使用内部生成的时钟信号(但在某些时候可能需要测量内部时钟以确定其精确频率),则不需要此步骤。对于外部时钟,使用示波器查看信号是一个好主意。

首先,要得到时钟信号的准确表示并不总是容易的。当振荡器是一个直接连接到微控制器的晶体时,尤其如此——探头引入的阻抗会导致振荡频率偏移,在极端情况下,当探头被施加时,电路就会停止振荡。当使用晶体时,一个更好的精确测量频率的方法是启用微控制器的时钟输出功能,然后探测数字信号(当然,在能够将程序加载到flash之前,您不能启用时钟输出)。

如果振荡器信号是缓冲的,就像晶体振荡器模块或硅振荡器一样,你可以探测振荡器器件的输出而不影响频率。

即使是用晶体,你也可以很容易地得到相当准确的测量结果。确保使用10:1的探针;与1:1探头相关联的额外电容可能会干扰电路。

当您探测其中一个水晶引脚时,您应该看到频率大约等于晶体指定频率的正弦信号,如以下范围捕获所示。

探测时钟——测量来自石英晶体的8兆赫兹信号

将flash/调试适配器连接到自定义设计

现在我们可以继续连接flash/调试硬件了。在继续之前,请务必切断电源。

flash/调试适配器将以某种方式在适配器和PCB上的连接器之间建立连接。通常会有一根电缆,但也许你所有的都是单独的电线。此外,适配器上可能有多个连接器。确认您正在为您的编程接口标准使用正确的连接器,并再次检查PCB上的连接是否与flash/调试连接器上的引脚匹配。不过,最终,这种反复检查必须结束;此时,您只需插入调试电缆,打开PCB,并希望没有任何问题。

带有两个连接器选项的flash/调试适配器的示例。图片由爱特梅尔公司

flash/调试适配器通常会有状态led,给你一些关于内部正在发生什么的信息。,设备通电但空闲,编程正在进行中,微控制器在调试模式下执行代码。下图给出了一个flash/调试状态led的例子。

在JTAG ICE(在线仿真器)设备上的状态led。图片由爱特梅尔公司

在PC和您的自定义微控制器设计之间建立连接

打开编程工具或IDE(集成开发环境)并配置Flash / Debug适配器。然后,尝试建立与微控制器的连接。编程工具或IDE将告诉您是否工作或不。

如果它不工作,再检查你的连接。如果连接看起来是正确的,而且你找不到任何其他明显的问题,不要绝望。查找有关如何根据特定的连接环境正确配置软件的信息。此外,如果你有一个评估板的微控制器是相同的或非常相似的自定义PCB上的一个是有帮助的。如果您不能连接到eval板,那么问题可能是在调试适配器或PC软件,而不是您的PCB。

但是,让我们假设一切顺利,你可以连接到没有问题的微控制器。现在您可以将自己的固件加载到微控制器中并修改硬件配置。但是,请注意,并确保您熟悉微控制器的低级功能(如在数据表中解释)。如果您在错误的配置位或下载严重的功能障碍代码,事情可以快速震动。在最坏的情况下,您可以将自己锁定在微控制器中。

配置时钟

最重要的配置选项之一是时钟。微控制器的默认时钟配置可能不是您想要的。如果您使用的是8位接口(PDF),例如,它将被配置为默认使用1mhz内部RC(电阻-电容)振荡器。如果您想要不同的频率或不同的时钟源,您需要修改硬件配置设置。这可以通过将必要的注册修改合并到固件中来实现,现在IDE可能会包含一个工具,可以极大地简化生成硬件配置代码的过程。

如前一节所述,在进行更改时要小心!例如,如果你(不小心)告诉它使用不存在的外部时钟信号,你的微控制器将不高兴。

下载你的第一个程序

我们已经走了很长一段路,现在是时候把一个程序加载到你的微控制器的闪存里了。从一些简单的东西开始,如果可能的话,加入一些基本的视觉反馈(例如,一个闪烁的LED)。如果你没有一个LED,只需切换一个输出引脚,并检查它的范围。此时,您所要做的就是确认代码已成功下载和执行。

在下载测试程序之前,寻找对应于“删除”、“程序”和“验证”的选项。选择这些选项意味着当你点击下载按钮时会发生三件事:

  1. 微控制器的程序内存将被删除。
  2. 与你的代码相对应的目标文件将被转移到微控制器并存储在非易失性程序存储器中。
  3. PC软件将读回程序存储器中的数据,以验证在传输过程中或在将目标文件写入闪存的过程中没有引入错误。

如果下载过程成功,请执行程序。这可以通过IDE的调试功能或重置微控制器来完成。(执行重置的最全的方式是关闭PC和微控制器之间的连接,卸下闪存/调试电缆,然后电源循环电路板。)如果您的测试程序工作,祝贺!您的自定义PCB - 或者至少PCB的微控制器部分正常工作。

组装你的其余设计

此时,关闭Flash / Debug连接,卸下电缆,然后关闭PCB。现在,您可以焊接剩下的零件,测试您的其他电路,并逐步实现所有必要的固件功能。

结论

设计您的第一个基于微控制器的定制PCB是具有挑战性的。不过,这是值得的。

记住要一步一步地做每一件事,当事情没有像预期的那样顺利时,不要气馁。对于在组装和测试阶段出现的许多问题,您可以修复或提出解决方案。如果你真的搞砸了什么,使用第一个版本的板作为垫或镇纸,然后回到你的CAD软件。这是一个你不会犯第二次的错误,也许你已经注意到一些其他的改进可以合并到第二个版本中。

但是,如果你认真地处理原理图和布局工作,并仔细检查设计的每一个关键方面,你就有可能得到一个出色的定制PCB,它可以满足你的需要。