RIOT 板卡支持解析:Microchip SAM R34 Xplained Pro(SAMR34J18 LoRa SiP)评估板
RIOT 板卡支持解析Microchip SAM R34 Xplained ProSAMR34J18 LoRa SiP评估板【免费下载链接】RIOTRIOT - The friendly OS for IoT项目地址: https://gitcode.com/GitHub_Trending/riot/RIOT本篇技术指南以 RIOT 仓库中samr34-xpro板卡支持包为主线讲解 Microchip SAM R34 Xplained Pro 评估板的硬件构成、MCU 与外设规格并结合板级源码逐项剖析其 LoRa 射频接线、外设时钟/串口/SPI/I2C/ADC/USB 配置、LED 与按键的 SAUL 注册以及片外 NOR Flash 与 littlefs2 文件系统的挂载方式。读完本文你将掌握如何在 RIOT 中为该板卡启用网络、传感器与存储功能并能读懂一块 SAM0 系 LoRa 板卡的完整移植与配置脉络。概述一颗芯片内封装的 LoRa 节点SAMR34 Xplained Pro是 Microchip 出品的一款紧凑型评估板核心是一颗SAMR34J18 SoC。这颗 SoC 将SAML21 ARM Cortex-M0 微控制器与Semtech SX1276 868/915 MHz LoRa 兼容射频封装在同一个 SiPSystem-in-Package中是典型的低功耗 Sub-GHz 无线节点方案。在编程资源上MCU 提供40 KB RAM其中 32 KiB 主 RAM 8 KiB 电池备份 RAM与256 KB Flash足以承载 RIOT 内核、网络协议栈与 LoRa 驱动。该板卡对应的板级支持目录为 boards/samr34-xpro其官方描述与板卡命名规范定义见 boards/samr34-xpro/doc.md。硬件评估板与 WLR089 模块的兼容关系除SAMR34 Xplained Pro本体外Microchip 还推出了面向已通过无线电认证的 WLR089 模块的WLR089 Xplained Pro评估板。两块板在 RIOT 中共用同一套samr34-xpro板卡支持也就是说在编译时指定BOARDsamr34-xpro即可同时覆盖这两种硬件形态。WLR089 模块本身是 LoRa SiP 的模块化封装便于直接集成进最终产品。板卡的关键特征可归纳为板上集成 Semtech SX1276 收发器工作于 868/915 MHz Sub-GHz 频段射频前端带 32 MHz TCXO温度补偿晶振由 GPIO 单独供电控制板载一颗 AT25DF041B SPI NOR Flash4 Mbit用于数据存储或文件系统通过板载 EDBG 调试器提供虚拟串口与编程下载能力。MCU 规格一览下表完整摘录自板卡文档描述了 SAMR34J18B 的核心规格参数规格MCUSAMR34J18B内核家族ARM Cortex-M0厂商Atmel现属 MicrochipRAM32 KiB 8 KiB 电池备份 RAMFlash256 KiB主频最高 48 MHzFPU无定时器6 个3x TC支持 8/16/32 位3x TCC16 位ADC1 个 12 位8 通道UART最多 5 个与 SPI、I2C 复用引脚SPI最多 5 个引脚与 UART 复用I2C最多 5 个引脚与 UART 复用工作电压1.8V – 3.6V该表与源码一致CPU saml21、CPU_MODEL samr34j18b见 boards/samr34-xpro/Makefile.features对应 SoC 层实现在 cpu/saml21在 Kconfig 侧boards/samr34-xpro/Kconfig 通过config BOARD_SAMR34_XPRO勾选CPU_MODEL_SAMR34J18B保证make menuconfig配置流程与 Makefile 体系保持一致。RIOT 板卡支持结构feature 与依赖声明RIOT 的板卡支持遵循“Makefile 声明能力 源码提供实现”的约定。samr34-xpro的 feature 声明boards/samr34-xpro/Makefile.features列出了板卡对外提供的外设与功能CPU saml21 CPU_MODEL samr34j18b FEATURES_PROVIDED periph_adc FEATURES_PROVIDED periph_i2c FEATURES_PROVIDED periph_rtc FEATURES_PROVIDED periph_rtt FEATURES_PROVIDED periph_spi FEATURES_PROVIDED periph_timer FEATURES_PROVIDED periph_uart FEATURES_PROVIDED periph_usbdev FEATURES_PROVIDED netif FEATURES_PROVIDED riotboot FEATURES_PROVIDED tinyusb_deviceperiph_*系列表示 RIOT 外设驱动抽象periph API在该板上可用netif表示存在网络接口抽象由 SX1276 的 netdev 驱动提供riotboot表示支持 RIOT 的引导加载器方案便于远程固件升级tinyusb_device表示可启用 TinyUSB 设备栈USB CDC/DFU 等。依赖注入则集中在 boards/samr34-xpro/Makefile.dep一旦应用使用netdev_defaultRIOT 的默认网络模块集合板卡自动把sx1276驱动纳入编译使用saul_default时自动引入saul_gpioLED/按键的传感器抽象注册使用mtd时引入mtd_spi_nor片外 NOR Flash 驱动使用vfs_default时引入littlefs2与mtd即默认启用板载 Flash 上的文件系统。外设配置源码解析periph_conf.h板级外设的具体引脚、时钟与通道映射全部定义在 boards/samr34-xpro/include/periph_conf.h 中下面逐项展开。时钟与电源CLOCK_CORECLOCK定义为MHZ(48)即系统主频 48 MHzGCLK 参考速度USE_VREG_BUCK置 1启用片内 DC/DC 降压转换器——该板已焊接所需电感可显著降低运行功耗。定时器Timer板卡将 TC0、TC2 配置为两个 32 位定时器通道组供 RIOTperiph_timer使用每组 2 个通道中断分别映射到isr_tc0、isr_tc2。这与文档所述“3x TC8/16/32 位”的硬件能力一致板级按需暴露其中的两个。UART板卡声明了两个串口实例实例SERCOM引脚用途UART_0SERCOM0TXPA4, RXPA5EDBG 虚拟串口默认控制台UART_1SERCOM3TXPA16, RXPA17EXT1 扩展口两个实例均支持硬件流控模块periph_uart_hw_fc未接线时置为GPIO_UNDEF。注意 PA16/PA17 同时被 I2CSERCOM1复用这正是文档中“UART/SPI/I2C 引脚复用”的体现使用时需避免冲突。SPI板卡提供两路 SPISPI_DEV(0)SERCOM4内部专用直连 SX1276 LoRa 收发器MISOPC19、MOSIPB30、SCKPC18MUX 为 FSPI_DEV(1)SERCOM5EXT1/EXT3 扩展口与板载 NOR Flash 共用MISOPB2、MOSIPB22、SCKPB23。其中 SPI_DEV(0) 在使能 DMA 时启用 SERCOM4 的 DMAC 收发触发可减轻 CPU 负载SPI_DEV(1) 的 DMA 触发被显式禁用。I2CI2C 使用 SERCOM1SCLPA17、SDAPA16速率为I2C_SPEED_NORMAL100 kbit/sMUX 为 C。该总线可供 EXT1 扩展口上的传感器使用。RTC / RTTRTC 配置为使用外部 32.768 kHz 晶振EXTERNAL_OSC32_SOURCE1保证低功耗下时间基准的精度RTT实时定时器频率为 32768 HzRTT_FREQUENCY与 RTC 共用同一时基。ADCADC 使用默认 256 分频ADC_PRESCALER、内部参考电压INTVCC22 倍内部 VCC 参考并暴露两个输入通道PA06 与 PA07对应板载 A1/A2 位置可接电位器等模拟信号。这与文档“1x 12 位 ADC”的规格吻合。USBUSB 设备控制器通过 PA24DM、PA25DP引出MUX 为 GGCLK 使用 48 MHz 时钟源。结合 feature 中的tinyusb_device可构建 USB CDC虚拟串口、USB DFU固件升级等应用。LoRa 射频SX1276 的板级接线与初始化SX1276 的板级参数集中在 boards/samr34-xpro/include/board.h与 drivers/sx127x 驱动的参数结构严格对应#define SX127X_PARAM_SPI SPI_DEV(0) /** internal SPI */ #define SX127X_PARAM_SPI_NSS GPIO_PIN(1, 31) /** D10 */ #define SX127X_PARAM_RESET GPIO_PIN(1, 15) /** A0 */ #define SX127X_PARAM_DIO0 GPIO_PIN(1, 16) /** D2 */ #define SX127X_PARAM_DIO1 GPIO_PIN(0, 11) /** D3 */ #define SX127X_PARAM_DIO2 GPIO_PIN(0, 12) /** D4 */ #define SX127X_PARAM_DIO3 GPIO_PIN(1, 17) /** D5 */ #define SX127X_PARAM_PASELECT SX127X_PA_RFO /** no boost */NSS、RESET、DIO0–DIO3 分别接至 Arduino 兼容排针的 D10/A0/D2–D5方便对照丝印PASELECT选择SX127X_PA_RFO不使用 PA_BOOST 高功率路径对应低功耗 RFO 输出另有TCXO_PWR_PINPA9用于为射频 32 MHz TCXO 供电TX_OUTPUT_SEL_PINPA13用于频段选择BAND_SEL。这两路控制脚的初始化实现在 boards/samr34-xpro/board.c 的board_init()中使能 TCXO 供电并将 BAND_SEL 写成与SX127X_PARAM_PASELECT相反的电平以匹配射频前端选型。也就是说只要编译进sx1276模块板卡上电初始化阶段就会自动完成 LoRa 射频的板级供电与选频配置。LED、按键与 SAUL 注册板载资源在 boards/samr34-xpro/include/board.h 中定义资源引脚说明LED0PA18绿色 LED低电平点亮LED1PA19橙色 LED低电平点亮BTN0PA28SW0 按键上拉输入GPIO_IN_PULED 通过 PORT 寄存器组的 OUTCLR/OUTSET/OUTTGL 直接操作提供LED0_ON/OFF/TOGGLE、LED1_ON/OFF/TOGGLE宏。在使能saul_default时boards/samr34-xpro/include/gpio_params.h 会把LED(green)、LED(orange)与Button(SW0)注册为 SAUL 设备LED 带SAUL_GPIO_INVERTED | SAUL_GPIO_INIT_CLEAR标志从而可以通过 SAUL 命令行接口或 CoAP 传感器接口直接读写这些 GPIO。片外 NOR Flash 与文件系统板载 AT25DF041B4 Mbit SPI NOR Flash的驱动配置同样位于 boards/samr34-xpro/board.c挂在SPI_DEV(1)SERCOM5上片选 CSPA22SPI 模式 0时钟 16 MHz页大小 256 字节、每扇区 16 页支持 4K/32K/64K 扇区擦除SPI_NOR_F_SECT_4K | SPI_NOR_F_SECT_32K | SPI_NOR_F_SECT_64K擦除等待时间参数按数据手册填写通过MTD_XFA_ADD(_nor_dev, 0)注册为 RIOT MTD内存技术设备0 号设备即MTD_0若应用启用了vfs_default还会通过VFS_AUTO_MOUNT(littlefs2, VFS_MTD(_nor_dev), ...)自动把littlefs2 文件系统挂载为默认 NVM 存储——这意味着日志、配置或用户数据可以直接以文件方式读写无需额外初始化代码。编译与使用要点在任意 RIOT 应用目录下指定该板卡即可交叉编译make BOARDsamr34-xpro # 编译 make BOARDsamr34-xpro flash # 通过板载调试器烧写 make BOARDsamr34-xpro term # 打开串口终端虚拟串口结合上文依赖链不同应用场景会自动带上对应模块LoRa 网络应用使用netdev_default即自动包含sx1276驱动可配合gnrc_netif等网络层使用传感器/执行器应用使用saul_default即自动注册板上 LED 与按键存储应用使用mtd/vfs_default即自动启用 NOR Flash 与 littlefs2 文件系统USB 应用利用tinyusb_device实现 CDC/DFU 等功能。若需在菜单式配置界面中确认或调整模块可运行make BOARDsamr34-xpro menuconfig此时 Kconfig 中BOARD_SAMR34_XPRO会正确选择CPU_MODEL_SAMR34J18B及对应外设选项。小结samr34-xpro是 RIOT 中一条完整、自洽的 LoRa 板卡支持示例从 Makefile 的 feature/依赖声明到periph_conf.h的外设映射再到board.c中的射频供电与 NOR Flash 注册每一层都能在源码中找到明确对应。理解这块板卡的配置方式也就掌握了 SAM0 系saml21/samd21 等板卡与 LoRa SiP 集成的通用套路可以直接参考 boards/samr34-xpro 目录中的文件结构移植到自定义硬件。【免费下载链接】RIOTRIOT - The friendly OS for IoT项目地址: https://gitcode.com/GitHub_Trending/riot/RIOT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

