恩智浦“FRDM-MCXN947”评测活动由安富利和与非网协同举办。本篇内容由与非网用户发布,已授权转载许可。原文可在与非网(eefocus)工程师社区查看。
NXP FRDM-MCXN947开发板是一个基于MCXN947器件的低成本设计的评估板。MCXN947器件将两个Arm Cortex-M33微控制器和神经处理单元(NPU)集成在一个封装中。恩智浦对MCXN947器件提供了硬件评估板、软件开发IDE、示例程序和驱动的支持。
FRDM-MCXN947开发板由一个MCXN947器件组成,配备了64Mbit的外部串行闪存。该板卡还具有P3T1755DP I3C温度传感器、TJA1057GTK/3Z CAN PHY、以太网PHY、SDHC电路(卡槽未焊)、RGB LED、触摸板、高速USB电路、按钮和板载MCU-Link调试电路。该板卡与Arduino扩展板、Pmod板卡以及mikroBUS兼容。此板卡也支持摄像头模块和NXP的低成本LCD模块PAR-LCD-S035。
板载的MCU-Link调试器是基于LPC55S69微处理器,在使用MCU-Link功能前请确保给它刷入了合适的固件。
FRDM-MCXN947的方框图如下:
NXP为自家的处理器开发了很多工具,其中适用于MCX家族的有MCUXpresso IDE以及MCUXpresso Config Tools,另外不同的器件有不同的SDK,NXP在官网也提供给了视频教程,手把手教用户入门,非常友好。
例如FRDM-MCXN947新手入门向导,教用户熟悉开发板、安装软件、编译示例工程、调试工程,非常完善。
Getting Started with FRDM-MCXN947 | NXP Semiconductors(复制链接前往:https://www.nxp.com/document/guide/getting-started-with-frdm-mcxn947:GS-FRDM-MCXNXX)
NXP提供了很多的开发环境:
MCUXpresso IDE
MCUXpresso IDE for VS Code
Keil MDK
IAR
这几个我都试过,总结如下:
1. MCUXpresso IDE官方开发,基于Eclipse,且把MCUXpresso_Config_Tools集成在里面,另外还集成了RTOS调试组件、SWO追踪、功耗分析工具,这些组件都是其他IDE没有的或者安装插件也比较麻烦的;
2.MCUXpresso IDE for VS Code,是一个VS Code的插件,但是也需要另外安装MCUXpresso IDE,配置GCC编译环境,总的来说安装体积很大;仅限于基本的调试功能,不具备上面那么多的组件;
3.Keil MDK需要安装PACK包,另外安装MCUXpresso_Config_Tools,没有那么多的调试组件;且新增软件组件不方便;
4.IAR同Keil MDK;
最后,非常推荐MCUXpresso IDE,安装简单、无需配置额外创建、调试功能丰富、增删软件组件非常方便。
从MCUXpresso IDE for NXP MCUs | Linux, Windows and MacOS | NXP Semiconductors | NXP Semiconductors(复制链接前往:https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE)下载适合自己电脑的版本,这里以WIN10系统为例。
下载MCUXpressoIDE_11.10.0_3148.exe并双击安装,一路Next即可。
注意,为了开发FRDM-MCXN947程序,还需要下载FRDM-MCXN947 SDK。
进入MCUXpresso SDK Builder网页,登录NXP账号,如下图所示:
1.选择SDK使用的操作系统;
2.选择工具链,根据需要选择工具链,如果不确定则选择All Toolchains;
3.选择软件组件,推荐全选;
4.最后点击BUILD SDK确认;
在MCUXpresso IDE菜单栏选择窗口-->显示视图-->Installed SDKs
如下图,拖到下载的SDK到此窗口空白或者鼠标右键点击空白区域,选择第一项,浏览文件夹找到刚下载的SDK也可。
第一次运行MCUXpresso IDE,可以从已安装的SDK导入一个示例工程。可以从(1)处选择Import SDK examples(s)...也可以从(2)处导入示例工程。
在SDK导入向导界面,先选择开发板frdmmcxn947,如下图所示:
选择工程界面,可以在(1)处输入uart快速找到UART相关的示例工程,这里选择lpuart_polling示例工程,最后在(3)点击完成即可。
如下图所示,在(1)处点击Build开始编译。在(2)处显示编译结果,成功编译生成frdmmcnx947_lpuart_polling.axf文件。
使用USB Type-C线一头接开发板上的MCU-Link,另一头接电脑。
点击(1)处的Debug,MCUXpresso IDE开始识别调试器。如下图,由于我的电脑同时接了两个调试器,另外一个是J-Link(忽略),这里选择MCU-LINK即可,然后点击(3)处确定。
MCUXpresso IDE弹窗提醒选择SWD器件。由于MCXN947有两个Arm Cortex-M33,所以这里识别出两个。按照默认的选择0号即可,点击确定。
下载完成后,从电脑的设备管理器可以看到开发板对应的串口为COM34:MCU-Link VCom Port,打开串口助手,设置串口波特率115200。
在发送串口填写Hello, MCXN947点击发送,开发板打印同样的字符串。
如果下载程序时出现这样的问题Debug server could not be started: null,如下图所示:
可以按照下面的方法解决程序烧录问题,但是还不能进入调试模式。即单击(1)处LinkServer图标,选择(2)处的Program flash action using LinkServer,即只下载程序不调试。这样就可以顺利下载程序了。
![[PIC14-LinkServer-Program-Flash-Action.png]]
下图,顺利下载程序。
拿到新开发板,当然需要点灯了。从文档《FRDM-MCXN947 Board User Manual.pdf》中可知,开发板上有3个LED:
D1,红色,表示复位的LED,按下SW1复位按钮,D1 LED点亮;
D2,RGB LED,用户LED,每一个都可以由用户控制;
D5,绿色,P3V3电源指示灯;
所以我们的点灯程序只需要D2即可。
D2原理图如下:
红色LED,接P0_10;
绿色LED,接P0_27;
蓝色LED,接P1_2;
MCUXpresso IDE点击菜单栏配置工具然后选择引脚。
新打开的视图是MCUXpresso_Config_Tools提供的视图,如下图:
输入引脚名称、标签,快速搜索引脚;
已配置号的引脚在这里列出;
配置完引脚,点击更新源代码即可;
首先配置红色LED,它对应的引脚为P0_10,如下图所示操作:
1.在(1)处输入P0_10快速搜索对应的管脚B12;
2.在(2)处单击B12然后弹出引脚[B12]功能选择界面;
3.在(3)处浏览找到GPIO0:GPIO,10(PIO0_10)选项,并勾选前面的方框;
4.在(4)处点击完成确认所选功能;
最后在路由详情标签页,给3个LED配置GPIO方向为Output,GPIO初始状态为Logical 1
最后,点击更新源代码确保引脚配置代码更新。
/**
* 1 -- Red ON, 2 -- Red OFF
* 3 -- Green ON, 4 -- Green OFF
* 5 -- Blue ON, 6 -- Blue OFF
*/
static void led_control_command(char cmd)
{
switch (cmd) {
case '1':// Red ON
GPIO_PinWrite(BOARD_INITPINS_LED_RED_GPIO, BOARD_INITPINS_LED_RED_GPIO_PIN, LED_ON);
break;
case '2': // Red OFF
GPIO_PinWrite(BOARD_INITPINS_LED_RED_GPIO, BOARD_INITPINS_LED_RED_GPIO_PIN, LED_OFF);
break;
case '3': // Green ON
GPIO_PinWrite(BOARD_INITPINS_LED_GREEN_GPIO, BOARD_INITPINS_LED_GREEN_GPIO_PIN, LED_ON);
break;
case '4': // Green OFF
GPIO_PinWrite(BOARD_INITPINS_LED_GREEN_GPIO, BOARD_INITPINS_LED_GREEN_GPIO_PIN, LED_OFF);
break;
case '5': // Blue ON
GPIO_PinWrite(BOARD_INITPINS_LED_BLUE_GPIO, BOARD_INITPINS_LED_BLUE_GPIO_PIN, LED_ON);
break;
case '6': // Blue OFF
GPIO_PinWrite(BOARD_INITPINS_LED_BLUE_GPIO, BOARD_INITPINS_LED_BLUE_GPIO_PIN, LED_OFF);
break;
default:
break;
}
}
while (1)
{
LPUART_ReadBlocking(DEMO_LPUART, &ch, 1);
LPUART_WriteBlocking(DEMO_LPUART, &ch, 1);
led_control_command(ch);
}
结果
NXP的MCUXpresso IDE非常容易上手,集成了MCUXPresso Config Tools,配置引脚非常方便。
您可以点击文末“阅读原文”,前往与非网(eefocus)工程师社区查看原始文章。
用户测评(一):使用NXP MCX-N板卡实现鞋帽等物件识别
用户测评(二):体验NXP MCX-N板卡的NPU功能