当今的嵌入式开发人员寻求硬件和软件解决方案,使他们能够快速、轻松地响应客户和市场需求、一刻的设计变更和竞争挑战。
当今的嵌入式开发人员寻求硬件和软件解决方案,使他们能够快速、轻松地响应客户和市场需求、一刻的设计变更和竞争挑战。在典型嵌入式系统的所有组件中,
微控制器 (MCU) 应该为开发人员提供的多功能性和可配置性,使他们能够通过固件更新和 I/O 更改轻松高效地实现新的系统功能。
另一个设计挑战涉及 MCU 封装本身。为了降低成本,一些 MCU 供应商可能会提供在引脚之间共享功能的器件版本,从而将 IC 压缩到更小、更便宜的封装中。寄存器配置提供了将这些 I/O 引脚分配给不同外设的选择的能力,但自由度通常是有限的;配置控制硬件的每个引脚可能仅支持一种或两种功能,从而限制了选项的数量,并且如果 MCU 用于供应商未预料到的应用中,则会产生潜在的引脚冲突。MCU应用的广泛性意味着这种场景经常发生。
凭借其在 8 位混合信号 MCU 方面的经验和知识,Silicon Labs 在其基于 ARM? Cortex?-M3 内核的新型 Precision32? MCU 的设计中实施了灵活的 I/O 系统。该设计的关键是高度可配置的双交叉架构:一种可编程
开关矩阵,使开发人员能够将输入路由到多个输出引脚中的任何一个。
Precision32 MCU 架构定义了两个交叉开关(IC 的两侧各一个),可将任何内部 I/O 功能链接到各种引脚,如图 1 所示。在此示例中,使用 TQFP-80 封装,Crossbar 1 连接到引脚 9 至 40,仅不包括 28 和 29,即电源和接地引脚。Crossbar 1支持14种不同的内部功能,包括各种串口、定时器、比较器;这些功能中的任何一个都可以连接到交叉开关所服务的任何外部引脚。其中一些引脚还可以映射到 A/D 转换器输入或 5V 耐受输出。
Precision32 MCU 双交叉架构
交叉开关架构为设计者提供了许多好处。该架构可以安排芯片的引脚排列,从而简化电路板设计,将一组 I/O 引脚尽可能靠近需要连接的 IC 或连接器。这种方法通常可以通过允许使用具有较少布线层的 PCB 来节省成本,因为它避免了在 MCU 下方布线或通过 PCB 拥挤区域走许多电路走线的需要。它可以提高信号完整性,因为敏感走线可以保持尽可能短或靠近地线布线。此外,只需对控制交叉开关的寄存器进行重新编程即可轻松更改引脚排列,以适应一刻的电路板更改。
这种对 I/O 配置的细粒度控制使设计人员能够更轻松地使用更具成本效益的封装,选择哪些功能连接到引脚以及哪些功能保持未连接。
为了能够轻松地从其他 MCU 迁移,Silicon Labs 选择 ARM Cortex-M3 作为 Precision32 系列的处理器内核。由于该处理器内核在嵌入式市场被众多 MCU 供应商和软件工具供应商广泛采用,因此已迅速成为 32 位 MCU 架构事实上的标准,为嵌入式开发人员提供了高度的选择。在C、C++编译器、实时操作系统等常规开发工具方面得到了软件公司的广泛支持。ARM 内核的标准化现在使将代码从一个 32 位 MCU 移植到另一个 32 位 MCU 变得比以往任何时候都更加容易。因此,MCU 选择的决定因素正在从 CPU 架构转向外设集以及 MCU 供应商解决系统设计问题的创新方式。
灵活的交叉开关比其他 MCU 供应商使用的许多临时 I/O 重新映射方案更容易理解。为了进一步提高易用性,Silicon Labs 提供了一款软件工具,可简化设备配置任务。Silicon Labs 的 AppBuilder 工具提供了一个图形界面,允许设计人员将功能拖放到引脚上。配置完成后,该工具会生成将此配置加载到 MCU 所需的启动代码。该工具可与包括 Keil 和 IAR 在内的商业 IDE 以及流行的 Eclipse 开发环境配合使用,Silicon Labs 已采用并修改了该环境以支持 Precision32 产品。
AppBuilder 工具(见图 2)更进一步:使开发人员能够以图形方式快速选择外设组合、选择外设属性、设置时钟模式和自定义引脚输出,而无需阅读数据表。IDE 支持在 MCU 支持方面也更进一步,为 Precision32 MCU 系列的所有成员提供直接支持。Precision32 仪表板在一处提供的文档、代码示例和软件,无需在数据表和应用说明中寻找寄存器位置和驱动程序源代码。
Precision32 AppBuilder 工具
通过包含 Cortex 微控制器软件接口标准 (CMSIS) 兼容代码,增强了对外设的支持。CMSIS 为常见外设提供了一个接口,可实现外设驱动程序的重用以及从其他基于 ARM 的 MCU 的简单移植。除此之外,Silicon Labs 还实现了中间件,旨在简化多任务处理和数据传输代码的编写。这为需要 USB 支持的复杂系统提供了重要支持。USB 有多种配置选项和使用模型。Silicon Labs 利用其在 USB 方面的长期经验提供了一套丰富的中间件功能,可简化实施工作。鉴于现在需要 USB 支持的应用程序数量(从运动手表到数据记录器),工程师需要尽快掌握 USB 的速度,这个库使之成为可能。例如,要创建 USB 到 UART 传输,开发人员只需指定 USB 传输类型、数据大小以及同步或异步 UART 操作等属性。
该库提供了许多 USB 类驱动程序,包括音频、人机界面设备、大容量存储和设备固件更新 (DFU) 库,以方便开发。
与提供支持当今系统成本、时间和空间受限需求的 32 位 MCU 系列的策略相同,USB 硬件本身的设计旨在以少数量的外部支持组件实现效用。许多片上 USB 控制器的功能并不完整,要求很高的组件,例如外部时钟发生器。Precision32 MCU 系列器件上的 USB 控制器拥有自己的集成精密
振荡器,采用新颖的时钟恢复技术,无需外部晶体即可实现 0.25% 的精度。MCU 的其余部分可以使用该振荡器或单独的振荡器(在低功耗模式下允许更灵活的时钟机制),该振荡器要么由低成本 32 kHz 晶体供电,要么可以在开环模式下运行。
同样,Precision32 MCU 的内部稳压器无需外部稳压器。MCU 可以直接使用 5V 电源供电,从而可以直接从 USB 或单独的未稳压电源供电。该稳压器还可以以可编程输出电压驱动输出轨,使 MCU 能够为其他 IC 供电,同时仍然无需外部稳压器。或者,该输出可以充当恒流源来驱动 LED
显示屏上的背光。
其他模拟和数字外设的实施也采取了类似的措施。例如,A/D 转换器提供 12 位分辨率。此外,所有 Precision32 模拟外设均经过温度和电压测试和指定。许多替代 32 位 MCU 供应商不会在生产中测试其模拟外设,这可能会导致现场缺陷。如果模拟电路不工作或降级到低于 2.4V,则 MCU 对于 AA/AAA 碱性
电池应用来说变得不切实际。Precision32 模拟外设非常可靠,通常可用于替代独立的模拟组件。
可配置性扩展到模拟外设,从而可以使用相同的设备优化许多不同应用的性能。MCU 具有两个具有多种模式(包括交错模式)的 ADC,可实现高达 2 MSPS。为了减少处理器内核的 I/O 开销,ADC 支持可编程自动扫描系统,该系统循环遍历 ADC 通道并读取每个通道上的输入数据。突发模式支持可以自动采样并平均多 64 个样本。
模拟比较器具有四种不同的模式,包括低功耗模式 (400 nA) 和高性能模式(150 ns 响应时间)以及内部 6 位 DAC,可提供 64 级比较。两个 10 位 DAC 具有循环缓冲器以启用 12 位模式。
此外,超低功耗已成为各种嵌入式应用的主要卖点。随着当今对能源合规性、减少能源浪费和“走向绿色”的重视,设计人员密切关注他们的功率预算。许多架构提供低功耗睡眠模式,可在处理器睡眠时节省能源。然而,Precision32 系列的设计不仅解决了睡眠模式下的功耗问题,还解决了活动模式下的功耗问题。
如图 3 所示,Precision32 MCU 架构降低了功耗,提供了多种睡眠模式,再加上针对低活动功耗而优化的电路拓扑,为此类 MCU 提供了高度的能源效率。Precision32 MCU 利用 Silicon Labs 的低功耗设计技术,在 MCU 设计的每个模块中实现了功耗降低,从而使有功电流降低高达 33%(80 MHz 时为 20 mA 或0.25 mA/MHz),并且比竞争的 32 位解决方案低 100 倍的睡眠电流(启用 RTC 时为 0.35 μA)。
Precision32 睡眠和活动模式下的超低功耗
面对嵌入式设计日益增加的成本和性能压力,OEM 和系统开发商正在关注广泛支持的处理器架构。嵌入式市场中围绕 ARM 处理器技术的标准化正在推动 MCU 设计的新一轮创新,重点关注可配置性、易用性和降低系统成本。Precision32 MCU 系列标志着这一发展的重要一步。