ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Zephyr 板级支持指南:NXP MIMXRT1062-FMURT6 跨界处理器开发板详解

Zephyr 板级支持指南:NXP MIMXRT1062-FMURT6 跨界处理器开发板详解 操作系统嵌入式RTOS物联网【免费下载链接】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点击查看免费下载本指南以 Zephyr 仓库中 MIMXRT1062-FMURT6 板级文档 为核心系统梳理这块面向无人机飞控FMU与实时嵌入式应用的 NXP 跨界处理器开发板在 Zephyr RTOS 下的硬件资源、引脚功能、系统时钟、串口布局、调试探针配置、烧录与调试流程。读完本文你将掌握如何基于mimxrt1062_fmurt6板级目标完成应用构建、串口控制台连接、J-Link 调试探针切换、SWO 日志后端启用以及常见烧录故障排查并能结合仓库中的设备树DTS与 pinctrl 配置理解板级实现的底层细节。板级概览i.MX RT1062 跨界处理器MIMXRT1062-FMURT6 属于 NXP i.MX RT 跨界处理器系列它在保持与 i.MX RT1050 引脚到引脚pin-to-pin兼容的前提下将片上 SRAM 翻倍至 1 MB并引入面向实时应用的关键特性高速 GPIOHigh-Speed GPIO、CAN FD以及同步并行 NAND/NOR/PSRAM 控制器。其核心为 Arm Cortex-M7最高运行频率 600 MHz可满足高实时性控制与中等规模信号处理的需求。在 Zephyr 仓库中该板对应的板级目录为 boards/nxp/mimxrt1062_fmurt6板级标识符identifier为mimxrt1062_fmurt6。其 SoC 归属于 nxp/imxrt/imxrt10xx/nxp_rt1060.dtsi 描述的设备树家族板级 DTS 首行即 include 该文件架构为arm工具链支持zephyr与gnuarmemb板上 RAM 声明为 768 KB、Flash 声明为 65536 KB详见 mimxrt1062_fmurt6.yaml。MIMXRT1062-FMURT6 开发板硬件资源清单MIMXRT1062-FMURT6 板载资源如下主控MIMXRT1062DVL6B MCU600 MHz1024 KB 片上内存1 MB 片上 SRAM存储器256 Mbit SDRAM512 Mbit Hyper FlashTF 卡座SD 卡以太网10/100 Mbit/s 以太网 PHYUSBUSB 2.0 OTG 连接器、USB 2.0 Host 连接器音频3.5 mm 立体声耳机插孔、板载麦克风、左右扬声器输出连接器电源5 V DC 电源插孔调试20 针 JTAG 连接器、带 DAPLink 固件的 OpenSDA 调试电路传感器BMI088 六轴电子罗盘加速度计 陀螺仪扩展接口Arduino 兼容接口总线CAN 总线连接器从板级 DTSmimxrt1062_fmurt6.dts可以看出板载外设还包括两颗用户 LEDgreen_led、red_led、BMP388 气压计挂在 LPI2C2 上地址 0x76、ISM330DHCX 惯性传感器节点LPSPI2默认 disabled、多路板载电源轨SD 卡 3.3 V、外设 5 V、大功率 5 V、传感器 3V3_S、Spektrum 接收机 3.3 V、以太网 PHY 供电这些电源轨以regulator-fixed节点实现并由 GPIO 控制使能。支持的功能与外设板级 YAMLmimxrt1062_fmurt6.yaml声明的supported功能列表为功能类别支持情况adc / can / counter / dma / flash / gpio支持i2c / netif:eth / pwm / sdhc / spi / uart支持usb_device / watchdog / rtc支持同时Zephyr 官方文档建议对于尚未支持的附加功能请参阅mimxrt1064_evk板boards/nxp/mimxrt1064_evk。mimxrt1064_evk 是 NXP i.MX RT10xx 家族中的超集superset板NXP 优先为超集板提供 Zephyr 完整平台支持Full Platform Support因此 mimxrt1064_evk 上已支持的功能通常也可以复用到本板。默认配置defconfig板级默认配置见 mimxrt1062_fmurt6_defconfigCONFIG_CONSOLEy CONFIG_UART_CONSOLEy CONFIG_SERIALy CONFIG_GPIOy CONFIG_ARM_MPUy CONFIG_HW_STACK_PROTECTIONy # Enable Regulators CONFIG_REGULATORy CONFIG_REGULATOR_FIXED_INIT_PRIORITY75默认开启串口控制台、GPIO、ARM MPU内存保护单元与硬件栈保护同时使能 regulator 框架并将固定稳压器的初始化优先级设为 75确保板载电源轨如 SD 卡供电、以太网 PHY 供电在相关外设驱动初始化前就绪。此外Kconfig.defconfig 中默认启用了DEVICE_CONFIGURATION_DATA复用 RT1050 EVK 的 DCD 器件配置数据块来初始化外部 SDRAM、NXP_IMX_EXTERNAL_SDRAM外部 SDRAM与ETH_DRIVER以太网驱动而 Kconfig.mimxrt1062_fmurt6 中通过select SOC_PART_NUMBER_MIMXRT1062DVL6A指定了 SoC 器件型号为 MIMXRT1062DVL6A。连接与 I/O 引脚分配MIMXRT1062 SoC 拥有五对 pinmux/GPIO 控制器在 Zephyr 设备树中体现为iomuxc引脚复用配置详见 mimxrt1062_fmurt6-pinctrl.dtsi。板上主要引脚功能分配如下引脚名功能用途GPIO_AD_B1_08FLEXCAN1 TXCANGPIO_B0_03FLEXCAN1 RXCANGPIO_AD_B0_06PWM2A0PWMGPIO_EMC_08PWM2A1PWMGPIO_EMC_10PWM2A2PWMGPIO_AD_B0_09PWM2A3PWMGPIO_EMC_31LPUART7_TXUART 控制台GPIO_EMC_32LPUART7_RXUART 控制台GPIO_B0_04LPI2C2_SCLI2CGPIO_B0_05LPI2C2_SDAI2CGPIO_AD_B1_00LPI2C1_SCLI2CGPIO_AD_B1_01LPI2C1_SDAI2CGPIO_AD_B0_12LPI2C4_SCLI2CGPIO_AD_B0_13LPI2C4_SDAI2CWAKEUPGPIOSW0GPIO_B1_01ENET_RX_DATA00以太网GPIO_B1_02ENET_RX_DATA01以太网GPIO_B1_03ENET_RX_EN以太网GPIO_B0_12ENET_TX_DATA00以太网GPIO_B0_13ENET_TX_DATA01以太网GPIO_B0_14ENET_TX_EN以太网GPIO_B0_15ENET_REF_CLK以太网GPIO_B1_00ENET_RX_ER以太网GPIO_B1_12GPIOSD 卡GPIO_B1_14USDHC1_VSELECTSD 卡GPIO_EMC_40ENET_MDC以太网GPIO_B0_01ENET_MDIO以太网GPIO_SD_B0_00USDHC1_CMDSD 卡GPIO_SD_B0_01USDHC1_CLKSD 卡GPIO_SD_B0_02USDHC1_DATA0SD 卡GPIO_SD_B0_03USDHC1_DATA1SD 卡GPIO_SD_B0_04USDHC1_DATA2SD 卡GPIO_SD_B0_05USDHC1_DATA3SD 卡GPIO_EMC_27LPSPI1_SCKSPIGPIO_EMC_28LPSPI1_SDOSPIGPIO_EMC_29LPSPI1_SDISPIGPIO_EMC_00LPSPI2_SCKSPIGPIO_EMC_02LPSPI2_SDOSPIGPIO_EMC_03LPSPI2_SDISPIGPIO_AD_B1_15LPSPI3_SCKSPIGPIO_AD_B1_14LPSPI3_SDOSPIGPIO_AD_B1_13LPSPI3_SDISPIGPIO_AD_B1_11ADCADC1 通道 0GPIO_AD_B1_09ADCADC1 通道 14GPIO_AD_B0_15ADCADC1 通道 4GPIO_AD_B1_02UART2_TX_GPS1UART GPSGPIO_AD_B1_03UART2_RX_GPS1UART GPS从 pinctrl 看引脚配置细节板级 pinctrl 文件 mimxrt1062_fmurt6-pinctrl.dtsi 定义了各外设的默认引脚组group配置几个关键点控制台 UARTLPUART7pinmux_lpuart7使用GPIO_EMC_31/32引脚配置了 100 kΩ 上拉、慢斜率与 100 MHz 速度pinmux_lpuart7_sleep睡眠态组将驱动强度降为r0、速度降为 50 MHz配合低功耗模式。以太网ENET2pinmux_enet分 4 组配置 RMII 接口信号其中 REF_CLK 使用GPIO_B0_15_ENET2_REF_CLK2MDIO 引脚GPIO_B0_01配置为开漏open-drain并上拉 100 kΩ符合 MDIO 总线电气规范。ADCpinmux_adc1将GPIO_AD_B1_11复用为ADC1_IN0配置bias-disable、r0-6驱动强度与慢斜率。SWO 调试口pinmux_swo将GPIO_AD_B0_10复用为ARM_TRACE_SWO采用r0-7驱动强度、快斜率与 200 MHz 速度并注释强调SWO 配置为 CPU 频率 132 MHz、SWO 频率 7500 KHz与下文 SWO 章节参数一致。SD 卡USDHC1pinmux_usdhc1之外还定义了slow/med/fast三档速率组50/100/200 MHz由 DTS 中pinctrl-names default, slow, med, fast引用驱动可根据总线频率自动切换引脚电气参数。飞控 PWM 输出pinmux_flexpwm_fmu_ch1至pinmux_flexpwm_fmu_ch8定义了 8 路 FMU PWM 输出通道CH1–CH4 位于 FLEXPWM2CH5–CH6 位于 FLEXPWM3CH7–CH8 位于 FLEXPWM4全部采用r0-7驱动强度与 200 MHz 速度适合直接驱动舵机/电调信号线。系统时钟配置MIMXRT1062 SoC 默认使用SysTick作为系统时钟源运行频率为600 MHz即 Cortex-M7 内核频率。当启用电源管理power management时板载 32 KHz 低频振荡器会被用作 GPT 定时器的时钟源来产生系统时钟。这一机制允许进入更低功耗状态代价是系统时钟分辨率下降。从板级 DTS 可以印证这一设计gpt_hw_timer { status okay; }; systick { status okay; };DTS 注释明确指出GPT 与 SysTick 均已启用。若启用电源管理将改用 GPT 定时器而非 SysTick因为 GPT 允许门控内核时钟gating the core clock。 另外CMakeLists.txt 会在检测到CONFIG_MCUX_GPT_TIMER时输出编译期警告提示使用 GPT 硬件定时器会降低硬件定时器分辨率。串口Serial Port布局MIMXRT1062 SoC 共有 8 个 UART板上分配如下LPUART7控制台console串口LPUART8 与 LPUART2GPS / 磁力计MAGLPUART3 与 LPUART4遥测Telemetry其余 UART 未使用DTS 中的别名aliases进一步明确了用途映射aliases { led0 green_led; led1 red_led; watchdog0 wdog0; sdhc0 usdhc1; gps1 lpuart2; telem1 lpuart3; telem4-gps2 lpuart5; rtc counter_rtc; };其中gps1 lpuart2、telem1 lpuart3、telem4-gps2 lpuart5。chosen节点则将zephyr,console、zephyr,shell-uart、zephyr,uart-mcumgr统一指向lpuart7zephyr,canbus指向flexcan1。LPUART2/3/5/7 在 DTS 中均以current-speed 115200启用并配置了各自的默认/睡眠两套 pinctrl 状态。编程与调试Programming and Debugging构建与烧录应用的方式与其他 Zephyr 板级一致构建应用可参考 samples/hello_world运行应用可参考 Zephyr 应用运行章节。该板默认配置使用OpenSDADAPLink板载调试探针但当前pyOCD 调试主机工具尚不支持对本板外部 Flash 进行编程因此若需烧写 Hyper Flash必须将板重配置为以下调试探针之一。使用 J-Link安装 Segger J-Link 调试主机工具并确保其位于可执行文件搜索路径中。注意i.MX RT106x 的Hyper Flash 支持需要 J-Link V7.80 或以上版本JLink_V780。有两种接线方案将板载调试电路更新为 Segger J-Link 固件或者将外部 J-Link 调试探针连接到 FMURT6 的J23 FMU 调试端口。运行JLink.exe选择设备/内核为MIMXRT106A-ALEXA。仓库中的 board.cmake 对应地配置了各 runnerboard_runner_args(pyocd --targetmimxrt1060) board_runner_args(jlink --deviceMIMXRT1062xxx6A) board_runner_args(jlink --loaderBankAddr0x60000000LoaderHyperFlash) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)可以看到 J-Link runner 以--deviceMIMXRT1062xxx6A指定目标器件并通过--loaderBankAddr0x60000000LoaderHyperFlash指定 Hyper Flash 加载器0x60000000 正是 Hyper Flash 在 DTS 中的映射基地址。配置串口控制台Configuring a Console无论选择哪种调试探针串口控制台都统一使用OpenSDA 微控制器作为 USB 转串口适配器用 USB 线将 PC 连接到 PixHawk 调试适配器PixHawk debug adapter。使用任意串口终端软件如 minicom、putty 等串口参数如下参数值Speed波特率115200Data数据位8 bitsParity校验位NoneStop bits停止位1使用 SWOSWOSerial Wire Output可作为日志后端使用只需在 prj.conf 中设置CONFIG_LOG_BACKEND_SWOySWO 查看器viewer应配置为CPU 频率132 MHzSWO 频率7500 KHz这与 pinctrl 中pinmux_swo的注释一致同时 DTS 中itm节点已绑定pinmux_swo引脚组GPIO_AD_B0_10复用为ARM_TRACE_SWO确保 ITM/SWO 输出信号正确路由。烧录示例Flashing以hello_world示例应用为例烧录命令如下west build -b mimxrt1062_fmurt6 samples/hello_world west flash打开串口终端复位开发板按下SW9按钮应能看到如下输出***** Booting Zephyr OS v3.20.0 ***** Hello World! mimxrt1062_fmurt6调试示例Debugging同样以hello_world为例启动调试会话west debug打开串口终端在调试器中单步执行应用应能看到与烧录示例相同的输出***** Booting Zephyr OS v3.20.0 ***** Hello World! mimxrt1062_fmurt6故障排查Troubleshooting如果west flash或west debug命令失败且命令在执行runners.jlink时挂起请确认J-Link 调试探针已正确配置J-Link 已供电J-Link 与 FMURT6 板连接正确。底层实现补充Flash 分区与板载外设理解板级 DTSmimxrt1062_fmurt6.dts有助于深入掌握该板在 Zephyr 中的运行方式Hyper Flash 与分区布局flexspi节点启用 Hyper Flash 控制器nxp,imx-flexspi-hyperflash工作频率 166 MHz采用组合模式combination-mode与差分时钟sck-differential-clock。Hyper Flash 芯片型号为S26KS512兼容soc-nv-flash容量 64 MBDT_SIZE_M(64)擦除块 256 KB、写入块 16 字节。分区布局如下分区标签起始地址大小boot_partitionmcuboot0x00000000256 KBslot0_partitionimage-00x000400003 MBslot1_partitionimage-10x003400003 MBstorage_partitionstorage0x0064000058 MB − 256 KB注释明确指出分区大小必须与 256 KB 的 Flash 扇区大小对齐。chosen节点中zephyr,flash s26ks512s0、zephyr,flash-controller ext_flash_ctrl、zephyr,code-partition slot0_partition配合 MCUboot 即可实现 A/B 双镜像 OTA 升级。另外CMakeLists.txt 说明RT1060 的 Hyper Flash 在 NXP SDK 中没有对应的 Flash 配置块因此复用了 RT1050 EVK 的配置evkbimxrt1050_flexspi_nor_config.c外部 SDRAM 的 DCD 器件配置数据同样复用 RT1050 EVKdcd/dcd.c。如果自研板更换了 Flash 或 SDRAM 芯片需要按 NXP AN12238 修改这些配置块。以太网与 SD 卡以太网enet2采用 RMII 接口phy-connection-type rmiiMAC 启用zephyr,random-mac-address随机 MAC 地址MDIO 总线上挂载通用 PHY地址 0。DTS 中另有reg-eth-power固定稳压器为 TJA1103 PHY 供电GPIO5_1 高电平使能。SD 卡usdhc1配置了电源 GPIOpwr-gpiosGPIO1_5与卡检测 GPIOcd-gpiosGPIO2_28 低有效并挂载zephyr,sdmmc-disk磁盘节点盘符 SD同时reg-3v3-sdcard稳压器控制 SD 卡 3.3 V 供电。电源轨与低功耗板级 DTS 定义了 6 路固定稳压器除前述外还包括reg-5v-periphGPIO4_9 低电平使能、reg-5v-hipowerGPIO4_6 低电平使能、reg-3v3-sensorGPIO3_27 高电平使能含 2 ms 启动延时与reg-3v3-spektrumGPIO1_0 高电平使能。这些节点与CONFIG_REGULATORy配合为外设供电管理提供了硬件抽象基础。小结MIMXRT1062-FMURT6 是一块功能丰富的 NXP i.MX RT1062 跨界处理器开发板600 MHz Cortex-M7、1 MB 片上 SRAM、Hyper Flash SDRAM、CAN FD、以太网、SD 卡、多路 UART 与 8 路飞控 PWM 输出使其非常适合无人机飞控FMU、遥测、GPS 组合导航等实时应用。在 Zephyr 中其板级支持由 boards/nxp/mimxrt1062_fmurt6 目录下的设备树、pinctrl、Kconfig 与 CMake 脚本共同完成。上手时只需记住三条主线控制台走 LPUART7115200-8-N-1默认调试探针为 OpenSDA/DAPLink如需烧写 Hyper Flash 则改用 J-Link V7.80 并选择 MIMXRT1062xxx6A 器件。若需要更多外设支持可参考同系列的 mimxrt1064_evk 超集板。赞分享操作系统嵌入式RTOS物联网【免费下载链接】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点击查看免费下载相关推荐Zephyr 板级支持指南NXP FRDM-K32L2B3 开发板评估与实战Zephyr 板级支持指南NXP FRDM K32L2B3 开发板评估与实战 导读 本文以 Zephyr 仓库中 FRDM K32L2B3 板级文档 http操作系统嵌入式RTOS物联网Zephyr RTOS 板级支持实战NXP TWR-KE18FKinetis KE1xF开发板上手指南Zephyr RTOS 板级支持实战NXP TWR KE18FKinetis KE1xF开发板上手指南 TWR KE18F 是 NXP 面向 Kineti操作系统嵌入式RTOS物联网Zephyr 板级支持解析NXP VMU RT1170i.MX RT1176 双核飞行管理单元开发板指南Zephyr 板级支持解析NXP VMU RT1170i.MX RT1176 双核飞行管理单元开发板指南 VMU RT1170 是 Zephyr RTOS操作系统嵌入式RTOS物联网创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表