/grill-me 执行失败?TaoToken 这样改 Cursor 模型通道

/grill-me 执行失败?TaoToken 这样改 Cursor 模型通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 18:47:31 阅读更多 →
OpenCode 调 GLM-5.1、DeepSeek-V4,通道改到 TaoToken 行不行?

OpenCode 调 GLM-5.1、DeepSeek-V4,通道改到 TaoToken 行不行?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 18:47:31 阅读更多 →
Scanpy 单细胞流程太散?用 TaoToken 给 Codex 换 Base URL 再调科研 Skill

Scanpy 单细胞流程太散?用 TaoToken 给 Codex 换 Base URL 再调科研 Skill

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 18:47:31 阅读更多 →

最新新闻

ESP IoT Solution USB ECM 主机驱动实战指南:让 ESP32 通过 USB 连接 4G 模组与以太网设备

ESP IoT Solution USB ECM 主机驱动实战指南:让 ESP32 通过 USB 连接 4G 模组与以太网设备

ESP IoT Solution USB ECM 主机驱动实战指南:让 ESP32 通过 USB 连接 4G 模组与以太网设备 【免费下载链接】esp-iot-solution Espressif IoT Library. IoT Device Drivers, Documentations and Solutions. 项目地址: https://gitcode.com/GitHub_Trending/es/esp…

