【Avnet | NXP FRDM-MCXN947试用活动】测评1--搭建环境、点灯
本帖最后由 eefocus_3891719 于 2024-12-11 10:33 编辑# 简介
非常感谢EEFOCUS和安富利联合举办的活动,选中我评测 **NXP FRDM-MCXN947** 开发板,我倍感荣幸。
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 的方框图如下:
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161627fdajg8pd9jjgdj90.png)
# 安装开发工具
NXP 为自家的处理器开发了很多工具,其中适用于 MCX 家族的有 MCUXpresso IDE 以及 MCUXpresso Config Tools,另外不同的器件有不同的 SDK,NXP 在官网也提供给了视频教程,手把手教用户入门,非常友好。
例如 **FRDM-MCXN947** 新手入门向导,教用户熟悉开发板、安装软件、编译示例工程、调试工程,非常完善。
(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
从 (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。
## FRDM-MCXN947 SDK
进入 MCUXpresso SDK Builder 网页,登录 NXP 账号,如下图所示:
1. 选择 SDK 使用的操作系统;
2. 选择工具链,根据需要选择工具链,如果不确定则选择 **All Toolchains**;
3. 选择软件组件,推荐全选;
4. 最后点击 **BUILD SDK** 确认;
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161645dmm9c2dmtdat58aj.png)
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161655kka4zpla8yb8ykyh.png)
## MCUXpresso IDE 导入 SDK
在 MCUXpresso IDE 菜单栏选择 **窗口** --> **显示视图** --> **Installed SDKs**
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161708en82x7us8sxp4p7e.png)
如下图,拖到下载的SDK到此窗口空白或者鼠标右键点击空白区域,选择第一项,浏览文件夹找到刚下载的 SDK 也可。
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161721d912y1g99dbyc9kk.png)
# 运行一个 UART 示例
## 导入工程
第一次运行 MCUXpresso IDE,可以从已安装的 SDK 导入一个示例工程。可以从(1)处选择 **Import SDK examples(s)...** 也可以从(2)处导入示例工程。
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161732mmr7zkbrzrfaqrkv.png)
在 SDK 导入向导界面,先选择开发板 **frdmmcxn947** ,如下图所示:
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161752ccz021n61hhc8v11.png)
选择工程界面,可以在(1)处输入 *uart* 快速找到 UART 相关的示例工程,这里选择 **lpuart_polling** 示例工程,最后在(3)点击完成即可。
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161804pbrodr9rrual9fzt.png)
## 编译工程
如下图所示,在(1)处点击 **Build** 开始编译。在(2)处显示编译结果,成功编译生成 **frdmmcnx947_lpuart_polling.axf** 文件。
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161819f3yx3sry4iv4ihcq.png)
## 下载运行
使用 USB Type-C 线一头接开发板上的 **MCU-Link** ,另一头接电脑。
点击(1)处的 **Debug** ,MCUXpresso IDE 开始识别调试器。如下图,由于我的电脑同时接了两个调试器,另外一个是 J-Link (忽略),这里选择 **MCU-LINK** 即可,然后点击(3)处确定。
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161835ucz9j0ntslzbnctb.png)
MCUXpresso IDE 弹窗提醒选择 SWD 器件。由于 MCXN947 有两 Arm Cortex-M33,所以这里识别出两个。按照默认的选择 **0** 号即可,点击确定。
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161846v8ciy9c2cjzl5cq8.png)
下载完成后,从电脑的设备管理器可以看到开发板对应的串口为 **COM34: MCU-Link VCom Port**,打开串口助手,设置串口波特率 115200.
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161858yhesm4fehm24m4hy.png)
在发送串口填写 **Hello, MCXN947** 点击发送,开发板打印同样的字符串。
## 下载程序出问题
如果下载程序时出现这样的问题 **Debug server could not be started: null**,如下图所示:
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161908dd58dg6ts89s8u8z.png)
可以按照下面的方法解决程序烧录问题,但是还不能进入调试模式。即单击(1)处 LinkServer 图标,选择(2)处的 **Program flash action using LinkServer**,即只下载程序不调试。这样就可以顺利下载程序了。
![]
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161918yqj4jiys4ijkvy42.png)
下图,顺利下载程序。
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161930cbemdkljjlbbbfjf.png)
# 点灯
拿到新开发板,当然需要点灯了。从文档 《FRDM-MCXN947 Board User Manual.pdf》 中可知,开发板上有3个LED:
- D1,红色,表示复位的LED,按下 SW1 复位按钮,D1 LED点亮;
- D2,RGB LED,用户LED,每一个都可以由用户控制;
- D5,绿色,P3V3 电源指示灯;
所以我们的点灯程序只需要 D2 即可。
## 原理图
D2 原理图如下:
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161942xqgo61lgo66qax1g.png)
- 红色LED,接 **P0_10**;
- 绿色LED,接 **P0_27**;
- 蓝色LED,接 **P1_2**;
## 配置管脚
MCUXpresso IDE 点击菜单栏 **配置工具** 然后选择 **引脚**.
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/161955hsoll7qu77qqeuus.png)
### MCUXpresso_Config_Tools 简介
新打开的视图是 MCUXpresso_Config_Tools 提供的视图,如下图:
- 1. 输入引脚名称、标签,快速搜索引脚;
- 2. 已配置号的引脚在这里列出;
- 3. 配置完引脚,点击**更新源代码** 即可;
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/162006cil3b9k2rale3xfi.png)
### 配置 RGB LED
首先配置红色LED,它对应的引脚为 **P0_10**,如下图所示操作:
1. 在(1)处输入 **P0_10** 快速搜索对应的管脚 **B12**;
2. 在(2)处单击 **B12** 然后弹出 **引脚** 功能选择界面;
3. 在(3)处浏览找到 **GPIO0:GPIO,10(PIO0_10)** 选项,并勾选前面的方框;
4. 在(4)处点击**完成**确认所选功能;
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/162017h8p1p9c0p9zs0s6o.png)
最后在 **路由详情** 标签页,给3个LED配置GPIO方向为 **Output**,GPIO 初始状态为 **Logical 1**
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/162027chqh2lzgsb5jhfz9.png)
最后,点击 **更新源代码** 确保引脚配置代码更新。
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/162036dapfjcnj4yyq7zmm.png)
## 写程序
### 添加宏定义
```c
#define LED_ON 0
#define LED_OFF 1
```
### 添加函数,控制LED亮灭
```c
/**
* 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;
}
}
```
### 函数调用
```c
while (1)
{
LPUART_ReadBlocking(DEMO_LPUART, &ch, 1);
LPUART_WriteBlocking(DEMO_LPUART, &ch, 1);
led_control_command(ch);
}
```
## 结果
### 红灯亮
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/162050mjji6axdjlawr633.png)
### 蓝灯亮
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/162101xazhuahi00rinavv.png)
### 三灯亮
!(https://www.eefocus.com/forum/data/attachment/forum/202410/26/162112ez9cfgogfcczcobf.png)
# 总结
NXP 的 MCUXpresso IDE非常容易上手,集成了 MCUXPresso Config Tools,配置引脚非常方便。
页:
[1]