1 + 1 > 2,强悍的双核 MCU LPC541xx 及其典型应用 - 新时代智能电子锁

在开发 MCU 应用系统时,如果单颗 MCU 无法满足系统的要求,一个很普遍的做法就是使用两颗或更多的 MCU,把一部分“杂项工作”分配给另一个有“助理”性质的低端 MCU 来完成。但是,采用两颗 MCU,缺点也很明显,尤其是在芯片与 PCB 成本、系统可靠性及功耗方面都有先天的不足。此外,若采用了不同架构的 MCU,还要面临需要不同的开发工具与开发人员的挑战。如果换一种思路,让 MCU 内部包含两个内核,其中一个用于主控,另一个用于协控,并且它们主控与协控在架构上能够向下兼容、高效通信,则在很多场合下都可以既保持多机系统的强大,又能避免多机系统的不足。

事实上,这即是“非对称多处理器(AMP)”架构的特点。AMP 是与“对称多处理器(SMP)”相对的架构,后者各处理器有一致的编程模型,并且在分配工作时主要以均衡为原则。而 AMP 的优点在于精细的任务分工,灵活地适应不同情景,物尽其用,以最佳地平衡成本、性能与功耗。此外,AMP的编程难度也更低。因此,在MCU应用领域,AMP 较 SMP 更为适合。

与独立的双 MCU 相比,AMP 架构有很多优点。其中相当关键的就是,再添加一个内核的代价远比添加一个独立的 MCU 要低,尤其是当两个内核架构相似时,甚至仅相当于在现有硅片上再添加一两个 UART。另一方面,两个内核可以有相同的主频,并且可以通过总线矩阵平等地访问片上资源。而在分立的双 MCU 方案中,协控MCU 的主频常常远低于主控,并且双方使用低速的串行链路通信。

接下来,我们一起认识下 NXP 推出的双核 MCU 代表 -- LPC541XX 系列。

  大大购相关商品   DVK1913_NXP LPC54101 EVM >> 查询存货及售价

LPC541XX 系列框图:

         

 

LPC541xx MCU 基于高效的 Arm® Cortex-M4 内核,每个内核带有可选的 Cortex®-M0+ 协处理器。单 Cortex-M4 选项适用于无软件分区的单核处理架构。在始终开启的应用中,这些MCU能够以节电模式运行,侦听传入数据,并在侦听到传入数据时,唤醒任一内核来收集或处理信息。当处于活跃模式时,开发者可通过情况灵活选择使用节能的 Cortex-M0+ 内核,或者使用可通过快速完成处理器密集型算法(如传感器融合)来降低能耗的 Cortex-M4 内核,来进行数据的收集、汇总和管理系统任务,以提高电源效率和吞吐量。

