所有关于电路
项目

设计一个自定义单片机编程和测试板

2018年2月25日通过罗伯特Keim

在本文中,我们将讨论定制微控制器编程/调试/扩展PCB的设计,我们将查看示例项目。

在本文中,我们将讨论定制微控制器编程/调试/扩展PCB的设计,我们将查看示例项目。

相关信息

定制MCU板

我发现用定制微控制器设计一致的一件事是需要编程和基本的测试硬件。

编程和调试

显然,您需要一种将程序代码加载到微控制器的方法,因此您必须包括允许您将MCU上的相关引脚连接到程序员模块的硬件。最方便的方法是直接与编程线缆配套的连接器,但是您也可以使用不同的连接器与某种类型的线缆组件结合使用。

该程序员连接也可以称为调试连接,因为相同的信号可用于通过集成开发环境(IDE)进行调试执行。但是,重要的是要记住,编程是迄今为止更重要的功能。理论上可以在不使用断点和寄存器检查的情况下开发微控制器应用程序,并且没有什么,但如果您无法将代码下载到设备中,则肯定会得到快速。

基本测试

电子的持久问题是它们是不可见的。结果是,一个完美的微控制器看起来与非功能(或空IC包)相同。这就是您的电路板需要电路的原因,该电路允许您确认MCU实际上是电源和正确执行代码的代码。这里的经典解决方案是LED或两个;这种类型的视觉反馈是有限的,但在许多情况下足够了。

问题

让我恼火的是,最终的应用程序并不需要编程和测试硬件,但它却消耗了设计时间和电路板空间。

我没有按小时进行报酬到设计PCB,因此将LED,电阻器,连接器等合并到我创建的每一个原理图和PCB中。Copy and paste can save some time, it’s true, but copying and pasting is not so easy with the layout, and of course everything has to be double-checked or otherwise diligently handled so as to ensure that there are no unpleasant surprises when the board comes back from the assembly house.

至于电路板空间,我想你们都知道大型电路板已经过时了。设计者需要有减少甚至最小化元件面积的习惯,在这个微观集成电路的时代,一对led及其相关的电阻对PCB的尺寸有很大的贡献。直接与程序员模块匹配的大型连接器则要糟糕得多,如果您想加入其他形式的反馈,如LCD或蜂鸣器,情况会迅速恶化。

解决方案

对我来说,它会在一个用于编程和开发的单独的PCB上卸载这个功能。例如:

以下是它的优点:

  • 应用程序板上唯一的附加组件是连接器,它将相关信号发送到适配器板(或程序员板,或调试扩展板,或任何您想叫它的东西)。一个典型的0.1英寸的连接器是很方便的,但是如果您愿意的话,您当然可以使用更紧凑的连接器。
  • 您可以合并所有类型的测试/调试功能,而不会显著增加应用程序板的复杂性或大小。
  • 如果你设法从组装人员那里得到一个功能齐全的适配器板,你就搞定了。不再担心,不再反复检查。所有你要做的就是确保应用程序委员会正确的信号对针,你知道你会有一个工作编程/调试接口或如果它不工作,你知道问题是在应用程序,而不是编程/调试硬件。

我的适配器板

我更喜欢硅实验室微控制器,因此我设计了C2适配器板。“C2”是其双线(加上地面)编程/调试接口的纤维名称,专为低针计数MCU而设计。这是原理图:

一些评论:

  • 我更喜欢非视觉反馈;如果你想测试板,当它在一个外壳内或在任何其他情况下,防止你很容易看到PCB,这是很有帮助的。因此,我添加了一个蜂鸣器(BZ1)。
  • BZ1是磁传感器,这意味着您需要一个反激二极管。因此D1。当我只需要一个二极管时,为什么我使用了双二极管组件?因为我生活在恐惧的恐惧中被插入错误的极性,而我的目标是每个PCB的目标是打开我的邮箱并找到一个需要零返工的全功能PCB。我特别鄙视表面安装返工。双二极管组件采用三针封装,不能错误地组装。(我出于同样的原因选择了三针LED包。)它也是一个更通用的组成部分;如果未来的板需要两个二极管,我已经在我的图书馆中拥有了组件并准备采取行动。
  • 来自SiLabs调试适配器的连接器提供5V电源,可提供高达100ma的电源。我用这个来驱动蜂鸣器。
  • J3是一个扩展选项,即,第二个应用程序板可以作为扩展第一应用板功能的方式连接。

