尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Zephyr 中的 Adafruit KB2040 板级支持:RP2040 开发板的硬件特性、引脚映射与 UF2 烧录实战

发布时间:2026/9/14 21:03:00

资讯中心
01
ARTICLE

Zephyr 中的 Adafruit KB2040 板级支持:RP2040 开发板的硬件特性、引脚映射与 UF2 烧录实战

Zephyr 中的 Adafruit KB2040 板级支持:RP2040 开发板的硬件特性、引脚映射与 UF2 烧录实战
Zephyr 中的 Adafruit KB2040 板级支持RP2040 开发板的硬件特性、引脚映射与 UF2 烧录实战【免费下载链接】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 仓库内 Adafruit KB2040 板卡文档boards/adafruit/kb2040/doc/index.rst为主体系统介绍这块基于 Raspberry Pi RP2040 芯片的小尺寸低成本开发板的硬件规格、Zephyr 默认外设映射、支持的驱动特性以及其独有的 UF2 拖拽烧录流程。读完本文你将掌握如何在 Zephyr 中为 KB2040 构建应用、通过 BOOTSEL 进入烧录模式完成免调试器烧录并能结合板级 DTS 与 pinctrl 源码理解引脚复用的底层实现。▲ Adafruit KB2040 开发板图片来自 boards/adafruit/kb2040/doc/img/kb2040.jpg板载 RP2040 主控、USB Type-C 接口与 BOOT/RST 按键。概述一块为键盘而生的 RP2040 小板Adafruit KB2040 是 Adafruit 推出的一款小巧、低成本、多用途的开发板搭载 Raspberry Pi RP2040 SoC板载 RGB NeoPixel 灯珠、USB 连接器与 STEMMA QT 连接器。其名称中的 “KB” 表明它面向键盘Keyboard类应用设计特别适合机械键盘改装、宏键盘、HID 外设等场景。最突出的特点是它没有引出 SWD 调试引脚而是依赖板载 USB 引导程序UF2 bootloader实现免适配器的拖拽式drag-and-drop烧录——无需任何外部调试器即可完成固件更新。在 Zephyr 中该板卡的标识符identifier为adafruit_kb2040完整板级支持代码位于 boards/adafruit/kb2040/包含设备树源文件、引脚复用配置、默认 defconfig 与 CMake 烧录脚本属于官方维护的 Raspberry Pi Pico 生态板卡之一。硬件规格RP2040 的全部家底根据板卡文档的 Hardware 章节KB2040 的核心硬件配置如下项目规格处理器双核 Arm Cortex-M0最高运行频率 133 MHzSRAM264 KB 片上 SRAMFlash8 MB 板上 QSPI Flash支持 XIP片上执行GPIO18 个 GPIO 引脚模拟输入4 路 ADC 输入UART1 个 UART 外设SPI1 个 SPI 控制器I2C2 个 I2C 控制器其一经 STEMMA QT 连接器引出PWM16 个 PWM 通道USBUSB 1.1 控制器支持 host/devicePIO8 个可编程 I/OPIO状态机用于自定义外设其他板载 RGB LED、1 个看门狗定时器外设其中 8 MB QSPI Flash 的实际分区布局可以从板级设备树 adafruit_kb2040.dts 中得到验证flash0的reg被声明为0x10000000起始、大小DT_SIZE_M(8)并划分为两个分区——偏移0x0处大小为0x100256 字节的只读second_stage_bootloader分区用于存放 Pico 第二阶段引导程序以及紧随其后的code_partitionpartition100即 8 MB 减去引导程序占用后的可烧录代码区。支持的特性Supported Features板卡文档通过.. zephyr:board-supported-hw::指令自动汇总本板支持的外设硬件。对应的机器可读清单定义在板级 YAML 文件 adafruit_kb2040.yaml 中supported列表明确列出uart、gpio、adc、i2c、spi、hwinfo、watchdog、pwm、flash、dma、counter、clock即 Zephyr 官方确认 KB2040 板级配置中可直接使用的驱动类型覆盖了串口、GPIO、模拟采集、I2C/SPI 总线、硬件信息、看门狗、PWM、Flash、DMA、计数器与时钟控制基本涵盖了 RP2040 在 Zephyr 中已实现的主要外设。板卡类型为mcu架构为armflash 8192 KB、RAM 264 KB支持的工链为 zephyr 与 gnuarmemb。从板级 adafruit_kb2040_defconfig 可以看到默认启用的内核配置项这也是这些特性“开箱即用”的底层保证CONFIG_SERIALy CONFIG_UART_INTERRUPT_DRIVENy CONFIG_CONSOLEy CONFIG_UART_CONSOLEy CONFIG_RESETy CONFIG_CLOCK_CONTROLy CONFIG_USE_DT_CODE_PARTITIONy CONFIG_BUILD_OUTPUT_UF2y其中CONFIG_USE_DT_CODE_PARTITIONy让链接脚本把代码链接到设备树中定义的code_partition保证应用写入 8 MB Flash 中正确的偏移而CONFIG_BUILD_OUTPUT_UF2y则让构建产物默认生成.uf2格式固件与板载 USB 引导程序配套。引脚映射Pin MappingRP2040 的外设可通过引脚复用pinmux路由到板上不同引脚这种路由关系在 Zephyr 中通过设备树DTS配置修改。板卡文档给出 KB2040 的默认 Zephyr 外设映射如下外设信号引脚UART0_TXP0UART0_RXP1I2C1_SDAP2I2C1_SCLP3SPI0_RXP20SPI0_SCKP18SPI0_TXP19这一默认映射在 adafruit_kb2040-pinctrl.dtsi 中有逐条对应的实现uart0_defaultUART0_TX_P0输出与UART0_RX_P1带input-enablei2c1_defaultI2C1_SDA_P2、I2C1_SCL_P3均启用输入使能spi0_defaultSPI0_TX_P19、SPI0_RX_P20输入使能、SPI0_SCK_P18adc_defaultADC 通道 0~3 分别路由到 P26、P27、P28、P29ws2812_pio0_default通过 PIO0 状态机驱动 P17用于板载 RGB NeoPixel。对应地adafruit_kb2040.dts 中这些外设均被置为status okay并绑定上述 pinctrl 组其中 UART0 默认波特率 115200SPI0 时钟频率 8 MHzI2C1 采用I2C_BITRATE_FAST400 kHz快模式。需要特别说明的是KB2040 的引脚排布兼容 SparkFun Pro Micro 引脚布局sparkfun_pro_micro_connector.dtsi 通过compatible sparkfun,pro-micro的 connector 节点建立了 D0~D21 逻辑引脚与 RP2040 物理 GPIO 之间的映射关系如 D18/A0 → GPIO26、D19/A1 → GPIO27 等同时把pro_micro_i2c、pro_micro_spi、pro_micro_serial分别别名到i2c1、spi0、uart0便于沿用 Pro Micro 习惯的扩展板代码直接运行。编程与调试Programming and Debugging为什么只能走 UF2KB2040没有引出 SWD 引脚因此无法使用常规的 SWD 调试器烧录。唯一的烧录途径是 UF2 文件。Zephyr 为该板配置的烧录运行器正是uf2见 board.cmakeboard_runner_args(uf2 --board-idRPI-RP2) include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)--board-idRPI-RP2对应 RP2040 引导程序在主机上呈现的卷标这也是 Pico 系列板卡的标准标识。使用 UF2 烧录Flashing默认情况下为该板构建应用会在build/zephyr/目录下生成zephyr.uf2文件由CONFIG_BUILD_OUTPUT_UF2y保证。烧录步骤非常直观构建固件使用 west 或 cmake 构建目标板应用例如west build -b adafruit_kb2040 samples/hello_world构建完成后检查build/zephyr/zephyr.uf2是否生成。进入烧录模式按住板上的BOOTSEL按键给 KB2040 上电或按住 BOOTSEL 的同时按下复位松开后板卡会在主机上以**大容量存储设备mass storage device**的形式出现卷标为RPI-RP2。拖拽烧录将zephyr.uf2文件直接**拖拽drag-and-drop**到该设备上板载引导程序会自动完成写入并重启烧录即告完成。这种方式完全不需要外接调试器或 USB 转串口烧录工具也无需安装额外驱动因而在快速迭代原型、现场更新固件时非常便捷。若在已进入引导模式的前提下使用 west 的烧录命令也可以执行west flashwest 会调用 uf2 runner 将zephyr.uf2拷贝到目标卷标设备。调试与串口控制台由于无法使用 SWD 调试器日常调试主要依赖串口输出。板卡默认把 UART0P0 TXP1 RX115200 波特率作为 Zephyr console 与 shell 输出通道这一点在设备树的chosen节点中有明确声明chosen { zephyr,console uart0; zephyr,shell-uart uart0; ... };将 USB 转 TTL 模块接入 P0/P1 即可在终端中查看内核日志与 shell 交互也可以结合板载 USB 控制器zephyr_udc0: usbd启用 USB CDC ACM 控制台方案。需要留意的是该板默认USB_SELF_POWEREDn见 Kconfig.defconfig即按总线供电处理。板级实现要点速览结合板卡文档与仓库源码可以把 KB2040 在 Zephyr 中的实现要点总结如下关注点配置位置关键内容板卡标识Kconfig.adafruit_kb2040BOARD_ADAFRUIT_KB2040并select SOC_RP2040Flash 分区adafruit_kb2040.dts8 MB QSPI256 B 引导分区 code 分区引脚复用adafruit_kb2040-pinctrl.dtsiUART0/I2C1/SPI0/ADC/WS2812 默认引脚组烧录方式board.cmakeuf2 runner--board-idRPI-RP2默认 Kconfigadafruit_kb2040_defconfig串口/控制台/复位/时钟/UF2 输出Pro Micro 兼容sparkfun_pro_micro_connector.dtsiD0~D21 与 RP2040 GPIO 的 gpio-map板载 RGB LED 在设备树中定义为一个worldsemi,ws2812-rpi_pico-pio节点由 PIO0 状态机在 P17 引脚驱动chain-length 1、数据速率 800 kHz、复位延时 280 周期并通过aliases { led-strip ws2812; }暴露别名应用层可直接使用 LED Strip API 控制灯珠颜色实现状态指示或流光效果。结语Adafruit KB2040 在 Zephyr 中的支持是“免调试器开发”的典型范例得益于 RP2040 的 USB 引导程序与 UF2 格式开发者只需把构建出的zephyr.uf2拖拽进板卡的RPI-RP2卷即可完成烧录。本文所涉及的板卡文档、设备树、引脚复用、defconfig 与烧录脚本均可在 boards/adafruit/kb2040/ 目录下逐一查阅结合 RP2040 数据手册即可自由修改引脚路由适配你自己的键盘或外设项目。【免费下载链接】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),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。