Zephyr 中的 BeagleConnect Freedom 开发板:CC1352P7 双频无线 SoC 的入门指南
【免费下载链接】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 官方仓库中 BeagleConnect Freedom 开发板支持文档,介绍这款基于 TI SimpleLink 多协议无线 MCU CC1352P7 的物联网开发板的硬件构成、引脚功能、Zephyr 板级支持现状以及烧录环境搭建。读完本文,你将掌握 BeagleConnect Freedom 的引脚分配与各外设(UART、I2C、SPI、PWM、ADC、IEEE 802.15.4、BLE)在 Zephyr 下的使用方法,并能通过west flash完成固件烧录。
板卡概述
BeagleConnect Freedom 是 BeagleBoard.org 推出的一款无线物联网开发板,核心是 TI 的 SimpleLink 多协议 CC1352P7 无线 MCU。它是 BeagleConnect 系列首款发售的解决方案,出厂即预编程、开箱即用,由一个板卡和一个外壳组成。
从 Zephyr 的角度看,BeagleConnect Freedom 板卡运行 Zephyr RTOS,并带有两个 mikroBUS 端口以及 BLE 与 Sub-GHz 双频段无线电:
- 48 MHz Arm Cortex-M4F SoC(CC1352P7)
- 蓝牙低功耗(BLE)与IEEE 802.15.4无线连接
- 两个 mikroBUS 扩展端口,可对接海量 Click 扩展板
- 板载TI MSP430F5503 微控制器,用作 USB 转串口桥接器与 GPIO 扩展器
注意版本差异:Rev C5 是预量产版本,使用 TI CC1352P MCU;Rev C7 是量产版本,使用 TI CC1352P7。仓库中为两个版本分别维护了对应的设备树与 defconfig(见下文「版本与构建目标」)。
支持的 Zephyr 特性
Zephyr 为 BeagleConnect Freedom 提供的板级支持覆盖了该板卡的主要外设。以量产版 CC1352P7 为例,板卡 YAML 元数据 中明确列出的受支持子系统包括:
| 功能 | 说明 |
|---|---|
| gpio | GPIO 输入输出 |
| i2c | I2C 总线(含板载传感器与 MSP430 桥接器) |
| spi | SPI 总线(板载 SPI Flash 与 mikroBUS 端口) |
| uart | UART 串口(控制台) |
| hwinfo | 硬件信息读取 |
| adc | 模拟采样通道 |
| pwm | PWM 输出 |
| flash | Flash 存储与分区管理 |
这些特性在 beagleconnect_freedom-common.dtsi 中逐一以status = "okay"形式使能,例如:
- UART0 / UART1:均配置为 115200 波特率。UART0 面向带 MSP430 的一侧(远离电池座),UART1 面向带电池座的一侧,设备树中已为两者分配了 pinctrl 引脚。
- I2C0:以
I2C_BITRATE_FAST(400 kbit/s)运行,通过 GPIO DIO14 控制的gpio-i2c-switch为板载传感器供电,总线上挂载了 TI OPT3001 光照传感器(地址 0x44)与 TI HDC2010 湿度传感器(地址 0x41),并挂载了beagle,usbbridge(MSP430,地址 0x4)。 - SPI0:三个片选分别对应板载 SPI Flash(GD25Q16C,2 MiB,
jedec,spi-nor)以及 mikroBUS 端口 1、2。 - IEEE 802.15.4(
ieee802154g):被选为zephyr,ieee802154,即 Zephyr 网络栈的默认 802.15.4 设备。 - ADC0:预配置了 MB1 AN、MB2 AN、SCL、SDA、MB2 CS、MB1 CS 共 6 个 12 位采样通道。
- PWM0 / PWM1:分别映射到 mikroBUS 端口 1(DIO17)与端口 2(DIO19)的 PWM 引脚。
板载 LED 与按键也通过标准 Zephyr 抽象暴露:led0(DIO18,2.4 GHz 收发指示)与button0(DIO15,BOOT 按键,低电平有效并带上拉),并通过aliases提供mcuboot-button0、watchdog0等别名。
引脚连接与功能
下面完整列出 BeagleConnect Freedom 的引脚功能分配(含正反两面标注图):
| Pin | Function | Usage |
|---|---|---|
| DIO5 | RST_MB2 | Reset mikroBUS port 2 |
| DIO6 | RST_MB1 | Reset mikroBUS port 1 |
| DIO7 | INT_SENSOR | On-board sensor interrupts |
| DIO8 | FLASH_CS | SPI flash chip-select |
| DIO9 | SDO / PICO | SPI serial data output |
| DIO10 | SCK | SPI serial clock |
| DIO11 | SDI / POCI | SPI serial data input |
| DIO12 | CC1352_RX | UART RXD mikroBUS port 1 or MSP430 |
| DIO13 | CC1352_TX | UART TXD mikroBUS port 1 or MSP430 |
| DIO14 | I2C_CTRL | Enable on-board sensor I2C bus |
| DIO15 | USER_BOOT | BOOT button status |
| DIO16 | INT_MB1 | INTERRUPT PIN on mikroBUS port 1 |
| DIO17 | PWM_MB1 | PWM PIN on mikroBUS port 1 |
| DIO18 | LED_LINK | Radio link indicator LED |
| DIO19 | PWM_MB2 | PWM PIN on mikroBUS port 2 |
| DIO20 | INT_MB2 | INTERRUPT PIN on mikroBUS port 2 |
| DIO21 | MB2_RX | UART RXD on mikroBUS port 2 |
| DIO22 | MB2_TX | UART TXD on mikroBUS port 2 |
| DIO23 | AN_MB1 | ANALOG PIN on mikroBUS port 1 |
| DIO24 | AN_MB2 | ANALOG PIN on mikroBUS port 2 |
| DIO25 | SCL | I2C SCL |
| DIO26 | SDA | I2C SDA |
| DIO27 | CS_MB2 | SPI CS on microBUS port 2 |
| DIO28 | CS_MB1 | SPI CS on microBUS port 1 |
| DIO29 | REF_SW_CTRL1 | Antenna mux PA enable |
| DIO30 | REF_SW_CTRL2 | Antenna mux SubG enable |
将这些引脚与设备树/pinctrl 对照,可以看到完整的映射关系(见 beagleconnect_freedom-pinctrl.dtsi):
- UART0:TX=DIO13、RX=DIO12(
IOC_PORT_MCU_UART0_TX/RX),对应 mikroBUS 端口 1 或 MSP430 桥。 - UART1:TX=DIO22、RX=DIO21(
IOC_PORT_MCU_UART1_TX/RX),对应 mikroBUS 端口 2。 - I2C0:SCL=DIO25、SDA=DIO26,配置为开漏输出与上拉;休眠状态下两个引脚切回普通 GPIO。
- SPI0:SCK=DIO10、MOSI=DIO9、MISO=DIO11,片选为 DIO8(Flash)、DIO28(MB1)、DIO27(MB2)。
- PWM:DIO17 复用为
IOC_PORT_MCU_PORT_EVENT1,DIO19 复用为IOC_PORT_MCU_PORT_EVENT3,两者驱动强度设置为 2。
天线开关与双频段射频路径
BeagleConnect Freedom 板载一个 SKY13317-373LF 天线开关,用于根据当前使用的 PHY 选择正确的射频通路。设备树(beagleconnect_freedom-common.dtsi)中记录的真值表如下:
| Path | DIO29 | DIO30 |
|---|---|---|
| Off | 0 | 0 |
| Sub-1 GHz | 0 | 1(DIO30 复用为 IOC_PORT_RFC_GPO0 自动控制) |
| 20 dBm TX | 1 | 0(DIO29 复用为 IOC_PORT_RFC_GPO3 自动控制) |
其实现位于 board_antenna.c:通过RFCC26XX_hwAttrs的globalCallback挂接 TI 射频驱动的全局事件回调,订阅RF_GlobalEventRadioSetup与RF_GlobalEventRadioPowerDown事件。当收到 Radio Setup 事件时,回调解析命令中的loDivider判断是否为 Sub-1 GHz 模式,并结合发射功率表类型(是否 High PA)调用pinctrl_apply_state切换三组 pinctrl 状态之一(default/ant_subg/ant_subg_pa),从而自动选择 2.4 GHz 或 Sub-GHz 天线通路。该逻辑由CONFIG_CC13X2_CC26X2_HAS_CUSTOM_RF_HWATTRS使能,板级初始化优先级通过 Kconfig 中的BOARD_ANTENNA_INIT_PRIO(默认 70)控制,要求大于设备初始化优先级且小于 IEEE 802.15.4 Sub-GHz 驱动的初始化优先级。
Flash 分区布局
BeagleConnect Freedom 采用 MCUboot 引导方案,内部 Flash 与外部 SPI Flash 均定义了分区(见 beagleconnect_freedom_cc1352p7.dts):
- 内部 Flash:
boot_partition(mcuboot,56 KiB)+slot0_partition(image-0,640 KiB),并刻意避开 CCFG 配置区。 - 外部 SPI Flash(GD25Q16C,2 MiB):
slot1_partition(image-1,640 KiB)+scratch_partition(image-scratch,128 KiB,用于镜像交换)+storage_partition(storage,1280 KiB)。
早期 CC1352P 版本(Rev C5)分区较小:mcuboot 40 KiB、应用槽 304 KiB、scratch 16 KiB、storage 1728 KiB(见 beagleconnect_freedom_cc1352p.dts)。
系统要求与固件烧录
前置条件
使用west flash烧录 Zephyr 固件前,需要安装cc1352-flasher工具:
pip3 install cc1352-flasher烧录集成方式定义在 board.cmake 中:构建系统通过find_program查找cc1352_flasher可执行文件,并将 flasher 设置为misc-flasher,同时附加--bcf(BeagleConnect Freedom)参数,因此完成安装后即可直接执行:
west build -b beagleconnect_freedom@C7/cc1352p7 samples/hello_world west flash版本与构建目标
BeagleConnect Freedom 在 board.yml 中声明了两种 SoC 与两个修订版本(C5/C7,采用自定义精确匹配格式)。对应的构建目标为:
beagleconnect_freedom@C5/cc1352p—— 预量产版,TI CC1352Pbeagleconnect_freedom@C7/cc1352p7—— 量产版,TI CC1352P7
两者共享同一份beagleconnect_freedom-common.dtsi,仅 SoC 头文件、分区布局与 defconfig 有所区别。量产版 defconfig 的关键配置包括:
CONFIG_GPIO=y CONFIG_BUILD_OUTPUT_HEX=y # 天线开关自定义射频回调 CONFIG_CC13X2_CC26X2_HAS_CUSTOM_RF_HWATTRS=y # 启用 MCUboot 引导与 BOOT 按键后门 CONFIG_CC13X2_CC26X2_BOOTLOADER_ENABLE=y CONFIG_CC13X2_CC26X2_BOOTLOADER_BACKDOOR_ENABLE=y CONFIG_CC13X2_CC26X2_BOOTLOADER_BACKDOOR_PIN=15 # MPU 与硬件栈保护 CONFIG_ARM_MPU=y CONFIG_HW_STACK_PROTECTION=y # 默认 UART 控制台 CONFIG_SERIAL=y CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y # 晶振电容阵列补偿 CONFIG_CC13X2_CC26X2_XOSC_CAPARRAY_DELTA=0x02值得留意的是,该 defconfig 启用了硬件栈保护与 MPU,适合作为学习 Zephyr 安全特性的实际参考;同时通过 BOOT 按键(DIO15)实现 MCUboot 后门进入方式。
小结与延伸阅读
BeagleConnect Freedom 是 Zephyr 支持较为完整的双频无线开发板:双 mikroBUS 端口让外设扩展灵活,CC1352P7 的 BLE + IEEE 802.15.4 + Sub-GHz 能力配合板载天线开关可覆盖多种物联网场景。在 Zephyr 仓库中,你可以继续深入阅读以下资源:
- 板级设备树:beagleconnect_freedom-common.dtsi、beagleconnect_freedom_cc1352p7.dts
- 引脚复用:beagleconnect_freedom-pinctrl.dtsi
- 天线开关实现:board_antenna.c
- 板级 Kconfig 与构建集成:Kconfig、board.cmake
- 板卡元数据:board.yml、beagleconnect_freedom_cc1352p7_C7.yaml
【免费下载链接】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),仅供参考