如果您使用的是支持C2接口的Silicon Labs微控制器,您可以简单地重复我的设计,您可以使用方便的编程/调试/测试板。如果您喜欢来自其他制造商的MCU,则可以使用此原理图作为指导,并根据需要进行修改。

物料清单:

参考指示器

描述

制造商P / N.

BZ1.

蜂鸣器

CT-1205-SMT-TR

C1

陶瓷电容器,4.7μF

EMK212B7475KG-T

C2

陶瓷电容器,0.1μF

GRM188R71C104KA01D

D3

二极管阵列,通用

BAV23CLT1G.

J1.

头,10-pin,男

3020-10-0300-00.

J2.

标题,8针,男性

610108249121

J3.

标题,8针,女性

610108249221

LED1.

绿色的领导

AM23SGC-F.

LED2

红色LED

AM23ID-F

第一季度

NPN型晶体管

DSS20201L-7

R1

电阻,100Ω,1 / 8W

RC0805FR-07100RL.

R2

电阻,100Ω,1 / 8W

RC0805FR-07100RL.

R3

电阻,360Ω,1 / 8W

RC0805FR-07360rl.

让我们快速看看PCB布局:

  • 我使用了用于所有内容的表面安装组件,包括连接器。我有一个模糊的想法,这可以降低装配成本,因为它消除了与通孔部件相关的额外步骤,并且它也可以促进底侧的路由。
  • J2是主要的应用板连接器。我在这里选择了一个公连接器,以便暴露的针将在适配器板上,而不是应用程序板。
  • J1被键入(见下面的照片)。有一个阻止交配不正确的连接器是非常有帮助的。

一个示例项目

在下面的照片中,您可以看到连接到将在未来项目中出现的应用程序板的适配器板。

适配器板用于将简单程序装入应用板上的EFM8激光蜂头微控制器。该程序使用LED和驱动蜂鸣器,频率选择以产生标准音符。驱动蜂鸣器的方波是通过可编程计数器阵列产生的;通过将适当的分频器值写入PCA0CPH2寄存器来控制频率。PCA本身由〜255 kHz时钟驱动,下面的代码显示了与不同备注对应的PCA0CPH2值:

//音符#define note_c6 122 //1046.50 Hz #define note_d6 109 //1174.66 Hz #define note_e6 97 //1318.51 Hz #define note_f6 91 //1396.91 Hz #define note_g6 81 //1567.98 Hz #define note_a6 73 //1760.00 Hz #define Note_B6 65 //1975.53 Hz #define Note_C7 61 //2093.00 Hz #define Note_D7 54 //2349.32 Hz #define Note_e7 48 //2637.02 Hz

该代码模拟了一场与贝多芬的第5次开始的音乐会。绿色LED根据笔记闪烁。管弦乐队首先用C重大尺度加热,然后红灯开启嘘声,然后性能开始。这是一个视频:

代码并不特别复杂。一个小细节是,短暂禁用PCA以在纸币之间创建可听分离,如下所示:

PCA0CN0_CR = 0;//禁用PCA以静默蜂鸣器延迟_10ms(2);PCA0CN0_CR = 1;//重新启用PCA C2Adapter_LEDGRN =高;delay_10ms(5);c2adapter_ledgrn =低;delay_10ms(43);

如果你想了解更多细节,请点击以下链接下载所有的源代码和项目文件:

proj_C2adapter_files.zip

结论

在本文中,我们研究了一种可以减少基于微控制器的pcb的尺寸和复杂性的微控制器适配器板。它还使初始测试阶段更加直观。我们完成了一个简单的项目,使用适配器板的led和磁蜂鸣器。

为自己提供这个项目!BOM。

2的评论
  • l
    Lbyrne17 2018年3月17日

    是这个开源,因为我想我可以为我的ESP-01模块使用这个板设计,并将其链接到我的Arduino,并在较小的空间中制作几个非面包板设计。虽然令人敬畏的布局。大引脚。问题,如果我对较大的芯片组密切公布,任何想法如何使用3.3到5V切换器的电阻?有任何帮助欢迎。但提前谢谢。

    喜欢。 回复
    • RK37 2018年4月18日
      是的,它是完全开源的。我不太了解你关于较大芯片组的问题。如果您指的是3.3 V至5 V电压转换,我更喜欢使用专门为此任务设计的IC。
      喜欢。 回复