【经验】物联网创客指南:MCU设计的最佳实践和除错技巧(二)
在本系列的第一部分中,SILICON LABS介绍了修订控制系统,以及它如何安全地保存您的设计文件,并帮助您找到设计文件之间的差异。在本节的第二部分教学中,您将了解如何构建自己的硬件。
开始使用面包板进行开发
当在EFM32上开始一个新项目时,您可能已经参考了本书的一些例子,并认为您有了足够在定制印刷电路板(PCB)上开发自己的EFM32解决方案的能力。但不要让步子太大,可以遵循下列步骤以确保开发的成效:
1) 一步步进行测试
为了获得最佳效果,每个项目都应该从“面包板”开始,在此阶段,您可以为设计中的每个主要设备组装入门工具包和分线板。虽然您可以多次阅读设计中的设备规格,但在您尝试通过软件与设备进行交互之前,您无法真正学习如何使用设备。只是将设备连接到您的入门套件,并尝试通过电气接口与之通信,都将帮助你获得许多从阅读规范得不到的经验。虽然一些规范开始时有很大的意义,但你很快就会发现规范没有涵盖启动设备并开始使用它所需要的一切,或者至少它掩盖了一些重要的信息,如需要额外的信号线,额外的外部电路或许多其他重要的细节。
2)为每个设备找到或制作自己的分线板
为了使用外部器件,您需要在设计中为每个器件找到一个分线板,评估或开发套件。如果你不能找到一个设备(或者如果它太贵),你通常可以按照本书第9章的说明自己构建一个。如果这是不可行的,例如你的设备有一些难以焊接的器件封装,如BGA,你有时可以找到芯片的备用封装,其具有相同的电气性能与更容易焊接的封装。
如果您的设备需要大量的支持电路来运行,例如特殊的电压调节器,那么开发您自己的评估板是完全值得的,因为开发这样的板,可以证明在你构建整个系统PCB前,你对你设备的引脚分布,footprint和支持电路是完全理解的。这些footprint文件可以在您的系统设计中重复使用,它们已经完全验证。
3)仅针对基本功能
一旦将评估设备连接到入门套件进行测试后,重点应该是让部件基本上起作用。由于您通过跳线进行连接,因此在某些情况下,信号接口的电气要求将不能全速工作,因此要将速度保持为电气接口最低的速度,并保持EFM32 GPIO输出的最低驱动强度。在进入进一步的功能之前,编写代码来做一些简单的事情,比如读取设备ID寄存器或者做一个简单的写操作。由于可能在跳线上发生的复杂的信号完整性问题,某些频率可能是不可达到的,所以不要对面包板模型有太多期望。
该过程的要点是在设计定制PCB解决方案并将设备驱动程序集成到系统软件之前,尽可能多地了解设备的要求。这将问题隔离到单个子系统,并使您的最终开发就像是系统集成的练习。
面包板成功的关键:
• 对于设计的每个子系统,使用隔离面包板启动所有项目
• 为任何棘手的footprint或需要大量板载电路的部件开发评估板
• 专注于让部件“正常工作”,而不是寄希望于在面包板上实现全面性能
规划原型设计
一旦你的面包板实验完成,你已经确定了将组成您的EFM32解决方案的设备,是时候开发一个自定义PCB,以将所有这些组件一起作为一个单一的系统了。虽然此时定义外壳并且开发一个适合目标外壳的微型板也是很有诱惑力的,但是将第一个定制PCB开发为一个仅专注于测试和开发的大型测试系统是一个更好的主意。
1)严肃地使用测试点
内置测试PCB是最终解决方案的一个版本,包括访问设计中的所有信号作为测试点。具有测试点的设计中的任何信号都可以通过万用表,示波器或逻辑分析仪进行探测。测试点可以是铜的暴露的“焊盘”,允许应用插头引脚和跳线的通孔结,或者甚至用于探针夹的金属环。将所有组件和测试点放在内置测试板的顶部也是一个好主意,这样调试更容易,因为您可以无需翻转板子。
要查看测试点的类型,只需查看您的入门套件的背面。电镀通孔测试点是我们焊接插头引脚的测试点。小金圆焊盘是表面贴装测试焊盘,适用于探测或焊接其中可以连接小探针夹的小导线。
2. 计划硬件设计spin
通过规划内置的测试版本的PCB,它将需要至少一个“spin”或重新设计生产解决方案的板。设计一个从第一次测试到生产的电路板是非常罕见的,几乎是不可能的。内置测试PCB允许您在启动期间询问系统,并轻松地研究设备之间的电气接口,而无需依靠特殊的焊接技术将探测点连接到电信号。应添加一个全功能通孔JTAG调试器连接器,以便与Simplicity Studio IDE完全交互,就像您的设计是入门套件一样。尽管可以仅使用UART编程开发生产板,但是在没有JTAG调试头的情况下将丢失调试功能。
您可以通过在电源和每个器件之间放置1欧姆左右的精密电阻,然后测量(或选择范围)精密电阻上的电压差,来研究系统中每个器件的功耗。
3)使用比您认为在生产中需要的更大,更好的EFM32零件版本
当您开发您的第一个定制PCB版本的设计时,使用一个比你认为最终解决方案需要更多的闪存和RAM的EFM32系列的部件。有时可以保持相同的引脚数和占用空间,但通过使用比最终生产解决方案更强大的部件构建您的设计,可以获得额外的闪存和RAM。与使用优化器减少内存占用的“发布”版本相比,Simplicity Studio中的“Debug”需要更多的闪存和RAM,因此通过在原型阶段升级到更高能力的部件,您将使调试成为可能。你也可以移动到更多功能强大的,有更多引脚的产品,如果它使得调试您的解决方案的工作更容易。只要小心不要依赖升级系列的功能,当您转移到您的生产解决方案时,这些功能将消失。此处提供了一个选择器指南,其中显示了每个系列中每个器件的功能,容量和引脚数。
4)通过JTAG连接到您自己的PCB,就像它是入门套件一样
当您拿到内置测试PCB时,要使用PCB上的JTAG调试头,您可以将IDT电缆连接到入门套件上的JTAG连接器。然后,在Simplicity Studio中的Kit Manager下(将入门套件连接到计算机之后),选择Debug Mode:Out。
图1:Debug Mode
您可能必须返回Simplicity Studio的主页并选择“Target Part.”。这样做,右键单击检测到的入门套件,然后选择“Select Target Part...”
图2:Select Target Part
在打开的“Target Selectionfor EFM32 ...”窗口中,将目标接口更改为SWD,忽略其生成的任何警告(只要您连接到EFM32部件),然后单击Detect Target按钮。对于出现的任何弹出窗口,按Yes按钮,直到零件标签显示自定义PCB上的实际设备。这将证明从入门套件到自定义PCB上的EFM32部件的JTAG连接被计算机上的Simplicity Studio检测到。
图3:最终成果
完成所有这些步骤后,无论何时在Simplicity Studio IDE中启动项目,用于项目的部分必须与目标选择中找到的部分相匹配,以便开始闪存编程和调试。这允许您调试您的自定义PCB,就像它是一个入门套件。
原型设计成功的关键
1)不要跳过原型构建 - 您将不会在第一个PCB上“直接生产”。
2)添加一个JTAG连接到您的第一个版本,以及您可以找到的最大的,功能齐全的EFM32芯片。
3)为您的项目配置正确的设备,并将入门套件调试模式设置为输出以调试您自己的项目,就像它是入门套件。
在下一节中,我们将进一步介绍软件开发和调试的提示。
看到这里您是否又有项目灵感需实现,点击下面开发软件帮你忙。
- |
- +1 赞 0
- 收藏
- 评论 2
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
【经验】32位MCU LEUART位周期抖动大,该如何解决?
Silicon Labs 32位MCU EFM32,当基于32.768kHz时钟使用LEUART(@9600bps)进行通讯的时候,发现存约1%误码,原因是什么?如何解决?
设计经验 发布时间 : 2019-09-06
【经验】如何使用32位超低功耗MCU外设反射系统功能?
外设反射系统(PRS)是 Silicon Labs EFM32系列MCU专有的外设互联总线,它允许不同的外设无需CPU干预即可直接相互通信。
设计经验 发布时间 : 2019-09-02
【经验】32位MCU的LDMA实现ADC至RAM的数据传输调试方法
Silicon Labs的EFM32PG/ EFM32JG系列32位MCU具有超低功耗、高性能、丰富的外设等特点,其 LDMA相比于series 0的DMA具有更多的传输方式,更适合应用于电池供电的产品。
设计经验 发布时间 : 2018-02-08
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
新产品 发布时间 : 2016-07-11
全球超低功耗MCU的关键:灵活的能源管理单元
Silicon Labs EFM32小壁虎系列MCU,作为当今全球功耗最低功耗的MCU,EFM32成为电池供电等对低功耗要求较高场合的不二之选!
技术探讨 发布时间 : 2019-07-19
如何读取EFM32系列32位MCU的多通道AD扫描采样数据?
EFM32系列单片机ADC的数据保存寄存器有两个,一个是单通道模式的采样数据保存寄存器,一个是扫描模式的采样数据保存寄存器。如果使用多通道扫描采样,那么每个通道采样完成后会产生一个ADC扫描模式中断,用户需要在中断里面读取该通道的扫描采样数据以便存储下一个通道的采样数据。建议使用DMA读取方式,将DMA的触发源设置为ADC的扫描模式事件,这样就可以实现不用进入ADC中断以及MCU的参与即可完成ADC扫描采样数据的保存和读取。
技术问答 发布时间 : 2017-05-05
如何为Silicon Labs 32位低功耗MCU EFM32GG230F512实现基于RTC的软件无滴答日历?
在Silicon Labs 32位低功耗MCU EFM32GG230F512上实现软件方式的无滴答日历,可以通过使用日历标准C库 time.h, 在time.h中实现的timer()函数基于RTC计数值来计 算日历时间。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32GG990芯片使用中,将OPAMP(运算放大器)组合成三运放差分放大器时可选的放大倍数为多少?
当将三个OPAMP组合成差分放大器时,差分放大器的增益是由OPA0和OPA1的组合增益所决定的,由于三运放差分电路的电阻网络对应的桥臂要对应成比例,所以只三种有 效的差分增益可供使用,它们分别为1/3、1和3,此时OPA0 RESSEL和OPA2 RESSEL的组合分别为0和4、1和1、4和0。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU Cortex系列微控制器采用的软件接口标准CMSIS有哪些特性?
嵌入式系统越来越复杂,开发和软件测试的工作量也显著增加,为了减少开发时间并且降低产品中存在的风险,软件重用已经越来越普遍。为了各种软件产品间的配合,ARM同各大 微控制器供应商、工具供应商和软件解决方案提供商一起开发了CMSIS,一个涵盖了大多数Cortex-M处理器和Cortex-M微控制器产品的软件框架。 CMSIS的设计目标和特性包括以下几点: 1、提高软件的可用性。 2、提高软件的兼容性。 3、独立的工具链特性。 4、开放性。 5、易用性。
技术问答 发布时间 : 2017-10-10
【应用】EFM32TG11低功耗32位MCU在超声波水表上的应用
Silicon Labs的32位MCU EFM32TG11,最高主频48MHz,37uA/MHz的全速运行功耗,1.3uA休眠EM2模式功耗,集成低功耗LCD驱动,最大128KB大容量Flash,32PIN到80PIN多种可选封装,将助力于超声波水表超低功耗,多功能,低成本设计。
应用方案 发布时间 : 2019-03-26
32位低功耗MCU EFM32系列内部的LFRCO是32K还是32.768K?
EFM32系列32位低功耗MCU内部的LFRCO为32K。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU的硬件设计时要关注什么?
1、对于Silicon Labs EFM32系列32位低功耗MCU的系统设计者,有几个值得关注的因素,包括如何为芯片提供鲁棒性的电源,如何连接外部调试接口以及如何设计外部时钟源。 2、电源: 尽管EFM32支持宽的电压范围并且消耗很小的平均电流,但是正确的去耦是极其重要的。对于高频暂态信号去耦电容能使得电源和MCU以及地之间的电流回路尽量 短。 3、调试接口及外部复位引脚 (RESETn): 除了可选的SWO(串行线输出), 调试接口包括SWCLK(时钟输入)和SWDIO(数据输入输出)线, 除此之外可 选的SWO(串行线输出)。在无需外部复位的情况下因为复位引脚(RESETn)具有内部上拉电阻所以可以不做连接。强行拉低RESETn引脚将对产生EFM32触发复 位。 4、外部时钟源: EFM32除了内部低频和高频RC振荡器模式外也支持不同的外部时钟源来产生低频以及高频时钟。可能的低频LF和高频HF域外部时钟源是外部振荡器(方 波或者正弦波)或者晶体/陶瓷谐振器。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU Cortex-M3内核嵌套向量终端控制器(NVIC)有哪些特性?
1、支持最多240个中断输入、不可屏蔽中断输入和多个系统异常。除了NMI外,每个中断都可以被单独使能或禁止。 2、中断和多个系统异常具有可编程的优先级。对于Cortex-M3/M4,优先级可以在运行时动态修改(注意,Cortex-M0/M0+不支持优先级的动态修改)。 3、嵌套中断/异常以及中断/异常按照优先级自动处理。 4、向量中断/异常。意味着处理器会自动取出中断/异常向量,无需软件确定产生的是哪个中断/异常。 5、向量表可以重定位在存储器中的多个区域。 6、低中断等待。对于具有零等待状态的存储器系统,中断等待仅为12个周期。 7、中断和多个异常可由软件触发。 8、多个优化用于降低不同异常上下文切换时的中断处理开销。 9、中断/异常屏蔽功能可以将所有的中断和异常(NMI除外)屏蔽掉,或者将中断/异常屏蔽为某个优先级之下。 为了支持这些特性,NVIC使用了多个可编程寄存器。这些寄存器经过了存储器映射,而CMSIS-Core则为大多数常见的中断控制任务提供了所需的寄存器定义和访问函数 (API),这些访问函数非常已于使用。
技术问答 发布时间 : 2017-10-10
EFM32系列低功耗32位MCU GPIO的最大翻转速度为多少?
Siliocn labs低功耗32位MCU EFM32 GPIO的最大翻转速度为系统时钟的1/6。例如,当主频为32MHz时,GPIO最大翻转速度大约为5.3MHz
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32G232F128系列微控制器GPIO的最大翻转速度为多少?
EFM32G232F128系列微控制器GPIO的最大翻转速度为系统时钟的1/6。例如,当主频为32MHz时,GPIO最大翻转速度大约为5.3MHz。
技术问答 发布时间 : 2017-10-10
电子商城
现货市场
登录 | 立即注册
提交评论