2026/9/19 21:03:26 阅读更多 →
无人机集群嵌入式协同控制实战:轻量级分布式任务规划与确定性避障

无人机集群嵌入式协同控制实战:轻量级分布式任务规划与确定性避障

简介:本资源是一份面向机器人与智能无人系统领域研究者、嵌入式开发者及高校高年级本科生/研究生的深度技术文档,系统解决无人机集群协同控制中的分布式任务规划与编队避障两大核心难题。全文1114页,涵盖80个章节,内容从协同架构设…

2026/9/19 21:03:26 阅读更多 →
再生制动系统分析:物理边界、控制策略与回收率评估

再生制动系统分析:物理边界、控制策略与回收率评估

简介:这是一份针对电动汽车再生制动系统的专业分析文档,面向新能源汽车研发人员、车辆工程专业学生及技术爱好者,可作参考文献与专业指导。文档围绕驱动电机布置形式,系统梳理了中央电机式、轮边电机式与轮毂电机式三种结构的特点…

2026/9/19 21:03:26 阅读更多 →
oh-my-openagent 根级 typecheck gate:用 CI 固定复现隔离环境漂移与真实类型错误

oh-my-openagent 根级 typecheck gate:用 CI 固定复现隔离环境漂移与真实类型错误

oh-my-openagent 根级 typecheck gate:用 CI 固定复现隔离环境漂移与真实类型错误 【免费下载链接】oh-my-openagent OmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering. 项目地址: https://gitcode.c…

2026/9/19 21:03:26 阅读更多 →
使用 fairseq 训练判别式重排序模型 DrNMT:数据准备、训练与推理完整指南

使用 fairseq 训练判别式重排序模型 DrNMT:数据准备、训练与推理完整指南

使用 fairseq 训练判别式重排序模型 DrNMT:数据准备、训练与推理完整指南 【免费下载链接】fairseq Facebook AI Research Sequence-to-Sequence Toolkit written in Python. 项目地址: https://gitcode.com/gh_mirrors/fa/fairseq 导读 本文基于 fairseq 仓…

2026/9/19 21:03:26 阅读更多 →
MTM预定动作时间标准法:从TMU查表到产线平衡的工时计算指南

MTM预定动作时间标准法:从TMU查表到产线平衡的工时计算指南

简介:这份PPT资料系统讲解预定动作时间标准法MTM,面向工业工程、生产管理及精益改善方向的从业者与学习者,帮助解决作业时间估算、工作方法设计与标准时间设定等实际问题。压缩包内仅含1个PPT文件,大小约1.07MB,以图文…

2026/9/19 21:02:26 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →