eefocus_3891719 发表于 2024-10-26 16:22:15

【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]
查看完整版本: 【Avnet | NXP FRDM-MCXN947试用活动】测评1--搭建环境、点灯