恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Zephyr 板级支持详解:Google Twinkie V2 电源分析仪参考板(STM32G0B1REI6)
首页
资讯中心
/
Zephyr 板级支持详解:Google Twinkie V2 电源分析仪参考板(STM32G0B1REI6)
Zephyr 板级支持详解:Google Twinkie V2 电源分析仪参考板(STM32G0B1REI6)
发布时间:2026/9/17 11:59:41
Zephyr 板级支持详解Google Twinkie V2 电源分析仪参考板STM32G0B1REI6【免费下载链接】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 RTOS 仓库中的官方板级文档 boards/google/twinkie_v2/doc/index.rst 为主体结合该板卡的设备树、默认配置与烧录脚本系统讲解 Google Twinkie V2 这块专用于 USB Power DeliveryPD协议分析的参考板的硬件资源、引脚映射、外设初始化与烧录调试方法。读完本文你将掌握如何为google_twinkie_v2目标编译、烧录 Zephyr 应用并理解其 CC 引脚电压/电流采样链路与 UCPD 控制器在设备树中的配置方式。板卡概述面向 USB PD 协议分析的参考设计Google Twinkie V2board 标识符google_twinkie_v2是 Google 推出的 Power Delivery AnalyzerPDA电源传输分析仪Twinkie V2 的参考板属于 Zephyr 官方支持的 MCU 类型板卡。它被设计用来在线侦听、分析 USB Type-C 链路中的 Power Delivery 通信与电源信号因此在硬件上集中了 CCConfiguration Channel缓冲、VBUS 电压读取、电流采样放大CSA等测量通道并集成了 STM32G0 系列的 UCPDUSB Type-C Power Delivery外设可直接接入 Type-C 链路进行协议层面的观察与分析。从 boards/google/twinkie_v2/board.yml 可以看到该板卡的官方元数据字段值identifiergoogle_twinkie_v2full nameTwinkie V2vendorgoogleSoCstm32g0b1xxarcharm默认工具链zephyrZephyr SDK、gnuarmemb硬件核心STM32G0B1REI6板载主控为 STMicroelectronics 的STM32G0B1REI6ARM Cortex-M0 内核STM32G0B1xx 系列其关键资源容量在 boards/google/twinkie_v2/google_twinkie_v2.yaml 中有明确记录RAM144 KBFlash512 KB该系列 MCU 内置 USB Type-C / Power Delivery 控制器UCPD这正是 Twinkie V2 作为 PD 分析仪的核心硬件基础。板级 Kconfig 在 boards/google/twinkie_v2/Kconfig.google_twinkie_v2 中通过select SOC_STM32G0B1XX将该板卡绑定到 STM32G0B1 系列 SoC 的 Zephyr 支持实现上。支持的特性该板卡在 Zephyr 中的可支持特性由 boards/google/twinkie_v2/doc/index.rst 中的zephyr:board-supported-hw指令自动从板级 Kconfig 生成主要包括GPIO默认配置已启用见 boards/google/twinkie_v2/google_twinkie_v2_defconfig 中的CONFIG_GPIOyARM MPU内存保护单元默认配置启用CONFIG_ARM_MPUy为运行在 Cortex-M0 上的固件提供基础内存保护ADC5 路模拟采样通道用于 CC 电压、VBUS 电压与电流采样UCPDUSB Type-C Power Delivery设备树中已使能ucpd1外设独立看门狗 IWDG设备树中已使能。默认外设引脚映射boards/google/twinkie_v2/doc/index.rst 给出了板卡的默认 Zephyr 外设映射结合设备树 boards/google/twinkie_v2/google_twinkie_v2.dts 可得到完整对应关系信号引脚ADC 通道 / 功能CC1_BUFPA1ADC1_IN1CC2_BUFPA3ADC1_IN3VBUS_READ_BUFPB11ADC1_IN15CSA_VBUSPC4ADC1_IN17CSA_CC2PC5ADC1_IN18UCPD CC1PA8UCPD1_CC1UCPD CC2PB15UCPD1_CC2LED0红PC8GPIO 输出低电平有效LED1绿PB6GPIO 输出低电平有效LED2蓝PB7GPIO 输出低电平有效DFU 检测PA14GPIO 输入低电平有效 上拉ADC 测量通道的完整配置设备树中adc1节点对上述 5 路通道做了完整配置boards/google/twinkie_v2/google_twinkie_v2.dtsadc1 { #address-cells 1; #size-cells 0; pinctrl-0 adc1_in1_pa1 /* CC1_BUF */ adc1_in3_pa3 /* CC2_BUF */ adc1_in15_pb11 /* VBUS_READ_BUF */ adc1_in17_pc4 /* CSA_VBUS */ adc1_in18_pc5 /* CSA_CC2 */; pinctrl-names default; st,adc-clock-source SYNC; st,adc-prescaler 4; status okay; ... };所有通道统一采用增益 1 倍ADC_GAIN_1、内部参考电压ADC_REF_INTERNAL、参考电压 3300 mV、默认采集时间、12 位分辨率。ADC 时钟源为同步模式SYNC预分频为 4。测量链路的传感器节点Twinkie V2 的测量能力由设备树中四个传感器节点体现它们通过 Zephyr 的 ADC 传感器 API 将原始 ADC 采样转换为物理量CC 引脚电压缓冲高阻分压cc1_buf: cc1buf { compatible voltage-divider; io-channels adc1 1; output-ohms 2000000000; };cc1_buf、cc2_buf采用voltage-divider兼容节点输出电阻高达 2 GΩ属于极高阻缓冲用于在不影响 Type-C 链路的前提下读取 CC1/CC2 上的电压。VBUS 电压读取vbus_read_buf: vbusv { compatible voltage-divider; io-channels adc1 15; output-ohms 68000; full-ohms (2000000 68000); };VBUS 读取通过 2 MΩ 68 kΩ 电阻分压网络实现full-ohms与output-ohms给出分压比用于将 ADC 采样值还原为真实的 VBUS 电压。电流采样放大器CSAcsa_vbus: vbusc { compatible current-sense-amplifier; io-channels adc1 17; sense-resistor-milli-ohms 3; sense-gain-mult 100; }; csa_cc2: vconc { compatible current-sense-amplifier; io-channels adc1 18; sense-resistor-milli-ohms 10; sense-gain-mult 25; };csa_vbus采样电阻 3 mΩ、增益 100 倍用于 VBUS 电流测量csa_cc2采样电阻 10 mΩ、增益 25 倍用于 CC2 电流测量。这些节点通过aliases暴露为vcc1、vcc2、vbus、cbus、ccon应用层可直接通过别名引用对应测量通道。UCPD 控制器与时钟配置PD 协议分析的核心是 UCPD 外设设备树中已完整使能ucpd1 { status okay; psc-ucpdclk 1; hbitclkdiv 27; pinctrl-0 ucpd1_cc1_pa8 ucpd1_cc2_pb15; pinctrl-names default; };时钟方面板卡使用 HSI 内部高速时钟经 PLL 倍频最终系统时钟为 64 MHzpll { div-m 1; mul-n 8; div-p 2; div-q 2; div-r 2; clocks clk_hsi; status okay; }; rcc { clocks pll; clock-frequency DT_FREQ_M(64); ahb-prescaler 1; apb1-prescaler 1; };同时使能了独立看门狗iwdgstatus okay为长时间运行的测量固件提供看门狗保护。板载 LED 与 DFU 检测按键设备树中还定义了三个低电平有效的板载 LED红/绿/蓝分别位于 PC8、PB6、PB7以及一个gpio-keys节点dfudetect其引脚 PA14 默认上拉、低电平触发硬件上并非独立按键——文档注释明确指出需要短接 TP5 与 TP6 测试点来触发 DFU 检测。该按键事件通过zephyr,code INPUT_KEY_0映射为输入事件码。编译应用针对该板卡编译 Zephyr 应用与 Zephyr 其他板卡完全一致使用west build指定 board 参数即可west build -b google_twinkie_v2 应用源码目录板卡标识符google_twinkie_v2同时支持 Zephyr SDKzephyr与 GNU ARM Embedded 工具链gnuarmemb两种构建方式具体取决于本地安装的 SDK 配置。构建时 Zephyr 会依据 boards/google/twinkie_v2/google_twinkie_v2_defconfig 自动启用 GPIO 与 ARM MPU。烧录Flashing板卡支持dfu-util与J-Link两种烧录方式官方文档明确说明Build application as usual for thegoogle_twinkie_v2board, and flash using dfu-util or J-Link烧录参数在 boards/google/twinkie_v2/board.cmake 中定义board_runner_args(dfu-util --pid0483:df11 --alt0 --dfuse) board_runner_args(stm32cubeprogrammer --portswd --resethw) board_runner_args(jlink --deviceSTM32G0B1RE --speed4000) include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake) include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)其中 dfu-util 使用 STM32 系统 Bootloader 的 USB DFU 模式PID0483:df11--dfuse参数针对 ST DFU 协议--alt0选择 DFU 接口J-Link 则以 4000 kHz 速度连接设备型号STM32G0B1RE。J-Link 烧录通常需要配合板卡上的 DFU/调试切换逻辑如短接 TP5/TP6 进入 DFU 模式。对应的烧录命令# 使用 dfu-util west flash -r dfu-util # 使用 J-Link west flash -r jlink调试Debugging官方文档指出调试使用SWD 接口配合 J-Link 或 ST-Link调试器。由于 STM32G0B1 支持标准的 SWD 调试接口开发者可以直接使用west debug -r jlink # 或 west debug -r stlink亦可使用 STM32CubeProgrammer 通过 SWD 端口连接board.cmake中已配置--portswd --resethw。结合默认开启的CONFIG_ARM_MPUy在调试时需要注意内存保护区域对访问的约束。测试约束boards/google/twinkie_v2/google_twinkie_v2.yaml 中的testing.ignore_tags配置了net与bluetooth两类测试标签表示该板卡不参与 Zephyr 的网络与蓝牙相关测试——这也符合其定位作为 USB PD 分析工具主要面向电源/协议测量场景而非无线连接场景。小结Google Twinkie V2 是 Zephyr 生态中面向 USB Power Delivery 分析场景的典型参考板主控 STM32G0B1REI6144 KB RAM / 512 KB FlashCortex-M0 平台通过设备树完整配置了 CC1/CC2/VBUS 电压缓冲、电流采样放大器和 UCPD1 控制器支撑 PD 链路在线分析默认启用 GPIO 与 ARM MPU系统时钟 64 MHz并开启独立看门狗支持 dfu-utilUSB DFU与 J-LinkSWD两种烧录路径调试则使用 J-Link 或 ST-Link 的 SWD 接口。如需在自己的应用中复用其测量链路可直接参考 boards/google/twinkie_v2/google_twinkie_v2.dts 中voltage-divider与current-sense-amplifier节点的参数组织方式将物理量换算逻辑与 ADC 通道配置一并移植到目标设计。【免费下载链接】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),仅供参考