在 Zephyr 中使用 NXP RD-RW612-BGA:三射频无线 MCU 开发板的完整上手指南
在 Zephyr 中使用 NXP RD-RW612-BGA三射频无线 MCU 开发板的完整上手指南【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyrRD-RW612-BGA 是 NXP 推出的基于 RW612 三射频无线 MCU 的评估板集成了 260 MHz ARM Cortex-M33 内核与 Wi-Fi 6、Bluetooth LE 5.3、802.15.4 三种射频能力。本文以 Zephyr 仓库中该板卡官方文档boards/nxp/rd_rw612_bga/doc/index.rst为主线结合板级设备树、默认配置与显示扩展文件系统讲解如何在 Zephyr 下完成板卡配置、显示模块接入、二进制固件拉取、烧录调试以及以太网变体的硬件改造与构建方法帮助你从零开始在这块单 3.3 V 供电的高集成无线 MCU 上跑通第一个应用。板卡概览一颗三射频、单电源的无线 MCURW612 是一颗高度集成、低功耗的三射频无线 MCU面向智能家居互联设备、游戏手柄、企业与工业自动化、智能配件以及智能能源等广泛场景。其核心特性包括集成的260 MHz ARM Cortex-M33应用处理器三射频子系统Wi-Fi 6 Bluetooth LE 5.3 802.15.41.2 MB 片上 SRAM高带宽Quad SPI 接口内置on-the-fly 解密引擎on-the-fly decryption engine用于安全访问片外 XIPExecute-In-PlaceFlash高度集成、低功耗、安全的设计仅需单路 3.3 V 电源即可工作空间与成本效率突出。在 Zephyr 中该板卡的标识符为rd_rw612_bga默认 SoC 为rw612由 board.yml 定义并额外声明了一个名为ethernet的板级变体variant用于启用以太网功能详见下文板级变体小节。支持的硬件功能根据板卡声明文件 rd_rw612_bga.yamlZephyr 为该板卡支持的设备功能包括类别功能模拟adc、dac定时/计数counter、pwm、watchdog数字接口gpio、i2c、i2s、spi、dma音频dmic数字麦克风存储flash片外 XIP NOR Flash安全/基础entropy、hwinfoUSBusb_device、usb_host网络netif:eth以太网、netif:openthread802.15.4/Thread板卡可用资源方面应用可用的RAM 为 960 KB1.2 MB 片上 SRAM 扣除保留部分Flash 为 65536 KB64 MB——后者来自片外 Quad SPI 连接的 MX25UM51245G NOR Flash通过 XIP 方式直接执行。默认内核配置rd_rw612_bga_defconfig启用了一组面向安全与基础运行的关键选项CONFIG_CONSOLEy、CONFIG_UART_CONSOLEy、CONFIG_SERIALy、CONFIG_UART_INTERRUPT_DRIVENy串口控制台与中断驱动 UARTCONFIG_GPIOyGPIO 支持CONFIG_ARM_MPUyARM MPU内存保护单元CONFIG_HW_STACK_PROTECTIONy硬件栈保护CONFIG_TRUSTED_EXECUTION_SECUREy可信执行Secure模式。从设备树看板卡资源布局板级设备树 rd_rw612_bga.dtsi 完整描述了板卡的资源分配别名aliasesusart-0 flexcomm3默认控制台串口、i2c-0 flexcomm2、watchdog0 wwdt、dmic0、pwm-0 sctimer、sw0 sw_4、mcuboot-button0 sw_4chosen 节点zephyr,console、zephyr,shell-uart、zephyr,uart-mcumgr均指向flexcomm3zephyr,sram指向片上 SRAMzephyr,flash与zephyr,flash-controller指向片外 Quad SPI Flash用户按键sw_4作为 gpio-keys 按键接入hsgpio0pin 25Arduino 兼容接口arduino_header节点实现了 Arduino R3 引脚映射A0–A5、D0–D15便于直接挂接 Arduino 生态的扩展板LCD 8080 接口lcd-8080-connector将 LCDIC 控制器的触摸中断、背光、复位信号映射到 GPIO。片外 Flash 分区通过 FlexSPI 连接默认 133 MHz 工作频率如下分区地址大小说明boot_partition (mcuboot)0x00000000128 KBMCUboot 引导程序slot0_partition (image-0)0x000200003 MB主应用镜像槽 0slot1_partition (image-1)0x003200003 MB备用镜像槽 1storage_partition0x0062000058 MB − 128 KB数据存储区分区按 4 KB 扇区对齐。此外设备树中还定义了 4 MB32 Mbit的 IS66WVQ8M4 pSRAM 节点但在默认 XIP 配置下与 Flash 芯片存在冲突因此默认处于disabled状态。电源管理模式文档特别提示使用 Zephyr System Power Management 时RW612 支持Power Mode 1、2、3。在设备树中这三种模式与 Zephyr 电源状态一一对应见 rd_rw612_bga.dtsiIdle空闲→ Power Mode 1min-residency-us 0Suspend挂起→ Power Mode 2min-residency-us 412由 OS Timeros_timer作为唤醒源Standby待机→ Power Mode 3min-residency-us 1690由高精度 RTCrtc_highres作为唤醒源RTC 同时也是 PM 模式 3、4 的唤醒源。nbuNetwork Baseband Unit网络基带单元与imu节点同样被标记为wakeup-source支持从低功耗状态唤醒。需要注意的是systick在该板上被禁用系统时钟由其他定时器源承担。显示模块支持RD-RW612-BGA 板卡支持多款树内in-tree显示模块可通过 Zephyr 的显示样例 samples/drivers/display 直接构建验证。三款模块的接入方式各不相同下面逐一说明。GoWorld 16880 LCM该显示模块不能直接连接板卡必须通过转接板与杜邦线jumper wires连接。具体的接线说明与设备树配置记录在 dts/goworld_16880_lcm.overlay 中。构建显示样例通过DTC_OVERLAY_FILE指定 overlaywest build -b rd_rw612_bga samples/drivers/display -DDTC_OVERLAY_FILEgoworld_16880_lcm.overlay从该 overlay 可以看到其硬件接入要点面板为Sitronix ST7796S480×320通过 LCDIC 控制器以 SPI 半双工方式驱动duplex SPI_HALF_DUPLEX最高 23 MHz并启用nxp,swap-bytes字节交换同时把nxp,timer0-ratio提升到 15 以获得更长的复位延时触摸控制器为FT7401Zephyr 使用 FT5336 驱动兼容支持compatible focaltech,ft5336通过 I2C 连接swapped-x-y、inverted-y已按屏幕方向配置接线前需要对板卡做电阻改动补齐 R125、R123、R12、R124、R15、R243、R239、R236、R233、R286、R246移除 R9、R11、R20、R19、R242、R241、R237、R235、R245并移除 JP30 以断开 Flexcomm SPI 片选显示屏通过 Arduino 排针J5/J6连接overlay 内附有完整的引脚对照表VDD、RST、SDO、CS、SCLK、GND、MOSI、CD、TE 等背光正负极需由外部电路驱动。Adafruit 2.8 TFT:ref:adafruit_2_8_tft_touch_v2 屏蔽板shield可以直接插到板卡的 Arduino 排针上但仍需少量改动详见 boards/shields/adafruit_2_8_tft_touch_v2/boards/rd_rw612_bga.overlay。使用 shield 方式构建显示样例west build -b rd_rw612_bga samples/drivers/display -- -DSHIELDadafruit_2_8_tft_touch_v2该 overlay 的关键实现细节面板为ILI9340240×320RGB888旋转 270°同样挂在 LCDIC 控制器上mipi-max-frequency约 15.15 MHzRW612 的 LCDIC 控制器直接实现 MIPI DBI API不需要 MIPI DBI SPI 节点因此 overlay 通过/delete-node/删除了mipi_dbi与adafruit_2_8_tft_touch_v2_mipi_dbi节点该显示屏不支持字节交换因此用/delete-property/ nxp,swap-bytes移除了板级默认属性需要执行的硬件改动补齐 R125、R123、R12、R124、R15、R243、R239、R236、R233、R286、R246移除 R9、R11、R20、R19、R242、R241、R237、R235、R245短接 J5 的 1-2 引脚并移除 JP30。NXP LCD_PAR_S035:ref:lcd_par_s035 并行 LCD 模块同样不能直接连接板卡必须通过杜邦线接线。接线说明与所需的板卡改动记录在 boards/shields/lcd_par_s035/boards/rd_rw612_bga.overlay 中。使用 shield 方式构建显示样例west build -b rd_rw612_bga samples/drivers/display -- -DSHIELDlcd_par_s035_8080该模块以8 位 8080 并行总线模式接入 LCDIC是三者中改动最复杂的一个需要移除电阻 R78、R604、R598、R15、R245、R243、R11、R20、R237、R235、R431、R447、R420、R459、R485、R486补齐R286、R19、R246、R242、R123、R239、R124、R125、R236、R233、R12同时移除跳线 JP30并将 JP40 置于 1-2、JP38 置于 1-2、JP16 置于 2-3显示屏侧需将 SW1 拨到ON-ON-OFF8 位 8080 模式overlay 附有板卡引脚HD2.x / J5.x / HD8.x / J13.x到显示屏 D0–D7、WR、RD、CS、D/C 等信号的完整接线表软件侧扩展了pinmux_lcdic覆盖全部 8080 模式引脚IO42–IO57 等slew-rate ultra将 ST7796S 配置为MIPI_DBI_MODE_8080_BUS_8_BIT由于显示屏最小写周期为 66 nsLCDIC 可以 30 MHz 时钟运行mipi-max-frequency 30000000该频率仅适用于写入、不适合读取通过rgb-is-inverted让显示屏上报反转的色彩格式从而与 LCDIC 的硬件字节交换配合避免 LVGL 等应用在软件层面交换 RGB565 数据提升性能并启用 TE 同步te-mode MIPI_DBI_TE_RISING_EDGE上升沿。拉取二进制固件Binary BlobsRW612 的Bluetooth 与 Wi-Fi 功能依赖二进制固件binary blobs这些固件以 blobs 形式由 NXP HAL 模块提供。在使用相关功能前必须先执行west blobs fetch hal_nxp该命令会从hal_nxp模块拉取所需的预编译固件即下方蓝牙、Wi-Fi 小节中提到的rw61x_sb_ble_a2.bin、rw61x_sb_wifi_a2.bin否则相关射频功能无法工作。编程与调试该板卡默认使用J-Link 固件JLink Firmware作为调试探针烧录与调试均依赖 J-Link 调试主机工具。配置调试探针调试探针同时用于烧录与调试。板卡默认配置为 JLink无需额外改动即可使用west flash/west debug配合 J-Link 完成操作。配置串口控制台将 USB 线连接到板卡的J7接口然后使用任意串口终端minicom、putty 等连接参数如下Speed波特率115200Data数据位8 bitsParity校验位NoneStop bits停止位1烧录示例hello_world以 samples/hello_world 为例构建并烧录west build -b rd_rw612_bga samples/hello_world west flash烧录完成后打开串口终端并按下板上的RESET按钮即可在终端看到如下输出***** Booting Zephyr OS v3.4.0 ***** Hello World! rd_rw612_bga调试示例hello_world同样以 hello_world 为例启动调试会话west debug打开串口终端在调试器中单步执行应用程序终端会显示***** Booting Zephyr OS zephyr-v3.6.0 ***** Hello World! rd_rw612_bga注意文档中两处示例的版本字符串不同一处为v3.4.0、一处为zephyr-v3.6.0这分别对应不同仓库版本下的实际输出具体以你使用的 Zephyr 版本为准。蓝牙Bluetooth LE启用 BLE 功能必须先完成拉取二进制固件一节的操作。RD-RW612-BGA 平台支持monolithic单镜像特性所需的二进制固件zephyr workspace/modules/hal/nxp/zephyr/blobs/rw61x_sb_ble_a2.bin会被直接链接进应用镜像最终形成一个单一的 monolithic 镜像无需在运行时单独加载射频固件。这意味着蓝牙协议栈与射频固件被打包在同一个固件文件中部署与升级都更加简单。Wi-Fi启用 Wi-Fi 功能同样必须先完成拉取二进制固件一节的操作。与蓝牙相同RD-RW612-BGA 平台以monolithic 方式支持 Wi-Fi二进制固件zephyr workspace/modules/hal/nxp/zephyr/blobs/rw61x_sb_wifi_a2.bin会被直接链接进应用镜像形成单一 monolithic 镜像。板级变体以太网EthernetRD-RW612-BGA 的以太网功能并非默认可用需要先对板卡硬件做电阻改动再使用专用板级变体rd_rw612_bga//ethernet构建。硬件改动在板卡上执行以下电阻调整需要补齐添加的电阻R485、R486、R487、R488、R489、R491、R490需要移除的电阻R522、R521、R520、R524、R523、R508、R505构建以太网变体完成硬件改动后以板级目标rd_rw612_bga//ethernet构建west build -b rd_rw612_bga//ethernet your_application以太网变体的设备树 rd_rw612_bga_rw612_ethernet.dts 揭示了其底层实现使能enet以太网控制器与enet_mac使用RMII接口phy-connection-type rmii并启用随机 MAC 地址zephyr,random-mac-address外接Microchip KSZ8081PHYcompatible microchip,ksz8081MDIO 地址 2带复位hsgpio1pin 23低有效与中断hsgpio0pin 21高有效引脚由于以太网启用会占用相关引脚32.768 kHz 晶振XTAL被断开xtal32 { status disabled; }。该变体同样配有独立的 Kconfig 默认配置 rd_rw612_bga_rw612_ethernet_defconfig 与板卡描述文件构建系统会根据变体名自动选用。小结从本指南可以看到RD-RW612-BGA 在 Zephyr 中是一块功能非常完整的无线评估板它既具备 ADC/DAC/PWM/SPI/I2C/USB 等常规外设与 1.2 MB SRAM又通过 monolithic 固件方案把 Wi-Fi 6 与 BLE 5.3 的射频固件直接链接进应用镜像简化了双镜像部署的复杂度显示方面通过 LCDIC 控制器与三款树内显示模块GoWorld 16880 LCM、Adafruit 2.8 TFT、NXP LCD_PAR_S035提供了从 SPI 到 8 位 8080 并行总线的完整接入范例以太网变体则展示了 Zephyr 板级变体variant机制如何在同一块硬件上通过电阻改动与专用构建目标扩展出新的外设能力。无论你是想快速跑通 hello_world、接入一块显示屏做 GUI 原型还是评估三射频 MCU 在智能家居/工业自动化场景下的联网能力都可以直接以上述命令与配置为起点结合 boards/nxp/rd_rw612_bga 目录下的设备树与配置文件继续深入。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →