双核就是任性——LPC Xpresso54102开发板评测

分享到:

随着科技的进步,双核逐渐被淘汰已是时间上的问题,四核乃至八核心CPU也已不再是什么新奇的事物,不过在微控制器领域,双核却是个十分新颖的东西。很多工程师朋友在开发MCU应用系统的时候,若是系统功能复杂、一颗MCU芯片无法满足要求,往往会采用多颗MCU协同工作,把一些“打杂”的工作交给低端的MCU完成,高端的MCU则可以放开“手脚”,完成系统主要的任务。不过这样一来,系统研发的复杂性,成本以及可靠性都会受到不同程度的影响,多微控制器方案带来系统的功耗问题也不容小视。对此,恩智浦推出了基于ARM Cortex-M4和 ARM Cortex-M0+非对称双核架构的LPC54102系列微控制器,旨在提供一个低功耗高性能的双核解决方案,用于超低功耗传感器侦听到数据整合、传感器融合或其他传感器数据处理。
笔者有幸拿到了搭载LPC54102双核微控制器的LPCXpresso54102开发套件。该套件采用的包装与STM32 Nucleo系列板卡的外包装材料相同,均为透明塑料外壳。这样的包装虽然降低了成本,但在视觉表现上却一点也不逊色于其他包装,透明材料的使用更加凸显出板卡的精致,使得板卡的芯片资源“一丝不挂”地呈现在大家的眼前。
111
打开包装,取出LPCXpresso54102板卡,板卡整体采用墨蓝色阻焊和乳白色丝印,让人眼前一亮,pcb焊盘的沉金工艺,更是显得高端大气。虽然LPCXpresso54102板卡的设计思路与STM32 Nucleo板卡大致相似,都是板载仿真器加核心板的结构,但相比于Nucleo板卡,LPCXpresso54102明显大了很多,元器件的布局也紧凑了不少。
222
LPCXpresso54102板载资源:
1) LPCLINK2下载仿真器
2) 外部SWD接口
3) 功耗监测系统
4) USB虚拟串口,虚拟SPI,虚拟IIC功能
5) 用户3色LED
6) 唤醒按键,IAP下载按键
7) 1.8v、3.3v电源
8) Arduino UNO接口
9) Pmod™接口
10) FTDI UART接口
333
仔细观察会发现,NXP在这块板卡上的设计花费了不少心思,整体的做工,电路的设计,芯片的使用非常考究。
这块板卡一共有两个micro usb接口,使用普通安卓手机充电数据线便可以和计算机相连接。位于上方的接口是专门给LPC54102供电的接口,给除LINK2仿真器外的部件供电,在不需使用板载调试器时可以连接此接口。心细的话,会发现这个micro usb接口右边还有一个P3接口、是一个两线的排针,分别是5V和GND,此举也是结合了工程师的需求,留出外部电源的接口。下方的USB接口则是LPCLINK2仿真器的接口。说道这里,不得不重点了解一下LPCLINK2仿真器,NXP在这款仿真器的设计上,可谓是不惜成本,主控芯片的选择便显现出霸气,LPC4322双核MCU让LINK2充满了“暴力”!
444
工程师可通过烧录固件,根据自身习惯选择LINK2作为J-Link、CMSIS-DAP或者LPCXpresso Redlink使用。其中LPCXpresso Redlink需要与LPCXpresso开发环境配合使用,可满足同时调试双核芯片的需求。此外LINK2与ST-LINK一样,提供了虚拟串口的功能,计算机只要安装好相应的驱动,便可以直接使用虚拟串口来调试了。与ST-LINK不同的时,LINK2额外提供了LPCSIO bridge功能,可以用于目标芯片IIC与SPI的调试。配合板载的功耗测量电路,还可以对目标芯片进行能耗的测量,功能十分强大!
说到功耗测量部分,NXP也为工程师朋友考虑了很多,单单测量的方法、这块板卡就提供了多达3种的选择。
555
除了采用电压表测量P2两端电压,测出8.2欧姆分压电阻两端电压,或者用电流表接入JP4测负载回路的电流两种方法之外,还提供了软件测量的方法:采用高精度电流检测放大器MAX9634加12bit精密模数转换器ADC122S021的方案,配合LINK2来完成。此方案的设计思路也是非常值得工程师朋友的借鉴。
正所谓细节决定成败,在很多不起眼的细节,板子在设计时都为我们考虑到了,例如,在功率测量上,由于板卡本身自带了一颗三色LED,与LPC54102有着物理上的连接,由于这颗LED的存在,可能会对LPC54102功耗的测量产生一定的影响,板子在设计的时候也额外给这颗LED的阳极做了点处理,加上了一个跳线,以便在做功耗测量分析的时候,可以把LED断开。
666
由于LPC54102支持单电源1.62v~3.6v供电,为了保护MCU接口安全,在板子的设计上可以看到大量的双电源转换收发器。
777
888
该板卡在LINK2的设计上花费了不少心血,在细节方面NXP的设计人员也是不敢怠慢。由于LINK2的micro usb接口在使用的时候经常需要插拔,极易受到由用户或空气放电造成的ESD影响,所以在硬件的设计上也采用了静电保护二极管PRTR5V0U2X的方案来缓解这一问题。
不过,相对于硬件电路设计的精思熟虑,在丝印的设计上,这块板子却是不太如人意。
999
首先,在板子的背面,有一个二维码的丝印,但笔者通过扫码,想进一步获取信息的时候发现,二维码是一个网址,但登录后竟然是404界面,真让人摸不着头脑。
101
其次,在引脚的丝印上,并不能准确看出引脚所对应的引脚号,在设计的时候,需要查找相关的硬件手册,才能获取到信息。这不免是个遗憾。
LPCXpresso54102板卡搭载的LPC54102J512BD64是一款基于ARM Cortex-M4F及ARM Cortex-M0+的双核微控制器,专门设计用于解决感测应用中,关于空间和功率的限制的问题,从简单的超低功耗传感器侦听到数据整合、传感器融合或其他传感器数据处理以及外部通信。工程师可根据项目需求,在Cortex-M4F和Cortex-M0+大小核心的之间选择、配合,以实现系统的设计功能。前者可以更快速地完成数学密集型算法,如传感器融合,同时省电,而后者可以实现高能效,适用于传感器数据收集、整合和外部通信。
102
LPC54102J512BD64特性:
1) 双核:ARM Cortex-M4F和ARM Cortex-M0+ 最大频率100 MHz
2) 单电源1.62 V至3.6 V供电
3) 二个SPI控制器
4) 三个I²C总线接口
5) 四个USART串口
6) 五个32位通用定时器/计数器
7) 一个16/32位多用途状态可配置定时器SCTimer/PWM
8) 一个24位、四通道多速率定时器MRT
9) 一个重复中断定时器RIT
10) 32位实时时钟RTC
11) 12bit12通道ADC
12) 唯一的设备ID
13) 512 Kb Flash以及104 kB SRAM
 
