基于RP2040/RP2350的DIY开源超声硬件

Hacker News Top 产品

摘要

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免责声明 本项目按“现状”提供,不附带任何明示或暗示的担保,包括但不限于适销性、满意质量和特定用途适用性的担保。 --- ## 目录

相似文章

用RP2350监视Z80

Hacker News Top

一篇博客文章,探讨如何使用带PIO的Raspberry Pi Pico RP2350来监视Z80微处理器的地址和数据总线,包括时序考虑和时钟速度限制。

RP2040 的 DMA 是图灵完备的(2023)

Lobsters Hottest

Cornell ECE4760 课程项目证明了 RP2040 微控制器的 DMA 子系统是图灵完备的,完全通过 DMA 通道操作构建了一个可运行的取指-执行 CPU,无需涉及 ARM 核心。

使用 Frigate 升级我的开源 Pi 监控服务器

Jeff Geerling

Jeff Geerling 使用 Exaviz Cruiser CM5 载板和 DeskPi 迷你机架外壳升级了他基于 Pi 的开源监控服务器,该服务器运行带有 Coral TPU 的 Frigate 以进行本地 AI 物体检测。