【e起DIY】低功耗蓝牙温湿度计:介绍、环境搭建、工程测试
感谢 e 络盟和 EEPW 对物料采购的大力支持。
本文介绍了恩智浦 FRDM-MCXW71 开发板的相关信息,包括外观参数、资源分布、原理图等,并搭建 VS Code 和 Zephyr IDE 开发环境,实现闪灯和串口打印等工程测试。
介绍
FRDM-MCXW71 是一款紧凑且可扩展的开发板,可快速基于 MCX W71 无线 MCU 开展原型设计。
FRDM-MCXW71 可评估 MCX W71 对 BLE、Zigbee、Thread 和 Matter 的多协议无线支持。
FRDM-MCXW71 包括一个板载 MCU-Link 调试器、便于访问 MCU I/O 的行业标准头、一个加速度传感器、一个光传感器和一个外接 SPI 闪存。
包装


包括 MCXW71 开发板、Type-C转USB数据线、说明书;


开发板
Top view


Bottom view


资源分布


参数特点
微控制器
MCX W71 Arm™ Cortex™ -M33内核,主频为96MHz,1MB的应用闪存,256KB radio flash
存储器扩展
MX25R6435FM2IL0 8 MB SPI闪存
连接
BLE、Zigbee、Thread和Matter
SPI/I²C/UART通过Arduino®、mikroBUS或Pmod™接头
CAN-FD收发器
调试
带有CMSIS-DAP的板载MCU-Link调试器
JTAG/SWD连接器
传感器
FXLS8964AF三轴加速度传感器
ALS-PT19-315C/L177/TR8光传感器
扩展选项
Arduino®接头
mikroBUS™
Pmod™(未安装)
用户接口
RGB用户LED,复位、ISP、唤醒按钮
详见:使用MCUXpresso的FRDM-MCXW71开发板 | NXP 半导体 .
原理图
主控


Arduino 接口


上电
开发板出厂程序为蓝牙串口控制板载 LED 颜色的示例程序;
使用 Type-C 数据线连接开发板和电脑,板载 RGB LED 三色全亮,显示白色;


使用 IoT Toolbox APP 蓝牙连接开发板,串口发送 0、1、2、3、4 分别实现全亮、红、蓝、绿、全灭 LED 状态;


环境搭建
下载 并安装 Visual Studio Code 软件;


安装 MCUXpresso for VS Code 扩展插件;


Zephyr 开发环境需要一些主机依赖,比如:CMake、Python、Devicetree、Zephyr SDK 等。LinkServer还需要用NXP板载探头进行调试。
打开MCUXpresso扩展。在快速启动面板中,点击“打开 MCUXpresso 安装程序”;安装 Zephyr Developer,包括 Zephyr SDK;安装 LinkServer ;


重启 VS Code 以启用环境变量的更改。
导入 Zephyr 仓库,在快速入门面板中点击导入仓库 ;
选择 Zephyr 仓库,导入器默认使用最新的 Zephyr 版本。选择文件夹的位置和名称,完成后,点击导入。


导入成功后,仓库会被成功添加到导入仓库视图中,该过程需耐心等待相关文件下载;
详见:Zephyr lab installation and preparation — MCUXpresso for VS Code documentation .
手机下载并安装 IoT Toolbox APP


详见:IoT Toolbox for Android - NXP Community .
工程测试
这里以串口打印字符串示例工程,对搭建好的 Zephyr 开发环境进行测试。
从 Zephyr 仓库导入 hello_world 应用,在 快速启动面板 中点击 “从仓库导入示例” ;
选择开发板时,输入 mcxw71 以找到目标 frdm_mcxw71 开发板;
选择示例时,输入 hello 即可找到应用 zephyr/samples/hello_world ;
对于应用程序类型,选择存储库应用程序;
点击导入,示例应会添加到项目视图中。


工程代码
展开左侧 Projects 目录,点击 hello_world/Project Files/src/main.c 文件并打开
#include <stdio.h>
int main(void)
{
printf("Hello World! %s\n", CONFIG_BOARD_TARGET);
return 0;
}保存代码。
工程构建
点击“构建项目”图标即可构建项目;
构建结束后,终端视图显示内存使用情况;


调试上传
点击 Debug 图标以调试应用程序:


右下角会弹出一个提示,询问VSCode是否应该下载SVD文件。SVD 文件用于在调试器中查看硬件外设寄存器。该文件包含所有外围寄存器的寄存器名称和位字段。SVD文件对这个Hello World实验室来说并不重要。选择“别再问”更快,也能避免下载。
执行会暂停,VS Code 顶部会弹出一个调试工具栏。要继续执行,点击调试选项中的继续按钮;


效果演示
将串行监视器连接到主板的 COM 端口,配置波特率 115200 bps ;
点击 开始监视 ;
串口打印 Hello World 字符串;


闪灯
从 Zephyr 仓库导入 blinky 工程,在 快速启动面板 中点击 “从仓库导入示例” ;
选择开发板时,输入 mcxw71 以找到目标 frdm_mcxw71 开发板;
选择示例时,输入 blink 即可找到应用 zephyr/samples/blinky ;
对于应用程序类型,选择存储库应用程序;
点击导入,示例应会添加到项目视图中。


代码
展开左侧 Projects 目录,点击 Blinky/Project Files/src/main.c 文件并打开
#include <stdio.h>
#include <zephyr/kernel.h>
#include <zephyr/drivers/gpio.h>
/* 1000 msec = 1 sec */
#define SLEEP_TIME_MS 1000
/* The devicetree node identifier for the "led0" alias. */
#define LED0_NODE DT_ALIAS(led0)
/*
* A build error on this line means your board is unsupported.
* See the sample documentation for information on how to fix this.
*/
static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
int main(void)
{
int ret;
bool led_state = true;
if (!gpio_is_ready_dt(&led)) {
return 0;
}
ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
if (ret < 0) {
return 0;
}
while (1) {
ret = gpio_pin_toggle_dt(&led);
if (ret < 0) {
return 0;
}
led_state = !led_state;
printf("LED state: %s\n", led_state ? "ON" : "OFF");
k_msleep(SLEEP_TIME_MS);
}
return 0;
}保存代码。
构建上传
点击“构建项目”图标即可构建项目;
构建结束后,终端视图显示内存使用情况;


点击 Debug 图标以调试应用程序:


效果演示
板载 LED 闪烁,且串口打印 LED 亮灭状态;


总结
本文介绍了恩智浦 FRDM-MCXW71 开发板的相关信息,包括外观参数、资源分布、原理图等,并搭建 VS Code 和 Zephyr IDE 开发环境,实现闪灯和串口打印等工程测试,为相关产品的快速开发和功能测试提供了参考。
再次感谢 e 络盟和 EEPW 对物料采购的大力支持。
我要赚赏金