上电体验
接下来给板子上电,连接计算机与板子LINK2的micro usb接口,板子上电便运行出厂的demo,没错,只能是闪灯例程了,3色LED红、绿色交替闪烁。不得不吐槽,绿色LED简直亮瞎眼啊。就连手机拍个照片都因为LED高亮度而无法准确对焦,只能怪我咯!
103
软件驱动安装:
接下来给LINK2仿真器安装驱动。在NXP官网可以下载到lpc_driver_setup.exe,整个安装的过程没有什么特别需要注意的地方,双击便完成了安装。接下来还需安装LPCScrypt_installer_1.6.0_652.exe,安装的过程同样简单,一直点击下一步即可,若遇到安装驱动,则选择安装。LPCScrypt是个脚本软件,可以为LPCLINK2刷新固件。我们可以看到安装目录里的Drive文件夹,里面包含了LINK2的虚拟串口(Vcom)驱动和LPCSIO驱动。若是第一次安装驱动不成功,则需要在设备管理器中手动安装驱动。
打开设备管理器,在其他设备中可以看到Vcom的设备,带有黄色感叹号表示没有正确安装。
104
点击右键,更新驱动程序,在随后弹出来的窗口中,选择“浏览计算机以查找驱动程序”。
105
随后选择LPCScrypt安装目录下Drive文件夹,并勾选“包括子文件夹”前的方框。
106
然后点击下一步,等待驱动正确安装即可。
接着,在设备管理器,人体学输入设备列表中,可以找到“USB输入设备”,同样的步骤更新驱动软件。等待驱动全部正确安装完成之后,不出意外,可以在设备管理器中找到以下三个设备。
 