LPC54102 特性:

  • 双处理器内核:ARM Cortex-M4 和 ARM Cortex-M0+。M0+ 内核的工作频率与 M4 内核相同。两个内核均可达到最高 100 MHz 的运行频率。
  • 高达 512KB 片内 FLASH 可编程存储器,带 FLASH 加速器和 256 字节页面擦除和写入功能。总共包含 104KB 的 SRAM,高达 96KB 的连续主 SRAM,一个额外的 8KB SRAM。
  • ROM API 支持:
  • Flash 在应用编程(ISP) 和在系统编程(IAP)。
  • 功率控制 API。
  • 四个 USART 接口,支持同步模式和 32 KHz 模式,用于从深度睡眠和掉电模式中唤醒。
  • 两个 SPI 接口,每个接口有四个从机选择和灵活的数据配置。
  • 三个 I2C 总线接口,支持快速模式和超快速模式。
  • 数字外设:
  • DMA 控制器,具有 22 个通道和 20 个可编程触发器,能够访问所有存储器和支持 DMA 的外设。
  • 高达 50 个通用输入/输出(GPIO)引脚。大部分 GPIO 具有可配置的上拉/下拉电阻,可编程开漏模式,以及输入逆变器。
  • GPIO 寄存器位于AHB 上,以支持快速存取。DMA 支持 GPIO 端口。
  • 两组GPIO 中断(GINT) 支持基于输入状态逻辑(AND/OR) 组合的中断。
  • CRC 引擎。
  • 模拟外设:12 位 12 通道模数转换器(ADC),支持 0 MSPS。该 ADC 支持两个独立的转换序列。
  • 时钟生成:
  • 12 MHz 内置 RC 振荡器。
  • 外部时钟输入的时钟频率高达 25 MHz。
  • 内部低功耗看门狗振荡器(WDOSC),标称频率为 500 kHz。
  • 32 KHz 低功耗 RTC 振荡器。
  • 系统 PLL 允许 CPU以最大CPU速率运行。可从内部 RC 振荡器、外部时钟输入 CLKIN 或 RTC 振荡器运行。
  • 用于监控内部时钟的时钟输出功能。
  • 用于测量片上和片下时钟信号频率的频率测量单元。
  • 节能模式和唤醒:
  • 用于降低功耗的集成 PMU (电源管理单元)。
  • 降低功耗的模式:睡眠、深度睡眠、掉电和深度掉电。
  • 通过 USART、SPI 或 I2C 外设上的活动从深度睡眠模式和掉电模式唤醒。
  • 通过 RTC 报警从睡眠、深度睡眠、掉电和深度掉电模式唤醒。
  • 62 V 至 3.6 V 单电源。
  • 上电复位(POR)。
  • 带独立阈值的掉电检测(BOD),用于中断和强制复位。
  • 支持 JTAG 边界扫描。
  • 可用作芯片识别的唯一序列号(128 位)。
  • 工作温度范围为 −40 °C 至 105 °C。
  • 采用 288 mm x 3.288 mm WLCSP49 封装和 LQFP64 封装。

 

现在我们从世平集团设计的 LPC5410 EVM 来开始熟悉这款高性能的双核 MCU 吧。


           

LPC5410X EVM 主控使用资源丰富的 LPC54102J256BD64,同时搭载了一颗 LPC11U35,工程师可烧录固件通过 USB 接口下载代码 Debug。开发环境除了业界常用的 Keil & IAR,还有 NXP 官方提供的 MCUXpresso 可以免费使用,针对这三款 IDE,NXP 分别提供了相应的 SDK 使用。

以 Keil 为例来看看有哪些例程:


        

点开例程,我们可以看到 SDK 提供了很多 API 供我们使用。低级功能性 API 提供了通用的外围功能,从而将硬件外围设备寄存器访问抽象为一组无状态的基本功能操作。这些 API 主要集中在基本外围设备操作的控制,配置和功能上。

 

I2C Master Functional APIs:

                   

通常,用户需要自己编写中断服务程序,使用 Functional API,用户可以实现更灵活,更复杂的功能。例如:为了从某些 I2C 从设备读取可变长度数据,I2C 设备通常会在地址字节之后提供一个长度字节,以通知主机应读取多少字节。 然后 I2C 主机可以动态调整读取长度,而无需发出 STOP 和 RESTART 条件。可以编写由几个功能性API 组成的自定义函数:

  • I2C_MasterInit(),
  • I2C_MasterSetBaudRate(),
  • I2C_MasterStart(),
  • I2C_GetStatusFlags(),
  • I2C_MasterReadBlocking()
  • I2C_MasterStop().

Use I2C master functional API to do blocking transfer:


         

 
         

总的来说,通过 LPC5410X EVM 我们可以更好的熟悉这款双核 MCU 的特性。

 

那么这么强大的 MCU 我们已应用于哪些场景呢:

  • 便携式健身和活动追踪器
  • 健康监控
  • 智能感应和运动跟踪
  • 家庭和楼宇自动化
  • 工业/商业传感器节点
  • 手机和平板电脑
  • 车队管理和资产追踪
  • 游戏和 USB 配件

 

最后就来看看应用实例吧--基于 NXP LPC54102 指纹门锁方案。


        

方案框图:

                     

方案特点:

  • 基于 NXP LPC54101 平台的 DEMO 板;
  • 支持 3S 内快速指纹录入;
  • 支持毫秒级快速比对并作出判别;
  • 支持兼容 arduino 接口;
  • 支持蓝牙数据上传;

技术文档

类型标题档案
硬件Datasheet

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论