RP2040-Decoder解码器

RP2040-Decoder 是一款基于树莓派 RP2040 双核微控制器开发的低成本开源 DCC 解码器,作为商用 DCC 解码器的高性价比替代方案,采用 25x20mm 紧凑板卡尺寸,集成 DCC 协议解码、指令解析与电机控制功能,核心适用于铁路模型机车的 DCC 信号处理与运动控制场景。

RP2040-Decoder解码器封面
jf_269329432026-03-06 09:47:09CERN Open Hardware License
211
Star

PCBA

设计文件

KiCad图标RP2040-Decoder-main.zip5.43MB

EDA查看器

复制嵌入代码

详细介绍

一、核心产品定位

RP2040-Decoder 是一款基于树莓派 RP2040 双核微控制器开发的低成本开源 DCC 解码器,作为商用 DCC 解码器的高性价比替代方案,采用 25x20mm 紧凑板卡尺寸,集成 DCC 协议解码、指令解析与电机控制功能,核心适用于铁路模型机车的 DCC 信号处理与运动控制场景。

二、技术规格

项目

参数

主控平台

Raspberry Pi RP2040(双 ARM Cortex-M0 + 核心)

硬件设计工具

KiCad

核心功能

DCC 信号解码、128 级电机速度控制、CV 配置管理、可编程 I/O 拓展

DCC 解码标准

兼容 NMRA(S-9.1、S-9.2.x)、RCN(210、212、216)DCC 核心标准

电机控制

128 速度步级,支持可配置加 / 减速斜坡、v_min/v_mid/v_max 调节;闭环控制 + PID 算法 + 反电动势反馈

I/O 配置

4 路晶体管开关输出、6 路额外 GPIO,所有 I/O 均支持 PWM 功能

板卡尺寸

25x20 mm

存储方式

闪存持久化存储 Configuration Variable (CV) 配置参数

固件烧录方式

SWD 烧录(通用);UF2 拖放式烧录 + 串口日志(USB 版本)

硬件版本

USB 版本、Legacy 无 USB 版本

三、核心功能与状态指示

核心特性

  • 高性能 DCC 解码:基于中断的边沿检测,实现完整的 DCC 数据包 / 协议解码,精准解析铁路模型 DCC 控制指令;

  • 高精度电机控制:搭载离散时间 PID 电机控制器,通过 PWM 关断周期的 ADC 采样实现反电动势反馈,结合增益调度与前馈启动控制器,克服静摩擦,实现变负载下的电机速度稳定;

  • 灵活的 I/O 拓展:多路 PWM 兼容的开关输出与通用 GPIO,支持铁路模型各类外设的拓展控制,满足个性化 DIY 需求;

  • 完善的 CV 配置:支持功能映射与编程轨道(服务模式),可灵活配置设备参数,适配不同模型控制需求;

  • 双核任务分工:Core 0 负责信号处理与配置管理,Core 1 专注运动控制,双核独立工作提升设备运行效率;

  • 双硬件版本可选:USB 版本兼顾易用性,Legacy 版本适配极简装配场景,满足不同用户的硬件使用需求;

  • 标准化文档支持:集成 GitHub Pages 全量文档,覆盖硬件原理与软件实现,降低开发与使用门槛;

  • 开源可复刻:提供完整的硬件设计与软件源码,支持二次开发、硬件复刻与功能定制。

状态指示

暂未提及硬件状态指示灯相关设计与功能说明。

四、核心操作指南

硬件版本选择

  • USB 版本:优化易用性,推荐新手 / 快速部署场景使用,支持 UF2 拖放式固件烧录,可通过串口实现日志查看与调试;

  • Legacy 版本:无 USB 接口,采用单面装配设计,适配轻量化 / 嵌入式场景,仅支持 SWD 方式进行固件烧录。

CV 配置与服务模式操作

  • 设备支持 NMRA/RCN 标准的编程轨道(服务模式)逻辑,可通过编程轨道完成 CV 参数的读写与配置;

  • 支持自定义功能映射,可根据铁路模型的控制需求,将 DCC 指令与设备 I/O、电机控制功能进行关联配置;

  • CV 配置参数通过闪存持久化存储,掉电后不会丢失,无需重复配置。

电机控制参数配置

  • 可灵活设置电机 128 速度步级的加 / 减速斜坡曲线,适配不同模型机车的运动特性;

  • 支持 v_min/v_mid/v_max 速度阈值调节,精准控制电机启停与运行速度区间;

  • 闭环控制功能默认启用,可根据负载情况适配 PID 控制器参数,保证变负载下的速度稳定。

五、安装与连接要点

  • 硬件装配:USB 版本为常规双面装配,Legacy 版本为单面装配,复刻硬件时需严格遵循项目 KiCad 设计文件的器件选型与焊接规范;

  • 模型机车连接:将板卡接入铁路模型机车的 DCC 信号接收端与电机控制端,确保接线接触良好,避免短路导致设备损坏;

  • 拓展 I/O 连接:外部外设接入 GPIO / 晶体管开关输出时,需匹配器件的额定电气参数,避免过流、过压损坏设备;

  • 烧录前检查:烧录固件前确认硬件版本与固件包匹配,USB 版本需保证 USB 接口连接正常,Legacy 版本需完成 SWD 调试接口的接线;

  • 开源硬件复刻:复刻硬件时需遵循对应开源协议,保留项目源码与版本标识,板卡可直接在 KiCad 中打开编辑设计文件。

六、固件开发(How to build the firmware)

项目提供完整的软件源码与 CI 流水线构建的预编译固件,支持基于 RP2040 平台的二次开发与固件定制,核心步骤:

  1. 搭建 RP2040 嵌入式开发环境,导入项目Software文件夹下的源码,适配双核 ARM Cortex-M0 + 的开发与编译规范;

  2. 根据功能需求修改固件,如调整 DCC 解码参数、优化 PID 电机控制算法、新增 I/O 功能映射、定制 CV 配置项等;

  3. 编译固件源码,生成可烧录的二进制文件,或直接使用项目 CI 流水线在每次版本发布时构建的现成可烧录固件;

  4. 选择对应烧录方式:通用 SWD 烧录(适配所有版本);USB 版本可直接通过文件管理器将 UF2 格式固件拖放至设备,完成一键烧录;

  5. 烧录完成后重启设备,设备将默认加载 DCC 解码与电机控制功能,可通过编程轨道完成 CV 参数的个性化配置。

七、故障排查(Troubleshooting)

项目暂未提供官方明确的故障排查专项方案,若使用过程中出现问题,可参考以下解决方向:

  • DCC 信号解码异常:检查 DCC 信号接线是否正常,确认设备兼容当前使用的 NMRA/RCN DCC 标准,核对 CV 配置参数是否匹配信号解析需求;

  • 电机控制失灵 / 速度不稳:检查电机与板卡的连接是否松动,重新校准 PID 控制器参数与速度阈值(v_min/v_mid/v_max),确认模型机车负载是否超出设备控制范围;

  • 固件烧录失败:确认硬件版本与固件包匹配,USB 版本检查 USB 连接与驱动是否正常,Legacy 版本核对 SWD 调试接口接线与烧录工具配置;

  • I/O 拓展无输出:检查外设接线与电气参数匹配性,确认 PWM/GPIO 功能映射的 CV 配置是否正确,排查外设本身故障;

  • 更多问题支持:可查看项目 GitHub 仓库的 Issues 板块与更新文档,或参与开源社区讨论获取解决方案。

License

CERN Open Hardware Licence

项目地址

https://github.com/gab-k/RP2040-Decoder