107
 
 
LPCXpresso安装:
为了进一步体验板卡自带的功耗监测,接下来需要安装LPCXpresso软件,该软件最新的版本是8.0,可以在NXP官网找到LPCXpresso_8.0.0_526.exe。软件的安装过程只需一直点击“下一步”,若是弹出安装驱动的请求,点击“安装”即可。安装完成后,还需要注册许可证,注册免费版本后软件将会从8k的代码限制提升到256k,对于一般的设计应该是绰绰有余了。
108
根据提示,下一步开始为LPCXpresso注册,点击菜单栏“help->Activate->Create serial number and register”
109
在随后的窗口中,我们勾选“Copy serial number to clipboard”,并点击“ok”,把序列号复制到粘贴板。随后,软件内部集成的浏览器会自动打开NXP的注册页面,进行软件的注册。若是觉得软件内部集成的浏览器使用起来不方便,我们也可以通过勾选“open in external browser”,在计算机默认的浏览器中打开。110
在注册软件之前,还需要输入帐号密码登录,或者注册新账号登录。
21
登录之后,可以发现,序列号已经自动为我们填写好了,接下来只需点击“register LPCXpresso”即可。
在随后出现的页面中,复制key。
23
 
 
在LPCXpresso软件的菜单栏中选择“help->Activate-> Activate(Free Edition)”,并在弹出的Activate code中粘贴Key。
 
 
24
26
 
 
 
 
可以看到,注册完成之后,debug的限制已经提升到256k。
 
27
 
到此,软件的安装和注册全部完成。接下来,我们来体验一下LPCXpresso软件配合54102板卡功耗监测的功能。
 
功耗监测体验
首先把LPCLINK2设置为DFU模式,也就是把LINK2的micro usb接口上方的JP5跳线短接。并连接计算机,可以看到D1亮。
28
 
接下来,打开LPCXpresso,在快速启动栏找到“Power Measurement Tool”并最大化。
29
 
然后点击“Boot Debug Probe”按钮,下载Redlink固件,值得注意的是,该固件是运行在SRAM中,掉电消失,所以每次使用的时候都要重新烧写。
30
 
在随后弹出的选择中,选择CMSIS-DAP下载即可。
31
 
然后在LPCXpresso软件右边Setting中点击“start”即可开启功耗监测。
33
 
在上图可以快速得出,此时LPC54102的功耗为13.61ma。
通过硬件电路的分析、NXP在这块板卡上还预留了电流表的接入点。
 
 
去掉js6的0欧姆电阻,把电流表接入JP4两端,测出电流为13.64ma,与Power Measurement Tool工具测出的13.61ma相差无几。
34
 
NXP提供此套功耗监测方案,使用起来简单便捷,不用搬弄其他仪器,只需一台计算机便可快速得出功耗,并提供相应的图表数据,大大降低了设计人员的工作量。
 
双核体验
双核无非是这块板卡最大的亮点,但双核相对与单核芯片,也存在这几个需要解决的问题。第一个问题便是两个内核之间是怎么联系的。对于两个核心之间的通讯,LPC54102通过Core-to-core中断,互斥寄存器,以及一段共享的RAM来实现核对核的通讯。接下来一个问题就是,双核的程序编写问题,怎么让两个内核同时工作,完成各自的任务?在这个问题上,NXP也给出了相关的文档,总结来说,两个核心的工程需要分开分别编译,分别下载到flash的不同地址。LPC54102上电启动后首先引导启动M4内核,然后由M4内核复位引导启动M0内核。
35
 
接下来配合LPCOPEN库来体验体验双核的魅力。在官网下载LPCOpen v3.01,并解压。解压后的lpc5410x文件夹便是针对LPCXpresso54102的固件库,里面包括了连个核心的外设库,LPCXpresso板库,以及LPCXpresso54102例程。
第一步打开Keil软件,打开pack,下载安装LPC54xxx的支持包。
然后在LPC54102\progame\lpc5410x\prj_lpcxpresso_54102\keil找到以下四个文件夹,分别编译生成lib_chip_5410x.lib、lib_chip_5410x_m0.lib、lib_board_lpcxpresso_lpc54102.lib以及lib_board_lpcxpresso_54102_m0.lib四个库文件,之后的工程都是基于这四个库文件。若是没有编译生成这四个文件,在其他例程中编译便会报错。
36
打开多核心例程中的multicore_m0_blinky文件夹,首先编译M0例程,然后设置debug页面。在编译器选择“CMSIS-DAP Debugger”,并点击Setting进入设置页面。
37
 
在设置页面中,填写AP=0x01,这样就可以对M0+内核进行控制下载。需要注意的是,需要取消选中Reset after Connect。
 
38
然后选择Flash Download,为LPC54102选择Flash烧写算法。
39
 
最后,在target选项卡设置程序烧写的位置,然后把M0程序烧写进FLASH。
40
 
烧写完成后,板卡并没有什么现象,因为M0内核并没有启动。
接下来打开multicore_m4_blinky文件夹,对M4的程序进行编译,工程的设置下载与M0工程大致一样,其中不同的是,在编译器选项卡中,设置ap=0x00,才可以识别M4内核,然后选中Reset after Connect。
41
 
在target选项卡中,设置M4程序烧写的Flash地址。
42
烧写完成后,复位启动,可以看到板子led红绿交替闪烁,证明双核已经启动。
下面简单分析该例程的双核启动方式,M4内核的启动与平时单核的启动方式一样,重点是M0内核的启动。在M4的工程文件main函数之中,可以找到以下的程序,这也证实了M0内核的启动是由M4内核控制完成的。
 
43
 
 
小结
LPCXpresso54102板卡虽然板载资源并不是非常丰富,只有一颗三色LED灯以及两个用户按键,但该板卡的硬件设计极具特色,值得推敲学习,特别是板载的电流检测电路,提供了一个典型的参考方案。板载LINK2仿真器配合LPC54102双核MCU,可满足用户搭建调试原型机的需求,唯一不足的是,双核的调试必须在NXP自家的LPCXpresso中才能完成,这势必给习惯使用keil或者IAR等其他编译环境的用户造成一定的不便。
继续阅读
NXP i.MX8核心模块产品助力工业物联网设备全面升级

全球嵌入式计算厂商研华科技荣幸地宣布推出基于NXP ARM® i.MX 8X SoC的SMARC 2.1核心模块ROM-5620,完善了研华基于NXP i.MX8全系列处理器的核心模块产品线。它们分别是基于NXP i.MX 8 Quad Max 处理器的ROM-7720 Qseven 2.1模块,提供超高性能,适合AI、机器视觉以及大数据处理和分析等应用

NXP QN9090和QN9030蓝牙5低功耗SoC在贸泽开售

专注于引入新品并提供海量库存的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开售NXP® Semiconductors的QN9090和QN9030片上系统 (SoC)。这两款智能互联解决方案具有强大的CPU和先进的低功耗模式,能够支持蓝牙5低功耗连接和可选的NFC NTAG功能。

贸泽开售NXP的i.MX RT106L和i.MX RT106F跨界处理器

专注于引入新品的全球电子元器件授权分销商贸泽电子 (Mouser Electronics) 即日起开售NXP® Semiconductors的i.MX RT106L和i.MX RT106F跨界处理器。这是两款专门针对特定解决方案设计的EdgeReady™器件,搭载Arm® Cortex®-M7核心的高级实现,运行频率可达600MHz,分别适用于在各种物联网 (IoT) 和智能工业设计中执行高级本地语音命令操作和实时人脸识别响应。

解读:为何说NXP在汽车行业前景广阔

当恩智浦半导体(NXPI)公布季度业绩时,他们让投资者对汽车和芯片行业有了充分的了解。鉴于疫情对供应链和需求的影响,投资者将听取其对汽车行业的负面影响的看法。因此,NXP表示,中国对高科技汽车的需求开始反弹时,它无意中预测到了蔚来汽车(Nio)的反弹。

现在起,更多恩智浦MCU将无缝访问微软Azure RTOS!

恩智浦半导体宣布深化与微软的合作关系,将行业领先的综合性实时操作系统(RTOS) ——Microsoft Azure RTOS——运用于EdgeVerse产品,组合成更广泛的处理解决方案。