基于RP2040/RP2350的DIY开源超声硬件
摘要
pic0rick是一款基于RP2040/RP2350微控制器的开源超声采集板,为DIY超声成像提供了一种低成本的替代方案,替代基于FPGA的设计。
暂无内容
查看缓存全文
缓存时间: 2026/05/14 21:27
# pic0rick
来源: http://un0rick.cc/pic0rick
GitHub repo sizeGitHub language countGitHub top languageGitHub last commit
Slack (https://join.slack.com/t/usdevkit/shared_invite/zt-2g501obl-z53YHyGOOMZjeCXuXzjZow)Patreon (https://www.patreon.com/kelu124)Kofi (https://ko-fi.com/G2G81MT0G)
## http://un0rick.cc/pic0rick#the-pic0rickpic0rick
pic0rick 是当前 un0rick 系列中推荐的开发板。它用 RP2040/RP2350 微控制器取代了基于 FPGA 的设计,在成本和复杂度都大幅降低的同时提供可比的超声采集性能——无需 FPGA 工具链或专用硬件知识。
**刚接触这个项目?**
从[入门指南](http://un0rick.cc/getting-started)开始,按步骤从开箱到第一次回波成像。
pic0rick 组装图
---
## http://un0rick.cc/pic0rick#specifications规格参数
| 参数 | 值 |
|------|-----|
| **微控制器** | RP2040(双核 Cortex-M0+,133 MHz)。也支持 RP2350 |
| **ADC** | 60 Msps,10 位分辨率 |
| **TGC 放大器** | AD8331 — 7.5 dB 至 55.5 dB 可变增益 |
| **TGC 控制** | MCP4812 SPI DAC |
| **脉冲生成** | 通过 MD1210 + TC6320 的三电平脉冲(位于脉冲 PMOD 板上) |
| **脉冲电压** | ±25 V(通过高压生成板) |
| **输入保护** | 接收路径的 HV 限幅 |
| **PMOD 连接器** | 1× 单(脉冲),1× 双(VGA、MUX、PSRAM 或定制) |
| **数据接口** | USB(串行) |
| **PIO 使用** | PIO0:采集时序,PIO1:VGA 输出(如果连接) |
| **电源** | USB 总线供电 |
| **设计文件** | KiCad(开源) |
| **固件** | 用于 RP2040 的 C/C++ — 类似 Arduino 的开发环境 |
| **认证** | OSHWA 开源硬件认证,编号 FR000023 (https://certification.oshwa.org/fr000023.html) |
---
## http://un0rick.cc/pic0rick#system-architecture系统架构
pic0rick 是一个模块化的三板系统:
**主板** — 系统的核心。包含 RP2040 微控制器、60 Msps 10 位 ADC、带 SPI 控制增益曲线的 AD8331 TGC 放大器,以及接收路径的 HV 输入保护。主板承载两个 PMOD 连接器和 USB 接口。
**脉冲板**(单 PMOD)— 代表主板生成发射脉冲。使用一对 MD1210 + TC6320 产生三电平脉冲。需要 HV 板提供高压电源。
**HV 板** — 一个简单的 ±25V 生成板,插入脉冲板。提供脉冲生成所需的高压轨。
信号链工作原理如下:
```
RP2040 → PIO 触发脉冲 → 脉冲板 → 换能器 → 回波返回
→ HV 限幅(保护)→ AD8331 TGC → 60 Msps ADC → RP2040 → USB → 计算机
```
RP2040 的两个 PIO 单元用于精确时序:一个驱动采集序列(脉冲触发 + ADC 采样),另一个可驱动 VGA 输出用于实时可视化——将两个 Cortex-M0+ 核心留给您自己的应用程序代码。
---
## http://un0rick.cc/pic0rick#how-does-it-replace-the-fpga它是如何取代 FPGA 的?
之前的板卡(un0rick、lit3rick)使用 Lattice iCE40 FPGA 来实现脉冲-回波序列的精确时序控制。pic0rick 使用 RP2040 的可编程输入/输出(PIO)状态机达到了相同的时序精度。PIO 程序以系统时钟速率确定性运行,提供超声采集所需的亚微秒级时序——无需 HDL 知识或 FPGA 综合工具。
这意味着您可以通过在标准的类似 Arduino 环境中编辑 C 代码来修改采集时序、脉冲模式和采样参数,而无需编写 Verilog 或 VHDL 并运行综合工具链。
---
## http://un0rick.cc/pic0rick#pmod-extensionsPMOD 扩展
双 PMOD 连接器支持多种扩展板:
| 扩展板 | 功能 |
|--------|------|
| **VGA 输出** | 在 VGA 显示器上实时显示采集结果 — 使用 PIO1 |
| **MUX 板** | 多路复用器,用于驱动多个换能器 — 支持阵列成像和合成孔径 |
| **PSRAM** | 额外内存,用于更长的采集缓冲区 |
| **定制** | PMOD 引脚定义已文档化 — 可设计自己的扩展板 |
注意:PMOD 排针除了标准信号外还包含一个 5V 电源轨,因此它们并不严格符合 PMOD 规范——但这允许直接为更耗电的扩展板供电。
更多细节请参见[扩展板页面](http://un0rick.cc/pmods)。
---
## http://un0rick.cc/pic0rick#board-comparison板卡对比
pic0rick 与较旧的 un0rick 系列板卡相比如何?
| | **pic0rick** | [un0rick](https://un0rick.cc/un0rick) | [lit3rick](https://un0rick.cc/lit3rick) | [lit3-32](https://un0rick.cc/lit3-32) |
|---|---|---|---|---|
| **状态** | **活跃** | 遗留 | 遗留 | 遗留 |
| **年份** | 2024–至今 | 2018–2025 | 2020–2024 | 2021–2024 |
| **控制器** | RP2040 / RP2350 | iCE40 HX4K/HX8K | iCE40 UP5K | iCE40 UP5K |
| **类型** | 微控制器 | FPGA | FPGA | FPGA |
| **ADC 速度** | 60 Msps | 最高 64 Msps | 最高 64 Msps | 最高 64 Msps |
| **ADC 分辨率** | 10 位 | 10 位 | 10 位 | 10 位 |
| **TGC 放大器** | AD8331(48 dB 范围) | AD8331(48 dB 范围) | AD8331(48 dB 范围) | AD8332(92 dB 范围) |
| **板载高压** | 否(独立板) | 是 | 否 | 否 |
| **外形尺寸** | 紧凑 + PMOD | 大型单板 | RPi pHAT | RPi pHAT |
| **编程** | C/C++(类似 Arduino) | Verilog + Python | Verilog + Python | Verilog + Python |
| **需要 FPGA** | 否 | 是 | 是 | 是 |
| **可扩展性** | PMOD 连接器 | 有限 | RPi GPIO | RPi GPIO |
| **成本** | 最低 | 中等 | 低 | 中等–高 |
| **最适合** | 新项目、教育、快速原型开发 | 需要完整 FPGA 灵活性的用户 | RPi 集成方案 | 弱信号检测(高增益) |
**对于新项目,我们推荐 pic0rick**,除非您特别需要 FPGA 级别的时序控制或 lit3-32 的 92 dB 增益范围。
---
### http://un0rick.cc/pic0rick#example-of-acquisition采集示例
典型的采集结果如下图所示——左侧的大尖峰是发射脉冲,右侧较小的峰值是来自目标的反射:
采集示例图
---
## http://un0rick.cc/pic0rick#the-pic0rick-alongside-older-boardspic0rick 与旧板卡并存
姐妹板卡
---
## http://un0rick.cc/pic0rick#source-files源文件
所有设计文件均为开源:
- **硬件(KiCad)**:主板、脉冲板、HV 板 — 位于 [pic0rick 仓库](https://github.com/kelu124/pic0rick/)
- **固件**:RP2040 C/C++ 源代码 — 位于 `software/` 目录
- **文档**:基于 CC BY-SA 3.0 发布
---
## http://un0rick.cc/pic0rick#get-one获取方式
- **购买组装版**:可在 [Tindie](https://www.tindie.com/stores/kelu124/) 购买
- **自行制作**:所有 KiCad 文件和 BOM 都在 [GitHub 仓库](https://github.com/kelu124/pic0rick/) 中
- **有问题?** 请通过 [Slack](https://join.slack.com/t/usdevkit/shared_invite/zt-2g501obl-z53YHyGOOMZjeCXuXzjZow) 联系或发送邮件至 [[email protected]](mailto:[email protected])
---
## http://un0rick.cc/pic0rick#thank-you-to致谢
- Abdelrahman
- Lap
---
## http://un0rick.cc/pic0rick#license许可证
本作品基于三个之前的 TAPR 项目: [echOmods 项目](https://github.com/kelu124/echomods/)、 [un0rick 项目](https://doi.org/10.5281/zenodo.377054) 和 [lit3rick 项目](https://doi.org/10.5281/zenodo.5792245) —— 它们的板卡均为开源硬件和软件,并尽可能使用开源元件开发。
© Luc Jonveaux ([[email protected]](mailto:[email protected])) 2024
- 硬件根据 TAPR 开源硬件许可证(www.tapr.org/OHL)授权
- 软件组件是自由软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证(许可证第 3 版或(您选择的)任何更高版本)重新分发和/或修改它们
- 文档根据 [知识共享署名-相同方式共享 3.0 未移植许可证](http://creativecommons.org/licenses/by-sa/3.0/) 授权
## http://un0rick.cc/pic0rick#disclaimer免责声明
本项目按“现状”提供,不附带任何明示或暗示的担保,包括但不限于适销性、满意质量和特定用途适用性的担保。
---
## 目录
相似文章
DSPi:一款为树莓派 Pico(RP2040)和 Pico 2(RP2350)量身打造的全功能音频 DSP 固件
DSPi 是一款开源固件,可将树莓派 Pico 变身为全功能数字音频处理器,支持房间校正、参数均衡器、矩阵混音等功能。
用RP2350监视Z80
一篇博客文章,探讨如何使用带PIO的Raspberry Pi Pico RP2350来监视Z80微处理器的地址和数据总线,包括时序考虑和时钟速度限制。
RISCBoy 是一款从零开始设计的开源便携游戏机
RISCBoy 是一款开源便携游戏机,采用 RISC-V CPU 和光栅图形流水线,基于 iCE40 FPGA 实现。该项目包含处理器设计、图形硬件、PCB 布局,并且完全开源。
RP2040 的 DMA 是图灵完备的(2023)
Cornell ECE4760 课程项目证明了 RP2040 微控制器的 DMA 子系统是图灵完备的,完全通过 DMA 通道操作构建了一个可运行的取指-执行 CPU,无需涉及 ARM 核心。
使用 Frigate 升级我的开源 Pi 监控服务器
Jeff Geerling 使用 Exaviz Cruiser CM5 载板和 DeskPi 迷你机架外壳升级了他基于 Pi 的开源监控服务器,该服务器运行带有 Coral TPU 的 Frigate 以进行本地 AI 物体检测。