|
在本篇文章中,我们将讨论设计一个定制的微控制器编程/调试/扩展PCB电路板,然后展示一个示例项目。
定制微控制器板 我发现定制微控制器设计一直令人讨厌的一件事是需要编程和基本的测试硬件。
编程/调试 显然,您需要一种方法将程序代码加载到微控制器中,因此您必须包含允许您将MCU上的相关引脚连接到编程器模块的硬件。最方便的方法是直接与编程器电缆配合的连接器,但您也可以使用带某种电缆组件的不同的连接器。
此编程器连接也可称为调试连接,因为相同的信号可用于通过集成开发环境(IDE)执行调试。但是,重要的是要记住编程是迄今为止最重要的功能。理论上可以在不使用断点和寄存器检查的情况下开发微控制器应用程序,但如果没有办法将代码下载到设备中,那么你肯定无法快速完成。
基础测试 电子的一个持久问题是它们是不可见的。结果是功能完善的微控制器看起来与非功能微控制器相同。这就是为什么您的电路板需要允许您确认MCU实际上已供电并正确执行代码的电路。这里的经典解决方案是LED或两个;这种类型的视觉反馈是有限的,但在许多情况下是足够的。
问题 令我恼火的是,最终应用程序不需要编程和测试硬件,但却耗费了设计时间和电路板空间。
我没有按小时计算PCB的设计费用,因此将LED、电阻、连接器等集成到我创建的每个原理图和PCB中都很麻烦。复制和粘贴可以节省一些时间,这是真的,但复制和粘贴对于布局来说并不那么容易,当然一切都必须经过双重检查或以其他方式处理,以确保在电路板从装配厂返回时没有特殊的状况。
对于电路板空间,我想你们都知道大型电路板已经过时了。设计人员需要养成减少甚至最小化元件面积的习惯,并且在这个微观集成电路时代,一些LED及其相关的电阻器对PCB的尺寸起着非常重要的作用。用于直接与编程器模块配合的大型连接器更糟糕,如果您想要采用其他形式的反馈,例如LCD或蜂鸣器,情况会更加糟糕。
解决方案 对我而言,将编程和开发的功能放在单独的PCB上是很有意义的。例如:
以下是一些优点: ● 应用板上唯一的附加组件是连接器,它可以向适配器板(或编程器板,或调试扩展板,或任何您想要调用的板)提供相关信号。一个标准的0.1英寸连接器很方便,但如果你愿意,你当然可以使用更紧凑的东西。 ● 您可以合并各种测试/调试功能,而不会显着增加应用板的复杂性或尺寸。 ● 如果你设法从装配人员那里获得一个功能齐全的适配器板,你就可以了。不再担心,不再需要仔细检查。您所要做的就是确保应用板具有正确的信号到正确的引脚,并且您知道您将有一个正常工作的编程/调试接口 - 或者如果它不起作用,您知道问题出在某处在应用板上,而不是在编程/调试硬件中。
我的适配器板 我更喜欢Silicon Labs微控制器,所以我设计了一个C2适配器板。 “C2”是SiLabs的双线编程/调试接口的名称,专为低引脚数MCU而设计。这是原理图:
● 我更喜欢非视觉反馈;如果您想要在电路板位于内部或任何不容易看到PCB的情况下测试电路板,这将非常有用。因此,我添加了一个蜂鸣器(BZ1)。 ● BZ1是一个磁传感器,这意味着你需要一个反激二极管。因此需要D1。当我只需要一个二极管时,为什么要使用双二极管元件?因为我一直担心二极管插入极性错误,找到一个功能齐全的PCB,无需返工。我特别鄙视表面贴装返工。双二极管组件采用三引脚封装,不会组装错误。 (出于同样的原因,我选择了三针LED封装。)它也是一个更通用的元件;如果未来的电路板需要两个二极管,我已经在我的库中有了该组件并可以准确使用。 ● 来自SiLabs调试适配器的连接器提供5V电源,可提供高达100 mA的电流。我用这个电源来驱动蜂鸣器。 ● J3是扩展选项,即,可以连接第二应用板作为扩展第一应用板的功能的方式。
如果您正在使用支持C2接口的Silicon Labs微控制器,您可以简单地复制我的设计,并且您将拥有一个方便的编程/调试/测试板。如果您更喜欢其他制造商提供的MCU,可以使用此原理图作为指导,并根据需要进行修改。
我们快速浏览一下PCB布局:
我使用表面贴装元件,包括连接器。我有一个模糊的想法,这可以降低装配成本,因为它消除了与通孔元件相关的额外步骤,并且还可以促进底部的布线。 ● J2是主要的应用程序板连接器。我在这里选择了一个公连接器,这样外露的引脚就会放在适配器板而不是应用板上。 ● J1是有防呆插口的(见下图)。有一个防止不正确配合的连接器是非常有帮助的。
一个示例项目 在下面的照片中,您会看到连接到应用板的适配器板。
适配器板用于将简单程序加载到应用板上的EFM8 Laser Bee微控制器中。该程序使用两个LED并以选择的频率驱动蜂鸣器以产生标准音符。驱动蜂鸣器的方波通过可编程计数器数组产生;通过将适当的分频器值写入PCA0CPH2寄存器来控制频率。 PCA本身由~255 kHz时钟驱动,以下代码显示与不同音符对应的PCA0CPH2值: - //musical notes
- #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
复制代码
该代码模拟了以贝多芬第五届开场的音乐会。绿色LED根据音符闪烁。乐团首先以C大调升温,然后红灯亮起以嘘声观众,然后演出开始。
代码并不是特别复杂。一个小细节是PCA被短暂禁用以在音符之间产生可听见的区分,如下所示: - PCA0CN0_CR = 0; //disable the PCA to silence the buzzer
- Delay_10ms(2);
- PCA0CN0_CR = 1; //re-enable the PCA
- C2ADAPTER_LEDGRN = HIGH;
- Delay_10ms(5);
- C2ADAPTER_LEDGRN = LOW;
- Delay_10ms(43);
复制代码
总结 在本篇文章中,我们研究了一种微控制器适配器板,可以减小基于微控制器的PCB的尺寸和复杂性。它还使初始测试阶段更加简单。我们使用适配器板的LED和磁性蜂鸣器完成了一个简单的项目。 |