拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Zephyr 中 Aconno ACN52832 模块板支持:硬件资源、引脚映射与设备树解析

Zephyr 中 Aconno ACN52832 模块板支持硬件资源、引脚映射与设备树解析【免费下载链接】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/zephyrACN52832 是 Aconno 推出的一款小型封装 BLE 模块内置 Nordic nRF52832ARM Cortex-M4F常用于低功耗蓝牙信标类产品。本文基于 Zephyr 仓库中的板级文档boards/aconno/acn52832/doc/index.rst及其配套的设备树、默认配置与构建脚本完整讲解该板在 Zephyr 中的硬件资源、Tag-Connect 引脚映射、RGB-LED 引脚、Flash 分区布局以及编译烧录方式。读完后你可以直接以-b acn52832为目标构建应用并理解每处板级定义在源码中的落点。1. 模块概述与 SoC 外设根据板级文档doc/index.rstacn52832 是一个小尺寸封装的模块核心为 Nordic Semiconductor 的nRF52832即 ARM Cortex-M4F CPUSoC 内部集成以下设备ADC模数转换器CLOCK时钟系统FLASH片上闪存GPIO通用输入输出I2CInter-Integrated CircuitMPU内存保护单元NVIC嵌套向量中断控制器PWM脉宽调制RADIOBLE 射频支持 Bluetooth Low EnergyRTCnRF RTC 系统时钟SPI串行外设接口UART通用异步收发器WDT看门狗定时器在 Zephyr 的板级 Kconfig 中该板通过 Kconfig.acn52832 定义config BOARD_ACN52832 select SOC_NRF52832_QFAA即选择nrf52832_qfaa这个 SoC 变体后续的设备树、defconfig 都围绕它展开。SoC 更完整的寄存器与特性说明可查阅 Nordic 官方的 infocenterNordic infocenter文档站。2. 板上资源除 SoC 本身外文档列出的板级附加硬件为板载天线含 RF 匹配电路两颗外部晶振32 MHz 与 32.768 kHzTag-Connect 连接器用于 SWD 调试/烧录RGB-LED。其中晶振对应 nRF52832 的 HCLK32 MHz与 LPO/XTAL 32.768 kHz 低速时钟源是 BLE 射频与低功耗计时的基础Tag-Connect 提供了最小化的调试接口VCC / GND / SWDIO / SWDCLK / RESET无需板载 JTAG 排针即可接 J-Link 或 nrfjprog 探针。3. Tag-Connect 引脚映射Pinout模块引出 35 个 Tag-Connect 焊点其中部分焊点在硬件上并联了多个功能引脚表中 Tag-Connect 列为同一物理点的并联引脚号例如 1/12/13/35 号点并联 GND1/23/24/32 号点并联 VCC。完整引脚表如下PIN #Tag-ConnectnRF52832 功能板上配置15GND2P0.253P0.264P0.275P0.28/AIN46P0.29/AIN57P0.30/AIN68P0.319P0.02/AIN010P0.03/AIN111P0.04/AIN2125GND135GND14P0.05/AIN315P0.06UART_RX16P0.07UART_TX17P0.0818NFC1/P0.0919NFC2/P0.1020P0.1121P0.1222P0.14/TRACEDATA[3]231VCC241VCC25P0.15/TRACEDATA[2]26P0.16/TRACEDATA[1]27P0.17286P0.18/TRACEDATA[0]29P0.1930P0.20/TRACECLK313P0.21/RESET321VCC332SWDIO344SWDCLK355GND从表中可以直接读出几个实用信息UART 已固定为 P0.06RX/ P0.07TX与第 3 节第 4 点设备树中 uart0 的 pinctrl 定义完全对应可直接作为控制台串口使用P0.14P0.21 带有 TRACE 复用若需要 ITM/SWD 追踪可关注这些引脚P0.18 与 P0.21RESET被 Tag-Connect 并联引出调试器可硬复位目标。4. RGB-LED 与设备树 LED 节点文档给出的 RGB-LED 映射LED颜色nRF52832 引脚led0红P0.22led1绿P0.24led2蓝P0.23板级设备树 acn52832.dts 中与之对应的gpio-leds节点leds { compatible gpio-leds; led0: led_0 { gpios gpio0 22 GPIO_ACTIVE_LOW; label LD1A red; }; led1: led_1 { gpios gpio0 24 GPIO_ACTIVE_LOW; label LD1B green; }; led2: led_2 { gpios gpio0 23 GPIO_ACTIVE_LOW; label LD1C blue; }; };可见颜色与引脚一一对应22 红 / 24 绿 / 23 蓝且驱动方式为低电平点亮GPIO_ACTIVE_LOW即拉低 GPIO 点亮 LED。设备树还声明了兼容aliasesaliases { led0 led0; watchdog0 wdt0; };这意味着 Zephyr 示例代码中DEVICE_DT_GET(DT_ALIAS(led0))、DT_ALIAS(watchdog0)等写法在该板上可直接工作。5. 板级描述文件标识符、架构与存储容量acn52832.yaml 给出了板级元数据identifier: acn52832 name: aconno acn52832 type: mcu arch: arm toolchain: - zephyr - gnuarmemb ram: 64 flash: 512构建目标名即acn52832架构为 arm支持zephyr与gnuarmemb工具链64 KB RAM / 512 KB Flash单位 KB这正是 nRF52832 QFAA 的规格。board.yml 进一步声明 vendor 为aconno、SoC 为nrf52832该文件用于 Zephyr 的板级数据库west boards等命令据此识别板。6. 设备树详解控制台、分区与特殊配置acn52832.dts 顶部包含了 SoC 基线nordic/nrf52832_qfaa.dtsi和板级 pinctrl 文件chosen节点决定了系统级资源归属chosen { zephyr,console uart0; zephyr,shell-uart uart0; zephyr,bt-mon-uart uart0; zephyr,bt-c2h-uart uart0; zephyr,sram flash0-flash0; /* 实际为 sram0 */ zephyr,flash flash0; zephyr,code-partition slot0_partition; };要点控制台、shell、BLE monitor、BLE controller-to-host 全部使用 uart0即第 3 节 P0.06/P0.07 引出的串口115200 波特率zephyr,code-partition指向slot0_partition说明该板默认面向MCUboot 双 slot 升级的分区模型。Flash 分区布局flash0.partitions512 KB 总空间分区label起始地址大小boot_partitionmcuboot0x000000000xC00048 KBslot0_partitionimage-00x0000C0000x37000224 KBslot1_partitionimage-10x000430000x37000224 KBstorage_partitionstorage0x0007A0000x600024 KB合计 48 224 224 24 512 KB正好占满整片 Flash。这意味着普通应用镜像应小于约 224 KBwest build时若需要 MCUboot 配合可结合 mcuboot 相关机制与 sysbuild 使用不启用 MCUboot 时镜像仍会按code-partition从 0xC000 处定位注意预留 boot 区。另外两处值得注意的配置uicr { gpio-as-nreset; };gpio-as-nreset将 nRF52832 的 RESET 引脚配置为 GPIO 模式便于软件控制复位路径配合 Tag-Connect 引出的 RESET 焊点。uart0 { compatible nordic,nrf-uarte; current-speed 115200; status okay; pinctrl-0 uart0_default; pinctrl-1 uart0_sleep; pinctrl-names default, sleep; };uart0 使用nordic,nrf-uarteUARTE 硬件流控外设兼容符并定义了 default / sleep 两套 pinctrl。配套的 acn52832-pinctrl.dtsipinctrl { uart0_default: uart0_default { group1 { psels NRF_PSEL(UART_TX, 0, 7), NRF_PSEL(UART_RX, 0, 6); }; }; uart0_sleep: uart0_sleep { group1 { psels NRF_PSEL(UART_TX, 0, 7), NRF_PSEL(UART_RX, 0, 6); low-power-enable; }; }; };即 TX P0.07、RX P0.06与文档 Pinout 表一致sleep组启用low-power-enable系统进入深睡眠时会自动释放引脚以降低功耗——对 BLE 信标类电池产品很重要。pre_dt_board.cmake 中还追加了 DTC 编译选项压制 nRF52 地址空间中几个天然重叠寄存器区power/clock/bprot 同址、ACL/flash-controller 同址产生的unique_unit_address_if_enabled告警属于该 SoC 的已知特性而非板级错误。7. 默认内核配置与调试工具链acn52832_defconfig 内容很精简# Enable MPU CONFIG_ARM_MPUy # enable GPIO CONFIG_GPIOy # enable uart driver CONFIG_SERIALy # enable console CONFIG_CONSOLEy CONFIG_UART_CONSOLEy即默认打开 MPU、GPIO、UART 串口控制台。注意BLE 相关选项如CONFIG_BT并未默认使能若做 BLE 应用需在 prj.conf 中自行补充。board.cmake 声明了烧录 runner 参数board_runner_args(nrfjprog --nrf-familyNRF52) board_runner_args(jlink --devicenrf52 --speed4000) include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake) include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)因此west flash支持三种方式--runner nrfutil基于 Nordic nrfutil--runner nrfjprogfamily 自动设为 NRF52--runner jlinkdevicenrf52SWD 速度 4000 kHz。结合 Tag-Connect 的 SWDIO/SWDCLK/VCC/GND/RESET 五根焊点即可用任意 J-Link 兼容探针完成烧录与调试。8. 构建与烧录实操完成上述板级定义后最小构建流程如下以 hello_world 示例为例west build -b acn52832 samples/hello_world west flash -b acn52832 --runner jlink或指定 nrfjprogwest flash -b acn52832 --runner nrfjprog运行后在 P0.06/P0.07 对应的 115200 波特率串口中可看到控制台输出需要 shell 时开启CONFIG_SHELLyshell-uart 已指向 uart0。若目标是 BLE 应用可参考仓库中 snippets 与 samples/bluetooth 下的配置方式并在此板 defconfig 基础上叠加 BT 配置。9. 参考资料与延伸阅读板级文档boards/aconno/acn52832/doc/index.rstAconno 厂商板索引boards/aconno/index.rst设备树boards/aconno/acn52832/acn52832.dts、boards/aconno/acn52832/acn52832-pinctrl.dtsi板级元数据boards/aconno/acn52832/board.yml、boards/aconno/acn52832/acn52832.yaml默认配置boards/aconno/acn52832/acn52832_defconfig烧录脚本boards/aconno/acn52832/board.cmakeSoC 基线设备树dts/arm/nordic/nrf52832_qfaa.dtsi适用前提以上内容基于当前仓库中该板的提交状态ram: 64 / flash: 512为 KB 单位构建需按 Zephyr 官方文档准备 Zephyr SDKzephyr 工具链或 GNU Arm Embedded 工具链与 west 工作区具体版本要求以当前仓库构建文档为准。【免费下载链接】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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门