ProtoBricks助乐高迈入数字时代
作者:Joe Broms,ProtoBricks创始人及CEO
ProtoBricks是一款具有类似乐高外形的电路构建玩具,现已在市场上发布。对于我来说,这是6年基于爱好的努力的结果,作为发明家,我努力将想法变成爱好,并最终令其成为一个真正的产品。今天,我想关注产品的核心,也就是"hub",以及Silicon Labs微控制器如何成为ProtoBricks电子产品的核心。
功能要求ProtoBricks Hub是有12x6个螺柱的LEGO™大小的块,顶部有电触点和LED格栅。我们把一个两层PCB板放在块里面。电路板的底部有四个弹簧负载引脚:电源,Gnd,UART TX,UART RX,以及用于编程的裸板触点。顶部是充满魔力的地方; 边缘触点(螺柱)是电路的IO引脚。还有两行RGB LED(每个IO引脚一个)。最后,中心的那排需要做大部分的工作:测量电阻/电压,发送/接收UART消息,并在这些任务之间切换。这已经经历了许多修改,以满足最佳的外形,功能和成本。现在我们只需要一个可以完成任务的微控制器。
需要一款强大功能的微控器要进一步满足要求,我需要选择至少有两个UART的微控制器。其中一个需要处理TX和RX在不同时间翻转。我需要至少35个GPIO引脚来处理裸露的IO,并为板上的其他芯片提供服务。我还需要在不同强度中点亮24个RGB LED。最后,我需要一个精确快速的ADC,用于通过精密电阻和计算电位器位置来检测块。
我还需要一种现场编程板的方式,并且可以在无需完全分开的情况下轻松地调试。
此外,所有的工作都需要使许多微控制器外设以100us的粒度启用,禁用,启动和停止。在1KHz的速率下,我设置了一个很困难的最后期限来维修我的主电路仿真环路。最耗时的开发任务是组织和将任务分解成可以被正确优先排列成小而有状态的块。幸运的是,对于我来说,我已经从事C ++开发将近20年了,并且一直喜欢编写较低级别的代码并优化紧凑的循环。
最后,我选择了Silicon Labs的EFM32G232,其具有128KB闪存,16KB RAM。 IO引脚,USART,良好的ADC和合理的价格的正确平衡。
Hub块内部
以下是我在开发过程中总结的亮点,特点和技巧:
世界首款块状兼容调试连接器我们希望以非常紧凑的2x2螺柱的尺寸提供电源,UART和微控制器编程引脚,因此我用3D打印机构建了该板。现在我可以连接到我的板子,而无需每次都拆开我的块。 pogo引脚连接到SWCLK,SWDIO,SWO和RESET。
调试块:中间的四个pogo引脚连接到微控器
去年的原型设计,使用Gecko开发板调试hub微控器
其中一个UART需要从RX翻转到TX,具体取决于块从左到右的位置。为此,我直接连接到相同的UART外设,但使用两个不同的引脚排列位置。我可以使用备用位置标志翻转UART,无需任何外部硬件或Busing。每一分钱对于消费电子产品来说都是很重要的。块到块的通信使用115 KB的无外部晶振的UART。我的测试中试着将其提高到1Mbps,而且大部分情况下运作良好,但我认为这大多是因为我电路板的设计。
外设切换具有许多功能的中心排(电压读取器,电阻读取器,UART通信器)最终通过两个低欧姆模拟多路复用器(IDTQS3VH251)进行服务,然后将其馈入微控制器的UART和ADC引脚。然后,所有这些都在微控制器上进行时间复用 - 打开/关闭ADC,UART,内部分压器,寻址MUX。 EFM32能良好的完成任务:其在启用/禁用外设方面非常快,永远不会陷入一些奇怪的状态或时序问题。这节省了大量的时间,电路板空间和成本,相比之下,更多的专注于硬件!我唯一的问题是做我自己需要的。我需要在固件中编写一个相当复杂的调度程序来最佳地为所有的块提供服务。
尽管如此,我仍然需要快速服务LED。该任务通过使用配置为SPI的最后一个USART块完成。我将DMA上的数据尽可能快地(一次以1 Mbps的速率突发96位)连接到一连串的恒流LED驱动器。同时,我需要打开和关闭PMOS晶体管,为3组LED供电,全部时分复用。一切都需要很快的刷新,因为我想通过PWM控制每个LED的强度。
最后,我试图为3个组(3 * 32 * 200)= 19200 Hz刷新强度为200 Hz的32级,一些自定义GPIO位在中断处理程序中全部翻转!这推动了这种设计可能的局限性。我想如果我添加了一个额外的移位寄存器或卸载服务,整个LED计算/移位到一个微型微控制器(EFM8 Busy Bee?),我可以得到我真正想要的8位强度水平和快于200赫兹的复用。
对于LED闪烁的灯光爱好者,200Hz对于LED复用来说太慢了。你一开始就没有注意到,但是在这个速度上有一些频闪效应问题:特别是在相机上。上个月我们进
- Silicon Labs展示高级计量无线解决方案(02-24)
- 物联网的最大挑战,在于“最后一寸”元件端(09-07)
- 主流ZigBee芯片大盘点(3):Silicon labs EM35x(07-25)
- 物联网创客指南:MCU设计的最佳实践和除错技巧(02-13)
- 单片机选型有诀窍:根据数值选择低功耗MCU(04-24)
- 简化嵌入式设计的无线连接解决方案(05-09)