FEATURED · 精选文章

RIOT 支持 Seeeduino XIAO:板卡资源、外设配置与烧录实战指南

发布时间 / 2026/9/18 13:29:08
来源 / 创域科博编辑部
栏目 / 资讯中心
RIOT 支持 Seeeduino XIAO:板卡资源、外设配置与烧录实战指南 RIOT 支持 Seeeduino XIAO板卡资源、外设配置与烧录实战指南【免费下载链接】RIOTRIOT - The friendly OS for IoT项目地址: https://gitcode.com/GitHub_Trending/riot/RIOTSeeeduino XIAO 是 Seeeduino 家族中尺寸最小的开发板以低功耗 ATSAMD21G18A 微控制器为核心广泛用于可穿戴设备与小型 IoT 项目。本文以 RIOT 操作系统中该板卡的官方支持文档boards/seeeduino_xiao/doc.md为主体结合仓库内板级源码系统讲解其硬件资源、引脚布局、外设配置原理并给出完整的编译烧录流程与 bootloader 故障处理方案。读完本文你将掌握在 RIOT 下为 Seeeduino XIAO 编写、编译、烧录固件以及手动进入 Arduino bootloader 的完整技能。板卡概览最小的 Seeeduino 成员Seeeduino XIAO 搭载 Atmel ATSAMD21G18A-MUARM Cortex-M0 内核48 MHz 主频在保持较强处理能力的同时实现了极低的功耗需求。得益于拇指大小的紧凑 PCB 设计它可以方便地嵌入可穿戴设备和各类小型原型项目中。该板卡的核心硬件能力可归纳如下14 个 GPIO 引脚其中可复用为 11 个数字接口、11 个模拟接口10 路 PWM 输出D1–D101 路 DAC 输出D0 引脚12 位1 个 SWD 焊盘接口用于调试与程序烧录1 个 I2C 接口、1 个 SPI 接口、1 个 UART 接口板载 LED 指示灯电源Power绿色、用户/闪烁灯L黄色、串口收发指示灯RX 蓝色、TX 蓝色1 个 USB Type-C 接口同时承担供电与程序下载功能2 个复位引脚RST短接即可复位板卡。在 RIOT 仓库中该板卡支持信息由 boards/seeeduino_xiao/Makefile.features 声明CPU samd21、CPU_MODEL samd21g18a并对外提供highlevel_stdio、periph_adc、periph_i2c、periph_rtc、periph_rtt、periph_spi、periph_timer、periph_uart、periph_usbdev等外设特性供构建系统自动解析模块依赖。引脚布局与板载 LED 映射板卡丝印引脚号与底层 GPIO 的对应关系在 RIOT 中由板级头文件精确固化。根据 boards/seeeduino_xiao/include/board.h三个板载 LED 的物理映射如下宏定义引脚丝印名称颜色LED0_PINPA18LED(BLUE_RX)蓝色RX 指示LED1_PINPA19LED(BLUE_TX)蓝色TX 指示LED2_PINPA17LED(YELLOW_USER)黄色用户/闪烁灯 L三者均提供LEDn_ON、LEDn_OFF、LEDn_TOGGLE操作宏。从实现看LED 为低电平点亮通过OUTCLR置亮、OUTSET熄灭因此 boards/seeeduino_xiao/include/gpio_params.h 中为三个 LED 配置 SAUL GPIO 注册项时均标记了SAUL_GPIO_INVERTED标志保证saul上层语义与物理电平一致。若在应用中启用saul_default模块这些 LED 会自动暴露为可操作的 GPIO 设备依赖关系见 boards/seeeduino_xiao/Makefile.dep。此外board.h 还声明了 USB 设备描述符所用的厂商/产品 IDVID0x239A、PID0x0057以及BOOTLOADER_UF2 1标识该板卡采用 UF2 引导协议由预装的 Arduino bootloader 提供。时钟与外设配置源码解读板级外设的具体管脚分配、时钟源与工作模式全部集中在 boards/seeeduino_xiao/include/periph_conf.h是编写驱动与应用时最直接的参考资料。核心时钟默认 PLL 48 MHzperiph_conf.h提供两种核心时钟方案PLL 方案默认CLOCK_USE_PLL 1由内部 8 MHz 振荡器驱动 PLL频率更稳定、抖动更小。核心频率计算公式为CORECLOCK ((PLL_MUL 1) * 1MHz) / PLL_DIV。默认配置CLOCK_PLL_MUL 47、CLOCK_PLL_DIV 1得到 48 MHz 主频。注意 PLL 电路工作区间为 32–96 MHz因此CLOCK_PLL_MUL必须取值 31–95。直连内部振荡器方案CORECLOCK 8MHz / CLOCK_DIV功耗略优但时钟稳定性较差且不建议将主频降至 1 MHz 以下仅适合熟悉时钟树的开发者按需调整。常用外设管脚分配速查表外设总线实例管脚分配丝印备注UARTSERCOM4TXPB8D4、RXPB9D5默认串口控制台/stdioSPISERCOM0MOSIPA6D10、MISOPA5D9、SCKPA7D8支持 DMA 触发MODULE_PERIPH_DMAI2CSERCOM2SDAPA8D4、SCLPA9D5默认I2C_SPEED_NORMAL标准速度ADC—PA02、PA04–PA09、PB08、PB09共 9 通道默认 1x 增益、内部 1V 基准、DIV512预分频RTT——32.768 kHzUSBDEVICED- PA24、D PA25复用功能 MUX_G定时器方面板卡提供 2 个定时器TC316 位用于系统时钟ztimer与TC432 位均可在 PLL 模式下选用 1 MHz 时钟源。中断映射为TIMER_0_ISR isr_tc3、TIMER_1_ISR isr_tc4。说明上述各表项均取自 periph_conf.h 的timer_config[]、uart_config[]、spi_config[]、i2c_config[]、adc_channels[]、sam_usbdev_config[]数组供驱动层通过periphAPI 使用。在 RIOT 中编译与烧录固件基本命令Seeeduino XIAO 在 RIOT 构建系统中通过板名seeeduino_xiao标识编译与烧录统一使用makemake BOARDseeeduino_xiao -C examples/basic/default flash该命令会先编译examples/basic/default示例应用再通过 USB 完成烧录。-C指定应用目录BOARDseeeduino_xiao指定目标板卡。烧录链路BOSSA Arduino Bootloader从板级构建文件可以清晰还原烧录实现路径boards/seeeduino_xiao/Makefile.include 引入了samdx1-arduino-bootloader公共模块与sam0.inc.mk串口与备用编程器处理boards/common/samdx1-arduino-bootloader/Makefile.include 声明默认编程器为BOSSAPROGRAMMER ? bossa并设置ROM_OFFSET ? 0x2000以跳过 Arduino bootloader 占用的引导区同时启用BOSSA_ARDUINO_PREFLASH yes预烧录握手与PREFLASH_DELAY ? 22 秒延时boards/common/samdx1-arduino-bootloader/Makefile.dep 表明当应用启用usbus_cdc_acmUSB CDC-ACM 串口时会引入boards_common_samdx1-arduino-bootloader与usb_board_reset模块——这正是 RIOT 能够通过 USB 自动复位进入 bootloader的基础。因此使用默认配置stdio 走 USB CDC-ACM时make flash会自动向板卡发出复位命令并进入引导流程无需人工干预。自动复位的前提条件自动触发 bootloader 复位仅在 RIOT 固件仍正常运行时有效。如果应用已经崩溃、被擦除或处于异常状态make flash将无法通过软件方式复位板卡此时必须手动操作。手动进入 Bootloader 与故障恢复手动进入引导模式用短线或镊子短接板卡背面的两个 RST 引脚松开后板卡进入 Arduino bootloader判断成功的标志橙色 LED用户灯 L先闪烁、随后常亮。进入 bootloader 后板卡以 UF2 引导设备的形式呈现在 USB 总线上即可接受 BOSSA 烧录。烧录失败卡在 Bootloader 的处理实际使用中烧录可能因板卡繁忙、USB 状态异常而失败导致板卡停留在 bootloader 状态橙色灯常亮。处理方式很简单等待设备不再忙碌后重新执行一次make flashmake BOARDseeeduino_xiao -C examples/basic/default flash若反复失败可先拔插 USB 使设备重新枚举确认系统识别出引导设备后再重试。小结与进一步阅读Seeeduino XIAO 在 RIOT 中属于开箱即用的板卡官方文档boards/seeeduino_xiao/doc.md给出了从编译到烧录的完整路径而板级源码则揭示了底层时钟、外设管脚分配与 BOSSA/UF2 引导细节。开发者只需要记住两条核心命令——正常烧录用make flash依赖 USB 自动复位异常时短接 RST 手动进引导区后重试即可。如需深入了解可继续阅读板卡外设与 LED 定义boards/seeeduino_xiao/include/board.h、boards/seeeduino_xiao/include/periph_conf.h烧录与依赖机制boards/common/samdx1-arduino-bootloader/Makefile.include、boards/common/samdx1-arduino-bootloader/Makefile.dep同系列 ATSAMD21 板卡配置可对比 boards/serpente 与 boards/seeedstudio-xiao-nrf52840 等目录。【免费下载链接】RIOTRIOT - The friendly OS for IoT项目地址: https://gitcode.com/GitHub_Trending/riot/RIOT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