CH32H417 16 通道 200MHz 逻辑分析仪
项目名称:USB3.0 逻辑分析仪(16 通道 200 MHz,CH32H417 版,作者 elctr0 / 团队账号 Q2H2)
项目类型:其他延伸类目 —— 逻辑分析仪 / 混合信号采集前端(数字 16 通道 @ 200 MHz 连续采样,外加 2 通道 @ 20 Msps 模拟采样)
项目图片:
硬件平台:单芯片方案 —— 全部时序与采样都由一颗沁恒 CH32H417QEU6(QFN-128,双核青稞 RISC-V,V5F 400 MHz + V3F 160 MHz,896 KB SRAM / 960 KB Flash)承担,没有 FPGA、没有外挂 EEPROM;板上另有三颗辅助芯片:CH9441P(Type-C 正反插自适应 USB3.0 模拟开关)、CH2003K(DCDC + LDO 二合一电源)、GS8626(双运放模拟前端)
开源状态:已提供原理图(EDA 专业版工程源文件,单页 A3 图幅,本文文末 📐 小节按功能区块贴出)|PCB 已提供(4 层、1.2 mm 板厚、3313 层压结构)|固件与上位机全部开源(MCU 侧 IAP + APP 两个工程,PC 端 U3LogicAnalyzer 源码,均以工程附件形式给出)|3D 打印外壳与亚克力面板设计文件开源|GPL 3.0
核心亮点:
16 通道 200 MHz 是连续采样,不是打折扣的「抓一段停一段」。作者在工程页里专门回应过评论区的疑问:16 通道下满血 200 MHz 不缩水,降低通道数也不会把采样率抬上去。之所以敢这么说,是因为主控内部有一条 32 位宽、125 MHz 的通用高速接口 UHSIF(折算约 500 MB/s),16 路逻辑信号直接挂在这条并口上,由芯片内部时钟连续采样后经 USB3.0 上传 —— 上位机能连续记录多久,只取决于 PC 内存(作者举例:64 GB 主机、16 通道下可连续采 16 s)
不用电平转换芯片就能吃 1.2 V ~ 5 V。第一层靠 UHSIF 的 I/O 独立供电脚 VIO18:芯片默认用内部 LDO 给这组 I/O 供 1.8 V,把内部 LDO 断开后可以从外部灌 1.2 ~ 3.3 V,输入阈值就跟着这个电压走;高于 3.3 V 的电平(比如 5 V 逻辑)则统一用 3.3 V 阈值去判。第二层是这颗 VIO18 电源本身可编程:CH2003K 里的同步 BUCK 负责产生它,而 BUCK 的 FB 分压点被主控的 DAC 经一只 27 kΩ 电阻插了一脚(DAC1 输出,原理图上的 FB 网络),改 DAC 输出就等于改反馈比例,实测可调范围 1.0 V ~ 3.3 V,触发阈值随之在 0.8 V ~ 2.3 V 之间连续可调
「附赠」了一路模拟采样:主控内部的 HSADC 是 10 位、最高 20 Msps 的双通道高速 ADC。前端用 GS8626 的两个单元各做一路单位增益缓冲,前面是一个 ±0.1% 的精密分压(上臂 330 kΩ、下臂 620 kΩ),衰减比 620/(330+620) = 0.6526,把 0 ~ 5 V 压进 0 ~ 3.26 V。数字采样与模拟采样可以同时用,电脑上开两个软件即可
USB3.0 侧只花了一颗模拟开关:CH9441P 是 4 路双向二选一(2:1 MUX),内置 CC 引脚识别和 2.7 V ~ 29 V 的 Type-C 高压 LDO,带宽 5 GHz(可过 6 Gbps 差分),控制信号电平独立于供电电压 —— 正反插自适应就靠它,不需要额外的 MCU 干预
作者自己做了一张横向对比表:开源平台上逻辑分析仪方案按 USB 速度排序 —— CY7C68013(USB2.0 / 480 Mbps)20 个方案做 8 ch @ 24 MHz;CYUSB3014(USB3.0 / 5 Gbps)1 个方案做 16 ch @ 100 MHz;RP2040(USB1.1 / 12 Mbps)13 个方案做 24 ch @ 100 MHz;RP2350 1 个方案做 24 ch @ 200 MHz。后两者的高采样率都是非连续的,瓶颈正是 USB 接口本身
上位机是站在 PulseView 肩膀上的:PC 软件 U3LogicAnalyzer 基于经典开源软件 PulseView 改良,2.0 版新增滚动采集模式、解码表格搜索、CAN-FD 解码、WS2812 解码显示优化,ADC 页支持电平触发、波形保存、插值平滑与衰减比/偏移设置
平台数据:浏览 32978 / 收藏 451 / 点赞 249 / 评论 570 / 投票 49,平台标记「高质量」,平台给出的复现成本 ¥40;创建 2026-05-26,最近更新 2026-10-12(对应 2.0 版硬件与软件),协作者 8 人
推荐理由:本连载走过示波器、万用表、LCR 表、可调电源、电子负载、EMI 探头、时频计量、可编程电阻箱、纳伏级噪声前端,逻辑分析仪只出现过一次(09-07 的 RP2040 24 通道方案,非连续采样),而这三件事要同时做到「高采样率、长时间连续、不用 FPGA」,此前一直没人交过完整答案。这一期值得占一天,有三个理由。第一,它把「为什么做不出来」这件事讲清楚了:200 MHz × 16 通道 × 1 bit = 400 MB/s 的裸数据率,USB2.0 高速(480 Mbps,实测约 40 MB/s)差了一个数量级,USB1.1 全速(12 Mbps,约 1 MB/s)更是差了将近四百倍 —— 所以 RP2040/RP2350 那两套只能「板载先存、事后上传」,看起来 200 MHz 很猛,实际是抓一小段停下来传。只有 USB3.0 的 5 Gbps 才够,而要在单个芯片里同时拥有 USB3.0 PHY 和一条能直接吃 16 路 200 MHz 的并行接口,这个组合在国产 MCU 里目前只有沁恒这一条路。第二,电平自适应做得很巧:绝大多数逻辑分析仪要支持多电平就得加电平转换芯片或者干脆只认 3.3 V,这台机器用「UHSIF 的 I/O 单独供电 + 一颗 DCDC 的反馈点被 DAC 牵着走」两招解决,原理图上一只 27 kΩ 电阻就交代完了。第三,它是一份能直接复现的完整交付:原理图、PCB、双工程固件、上位机源码、3D 外壳与亚克力面板全部给出,BOM 逐行可查、板上物料合计 ¥38.13(其中主控一颗就占 ¥24),与平台标注的复现成本 ¥40 基本吻合 —— 这个价格买到 16 ch @ 200 MHz 连续采样,比买成品便宜一个数量级。要说清楚的是:它的输入暂时没有做高压保护(作者自己写在工程页里),而且模拟采样的两个通道因为 DMA 不能动态切换、实际上不能同时工作。
📋 项目简介
逻辑分析仪的原理不复杂:把被测系统的若干根数字线同时抓下来,按时间排开,看谁在什么时候翻转。真正的难点全在「抓得动」这三个字上 —— 采样率、通道数、以及把数据搬出机器的带宽,三者乘起来才是真正的指标。
200 MHz 采样率、16 通道同时抓,意味着每秒产生 3.2 G 个采样点;每个点只有 1 bit,裸数据率就是 400 MB/s。这个数字决定了上传接口的选择:USB2.0 高速理论上 480 Mbps(约 60 MB/s),实测能稳跑的大概 40 MB/s,离 400 MB/s 差了整整一个数量级;USB1.1 全速只有 12 Mbps(约 1 MB/s),比 USB2.0 又低了四十倍、离需求差近四百倍。所以此前那些「24 通道 200 MHz」的开源方案,本质上是把数据先写进片内 RAM 或外部 SRAM,抓一小段再停下来传 —— 采样率数字很漂亮,但没法连续观察。
这台机器的做法是把「并行采」和「高速传」都交给同一颗芯片。CH32H417 内部有一条 32 位宽、125 MHz 的 UHSIF 通用高速接口,本来就是给高速外设并口准备的,这里直接拿来做 16 路逻辑采样;采到的数据经片内缓冲、由 USB3.0(5 Gbps)控制器上传。整个板子只有四颗芯片:主控 CH32H417、Type-C 正反插模拟开关 CH9441P、电源 CH2003K、模拟前端运放 GS8626。
信号一边进来就做了两件事。 16 路逻辑输入从板上一颗 1.27 mm 间距的 40 针母座 CN1 进来,每一路先过「1 kΩ 并联 7 pF」:串阻 1 kΩ 限流,7 pF 在 200 MHz 处的阻抗只有约 113 Ω,等于在高频段把串阻旁路掉 —— 既留了保护,又不让边沿被 RC 拖慢。到这 16 个节点的网络名是 UFP0 ~ UFP15,一路进主控的 UHSIF 引脚,另一头各挂一只 1 MΩ 到地(四颗 8 脚排阻 RN1 ~ RN4,每颗内部 4 只电阻),输入悬空时把电平钉住,不至于乱跳。
逻辑阈值是可编程的,这是这台机器最巧的一块。 UHSIF 的 I/O 供电脚 VIO18 默认吃芯片内部 LDO 给的 1.8 V;断开内部 LDO 后由外部的同步 BUCK 供电。而那个 BUCK 的输出电压不是靠固定电阻分压定死的 —— 分压点上还挂着一只 27 kΩ 电阻,另一端连着主控的 DAC(PA4/ADC4/OP3_O1/DAC1,原理图上就标注为 FB 网络)。改 DAC 输出电压,等于改反馈环的分压比,BUCK 输出就跟着变。于是 VIO18 在 1.0 V ~ 3.3 V 之间连续可调,覆盖 1.2 V / 1.5 V / 1.8 V / 2.5 V / 3.3 V 这几档常见逻辑;再高的(比如 5 V CMOS)就用 3.3 V 阈值去判,由 I/O 本身 0 ~ 5.8 V 的耐压兜住。触发阈值相应地在 0.8 V ~ 2.3 V 之间可调。
模拟采样是「顺手做的」,作者也把它当赠品说。 主控里的 HSADC 是 10 位、最高 20 Msps、双通道。板上的 GS8626 是双运放,两个单元各接一路:输入先过一个 330 kΩ / 620 kΩ 的 ±0.1% 分压(衰减比 0.6526),把 0 ~ 5 V 压到 0 ~ 3.26 V,再经单位增益跟随器送到 HSADC 的 PF8/HSADC4 与 PF9/HSADC5。需要提醒的是:DMA 工作时只能选一路、不能动态切换,所以两个模拟通道实际上不能同时工作 —— 这一点作者在工程页里明说了。另外 V2 版硬件改过模拟前端(解决弱信号源被拉低、补偿高频响应),所以衰减比有版本差异:V1 是 0.6875,V2 默认 0.6526。
USB 侧、供电与保护。 Type-C 母座 USB1 把两组超高速差分(TX1/RX1、TX2/RX2)和一组 USB2.0 差分(D+/D−)都引出来,四路 TX 各串一只 100 nF 交流耦合电容后进 CH9441P。这颗开关按 CC 引脚状态在两套超高速通道之间切换,正反插自适应用一颗芯片搞定,主控自带的 USB PD PHY 都省了。CC1/CC2 上各挂一只 5.1 kΩ(R1/R2)下拉到地,把自己设成受电端(UFP)。VBUS 进来先过 PTC 自恢复保险丝 F1,再并一只 5.6 V 稳压管 D1(BZT52C5V6)、100 nF 与 10 µF,得到板上 VCC。电源芯片 CH2003K 是「DCDC + LDO 二合一」:内部 LDO 出 3.3 V 直接供主控,同步 BUCK(800 mA、1.5 MHz、最高效率 96%)经 2.2 µH 电感产生可调的 VIO18。作者明确写了输入暂时没做高压保护,并计划把 PTC 换成 CH213(自恢复保险丝 + 肖特基二合一,5 V 下约 1 A)。
固件分两个工程,烧录分两步。 IAP 工程用 WCH-LinkE 通过 SWD 烧进芯片 —— 板上 H1 排针从上往下第 1、2 脚就是 SWCLK 与 SWDIO,而这两个脚正是主控 PB8/USB2DP/SWCLK 与 PB9/USB2DM/SWDIO 复用出来的 USB2.0 差分对,一条排针同时干调试和 USB2.0 两件事。APP 工程编译好后,用 PC 端 U3LogicAnalyzer 的「帮助 → 固件升级」通过 USB 下发。这样做的好处是以后升级不用拆壳接线。上位机是 PulseView 的改良版,串口、SPI 之类的协议解码直接复用 PulseView 的框架。板上有三颗 0603 指示灯:红灯常亮表示电源接通、蓝灯常亮表示固件在运行、绿灯常亮表示 USB 连接成功、绿灯闪烁表示正在传输数据;红灯是硬接在 3.3 V 上的,另外两颗由固件控制。
工程页的更新记录一路排到 2.0:1.1 版给 PCB 的输入信号线做了等长处理、加了 1.27 mm 与 2.54 mm 转接板;1.2 版修了 IAP 烧完后 APP 下不去的问题;1.3 版补了 3D 外壳与亚克力面板、补了调试下载口丝印;1.4 版修了「采一段时间后偶发丢一个 bit」的问题;2.0 版更新模拟前端电路,同时把上位机从采集到分析整体翻新了一遍。板子参数上有条硬提醒:4 层板、1.2 mm 板厚、3313 层压结构,USB3.0 对走线要求严格,自己改板必须做阻抗匹配、不能随便拉线。
📷 项目实拍图(共 5 张)
产品图 1/5|PCB 正反面与亚克力外壳:
上半幅是板子的正面与背面实拍并标出了每颗芯片的位置:顶部橙色框是 16 通道 @ 200 MHz 的逻辑输入接头,旁边绿色框是 2 通道 @ 20 Msps 的模拟输入,左上红色框是 CH32H417 主控,左侧蓝色框是 CH9441P(Type-C 正反插自适应),右下蓝框是 CH2003K 电源,右侧黄框是 GS8626 运放,左下紫框是三颗状态指示灯;下半幅是装上 3D 打印外壳与亚克力面板后的整机,面板是透明的,能看到里面芯片的丝印。
产品图 2/5|整机与上位机界面:
条目头图:左边是上位机 U3LogicAnalyzer 的实际画面,UART 行解出了起始位/停止位与 0x6D、0x15 两个字节,SPI 行同时解出了 MOSI 与 MISO 的双向数据流,下面 D0~D3 是四路数字通道,最下方 A0 是模拟通道、游标读数 2.226 V;右边是整机照片,面板上印着 CH32H417、CH9441、CH2003 三颗芯片的功能说明 —— 注意面板丝印上写的运放型号是 OPA2322,与本版 BOM 实际贴装的 GS8626 并不一致。
产品图 3/5|系统方案框图:
作者画的系统框图,把这台机器的数据流一次讲清:CH32H417 内部大核青稞 V5F 400 MHz、小核青稞 V3F、896 KB SRAM,超高速 USB3.0(5 Gbps PHY)与高速 USB2.0(480 Mbps PHY)分两路出去;模拟采集走 HSADC 的 CH0/CH1,逻辑输入走 UHSIF 高速并口 CH0 ~ CH15;VIO 电平适配那块标出了「1.2~3.3V」与「调节 FB」两条箭头,正是指向 CH2003K 的 DCDC;最右侧是 Type-C 的引脚分配与过流/过压保护。
产品图 4/5|上位机固件升级入口:
上位机的「帮助」菜单展开后的样子,红框圈出的「固件升级」就是 APP 固件的下发入口 —— 先用 WCH-LinkE 烧一次 IAP,之后的固件更新都能在软件里点一下完成,不用拆壳接调试线。菜单栏同时能看到 Demo device、打开、保存、200 MHz 时基与 5 MHz 采样率设置、模式、开始、测量、解码器、解码结果等入口。
产品图 5/5|上位机三区波形解析:
三个工作界面的拼图,也是这台机器「数字 + 模拟」两用的直观证据。最上面是串口波形解析:UART 行直接解出 0x6D、0x15 与 Stop bit / Start bit 标注,下面 TX 行是原始波形,时基 20 s、采样率 200 MHz、USB3.0(CH32H417) 已识别;中间是 SPI 波形解析:MISO 与 MOSI 两行同时给出十六进制数据流,CS#、CLK、MOSI 再往下展开成时序;最下面是模拟信号采集显示,采样率 20 MHz,A0 通道上是一条干净的正弦,游标读数 2.226 V,右侧标着 2 V/div。
🔧 设备参数
主控:沁恒 CH32H417QEU6(QFN-128)。双核青稞 RISC-V:大核 V5F 最高 400 MHz、小核 V3F 最高 160 MHz;896 KB SRAM、960 KB Flash;95 个 I/O;系统与常规 GPIO 供电 3.3 V,高速 GPIO 供电可选 1.2 / 1.8 / 2.5 / 3.3 V(这就是 VIO18 那一路);内置 5 Msps 双 12 位 ADC、20 Msps 10 位高速 HSADC、双 12 位 DAC、3 组 OPA、电压比较器;USB3.0(5 Gbps)与 USB2.0(480 Mbps)控制器和 PHY 都在片内。32 位宽 125 MHz 的 UHSIF 是本项目的采样通路。
数字采样通道与速率:16 通道或 8 通道可选;最高采样率 200 MHz,且最大采样率不会因为减少通道数而提高,16 通道下满血 200 MHz 不打折扣。采样由芯片内部时钟控制、连续进行,数据实时上传到 PC 软件,软件层支持高/低电平触发、上升/下降沿等多种触发模式。作者另提到:如果把主频配到 500 MHz,采样率还可以提升到 250 MHz,此时要设成 8 通道才能可靠传输。
USB2.0 模式下的速率:受 USB2.0 通信速度限制,8 通道降到 40 MHz、16 通道降到 20 MHz;更高采样率只在 USB3.0 模式下提供。
可采电平与阈值:可采电平电压标准 1.2 V ~ 5 V(高于 3.3 V 的电平使用 3.3 V 阈值判决);触发阈值调节范围 0.8 V ~ 2.3 V;I/O 耐压 0 V ~ 5.8 V;VIO18 的可调输出范围实测 1.0 V ~ 3.3 V。
连续采样时长:取决于 PC 内存容量 —— 工程页给出的例子是 16 通道下 64 GB 主机可连续采 16 s。
模拟采样:HSADC,10 位、最高 20 Msps、双通道,采样电压范围 0 V ~ 5 V(经板上 0.6526 衰减与单位增益缓冲)。由于 DMA 工作时只能选择 1 路、无法自动切换,两个通道暂时不能同时工作。V1 版硬件的衰减比是 0.6875(需在上位机手动设置),V2 版默认 0.6526、不用改。数字采样与模拟采样可同时使用,电脑上开两个软件即可。
时钟:X1 25 MHz 无源晶振(3225 四脚封装),C27 / C26 各 20 pF 做负载电容,2、4 脚接地。
电源架构:CH2003K(SOT23-6L)是 DCDC 与 LDO 二合一芯片 —— 内部同步 BUCK 输入 2.5 V ~ 5.5 V、输出电流 800 mA、开关频率 1.5 MHz、最高效率 96%、支持 PWM/PFM 自动切换、静态电流 280 µA,CH2003K 是可调版本,通过 FB 引脚外置分压电阻,最低可输出 0.6 V;内部 LDO 固定输出 3.3 V,直接给主控供电。板上 3.3 V 再由网络标签分配给 VDDIO、VDD33、VREF、VDD33A 四路。
Type-C 通道切换:CH9441P(QFN16,3×3 mm)—— 4 个双向二选一模拟开关(QPDT,即 2 对差分通道 2:1),−3 dB 带宽 5 GHz,支持 6 Gbps 差分信号;内置 CC 引脚自动识别模块,支持 Type-C 正反插自适应与 USB3.0 通道自动切换;内置 Type-C 高压 LDO,VBUS 电源电压范围 2.7 V ~ 29 V;控制信号独立于电源电压,支持 5 V / 3.3 V / 2.5 V / 1.8 V,无需电平转换;典型内阻约 7 Ω(商城参数页标 10 Ω 最大)、输入电容 0.5 pF。
模拟前端运放:Gainsil GS8626-SR(SOP-8 双运放,轨到轨输入输出)—— 增益带宽积 20 MHz、压摆率 17 V/µs、输入失调电压最大 3.5 mV、输入偏置电流 3.5 pA、输入电压噪声密度 7 nV/√Hz @ 10 kHz、共模抑制比 82 dB、单电源 2.5 V ~ 5.5 V、每放大器静态电流 2.2 mA、输出电流 70 mA、内置补偿。板上三处:U4.1 是电源单元(8 脚 VDD / 4 脚 VSS),U4.2 与 U4.3 各带一路模拟输入,都接成单位增益跟随器。
过流与过压保护:Type-C VBUS 进来先过 F1 PTC 自恢复保险丝(SMD0805-100-12),再用 D1 BZT52C5V6(5.6 V 稳压管)做钳位,配 100 nF 与 10 µF 滤波。作者计划后续换用 CH213 —— 相当于自恢复保险丝加肖特基二极管,5 V 下支持约 1 A,自带过流和短路保护,导通压降更低、过流保护更快。逻辑分析仪的输入目前没有做高压保护(作者原话)。
状态指示:三颗 0603 LED —— 红灯常亮=电源接通(硬接在 3.3 V 上,不受固件控制);蓝灯常亮=固件正在运行;绿灯常亮=USB 连接成功;绿灯闪烁=USB 正在传输数据。
固件与烧录:两个 MRS 工程 —— IAP 工程编译出 CH32H417_IAP_V3F.bin,用 WCH-LinkE 通过 SWD 下载;连接位置是板上 H1 排针从上往下第 1 脚 SWCLK、第 2 脚 SWDIO,而这两条网络(USBHS_P / USBHS_N)同时也是主控 PB8/USB2DP/SWCLK 与 PB9/USB2DM/SWDIO 复用出来的 USB2.0 差分对。APP 工程先编 V3F 再编 V5F,得到 CH32H417_Logic_Analyzer_APP.bin,通过上位机的「帮助 → 固件升级」下发。若想用 USB 或串口 ISP 下载,PCB 上需要自己拉线(USB 对应 PA11/PA12,串口对应 PB6/PB7 —— 注意这里的 ISP 串口与板上 H2 引出的 TX1(PA9/OTG_VBUS)不是同一个 UART)。
上位机:U3LogicAnalyzer(基于开源软件 PulseView 改良),支持 Windows 10 / 11。2.0 版新增滚动采集模式、解码表格搜索、CAN-FD 解码支持,优化了 WS2812 解码显示效果、提升最大采集时长;ADC 页支持电平触发、波形保存、插值平滑显示、衰减比与偏移设置。截图里能看到 UART 与 SPI 两套解码的完整结果。
PCB 与结构:4 层板、1.2 mm 板厚、3313 层压结构;3D 打印外壳采用无孔装配设计、零件与亚克力板过盈配合,亚克力面板为 AI 辅助设计、文件放在 PCB 工程中。作者提醒:USB3.0 信号对 PCB 走线要求严格,自己画或改板时要注意阻抗匹配、避开周围干扰。
许可与平台数据:GPL 3.0|浏览 32978 / 收藏 451 / 点赞 249 / 评论 570 / 投票 49|平台标记「高质量」,平台给出的复现成本 ¥40|创建 2026-05-26,工程最近更新 2026-10-12。
🎯 项目背景
要理解这台机器的位置,得先把开源逻辑分析仪的几代格局摆出来。
第一代是 Cypress 的 CY7C68013(FX2LP)。这颗 USB2.0 控制器内部有一块可编程的 GPIF 并口,配上 sigrok/PulseView 生态里的 fx2lafw 固件,几乎是开源逻辑分析仪的默认答案 —— 开源平台上按作者统计有 20 个基于它的方案,通道数普遍是 8 路,采样率 24 MHz 上下。它的天花板很硬:USB2.0 高速实测带宽约 40 MB/s,8 通道 24 MHz 需要 24 MB/s 的持续流,已经吃掉一大半余量,再往上就没法连续传了。
第二代是 Cypress 的 CYUSB3014(FX3)。USB3.0 的 5 Gbps 让带宽不再是瓶颈,平台上有 1 个方案做到了 16 通道 @ 100 MHz。但 FX3 是纯 USB 控制器,前面还得挂 FPGA 去做真正的采样与时序,成本和画板复杂度都上了一个台阶。
第三代是树莓派的 RP2040 / RP2350。PIO 状态机让「用 MCU 做高速采样」变得非常便宜,平台上有 13 个 RP2040 方案和 1 个 RP2350 方案,通道数做到 24 路、采样率做到 100 ~ 200 MHz。但这两颗芯片的 USB 是 USB1.1 全速、只有 12 Mbps(约 1 MB/s),数据根本来不及往外送,所以它们的高采样率都是非连续的 —— 先把采样写进片内 SRAM,抓满一段停下来上传,然后再抓。作者在工程页里那句话说得挺直接:「看起来采样率很高,但由于 USB 速度跟不上,因此高采样率下无法连续采样。」
第四代就是这一期。CH32H417 把「USB3.0 PHY」和「一条能直接吃 16 路 200 MHz 的并行接口」放进了同一颗芯片:前者是 5 Gbps 的超高速 USB,后者是 32 位宽 125 MHz 的 UHSIF 通用高速接口。于是采样和上传都由一颗芯片完成,不需要 FPGA,也不需要外挂 FIFO 或 EEPROM。按作者自述,这是目前开源平台上采样率最高的逻辑分析仪 —— 严格说 RP2350 那套的标称值也是 200 MHz,但在连续采样这个判据上,把 USB3.0 与 16 通道 200 MHz 捏进一颗芯片的,目前只有它。
顺带说一句类目位置:本连载第一次出现逻辑分析仪是 09-07 的 gusmanb/LogicAnalyzer(RP2040、24 通道 @ 100 MHz、USB1.1 非连续),那是「用最便宜的芯片做出最高通道数」的思路;这一期换成了「用一颗国产 MCU 换掉 USB 瓶颈和 FPGA」的思路。两者在开源逻辑分析仪的技术谱系里正好是相邻的两站。
还有一个背景值得记下来:这一类项目的门槛在下降,而瓶颈在转移。早几年做逻辑分析仪,难点是「怎么把 100 MHz 的时序可靠地采下来」,答案通常是 FPGA;现在 MCU 内部的并口外设已经能直接跑到 125 MHz、32 位宽,难点就变成了「怎么把 400 MB/s 的数据搬出去」和「怎么让不同电平的被测系统共用同一个探头」。这台机器在前一个问题上选了 USB3.0,在后一个问题上用了「I/O 独立供电 + DAC 控制 DCDC 反馈」这种有点取巧、但电路上极其便宜的办法 —— 板上为此只多了一只 27 kΩ 电阻。这也是它值得单独占一期的原因:它解决的不是「又做了一个逻辑分析仪」,而是「把这一代国产 MCU 上两条很新的外设用到了极致」。
📊 核心参数
💰 BOM 清单与成本估算
📐 完整原理图(按功能区块)
工程源是 EDA 专业版的单页原理图(Schematic-pre2v0,图幅 A3,图页 1/1)。本文用「导出 → SVG」取到矢量图,剥掉编辑器叠加的背景网格后重新渲染,再按功能区块裁切贴出。
看图前先交代四件事。
这一版是 V2 硬件(工程里的板文件叫 Board-pre2v0),标题栏显示创建与更新日期都是 2026-10-12。V2 相对 V1 动的主要是模拟前端:衰减比从 0.6875 改成 0.6526,同时补偿了高频响应、解决了弱信号源电压可能被拉低的问题。有一处遗留可以对照着看:整机亚克力面板上印的运放型号是 OPA2322,而本版 BOM 实际贴装的是 GS8626,两者并不一致。
全图共 113 个位号,对应工程 BOM 的 32 行。其中 C60 / C61 两颗电容在图上被明确标注为 NC(不贴装,是两个预留的补偿电容位),因此没有进入 BOM;反过来说,BOM 的 113 个位号都能在图上找到。
第 8 个区块贴的不是电路而是标题栏。把它放进来只为一件事:版本号、图幅与创建/更新日期都写在那儿(pre2v0、A3、2026-10-12),方便对照实物与源工程。
有一处预留节点值得留意:主控 PC0(26 脚)上挂着一个 P_CLK 网络标签,全图只出现这一次、没有对应连接,属于设计预留而非遗漏的连线。
整图 1/1|USB3.0 逻辑分析仪整页原理图(EDA 专业版,A3,图页 1/1):
整页 A3 图纸的布局很规整:左上角一大块是主控 CH32H417QEU6(U1),它右侧上方是 Type-C 正反插开关 CH9441P(U2),右上角是电源 CH2003K(U3)与 VIO18 那一套分压网络;右侧中部是状态指示灯与 8 针模拟输入座,右下角是两路模拟前端 GS8626(U4);左下角一整排是 16 路逻辑输入(CN1 加 16 组「1 kΩ ∥ 7 pF」与四颗 1 MΩ 排阻);中下偏右是 Type-C 座、过流保护、晶振与两个调试排针。信号流向:逻辑输入 → 端接网络 → 主控 UHSIF;模拟输入 → 精密分压 → 单位增益缓冲 → 主控 HSADC;USB 差分对在 Type-C 座与主控之间经 CH9441P 切换。
区块 1/8|16 通道逻辑输入与端接网络:
采样链路的起点。CN1 是一颗 1.27 mm 间距的 2×20(40 脚)母座:偶数脚是 16 路信号 CH0_IN ~ CH15_IN,每 4 路一段、段间插一个 GND 脚(2、12、22、32 脚);奇数脚则在 GND 与 VIO18 之间交替 —— 把可调阈值那一档电平也引到接头上,外部被测设备可以直接对齐。每一路进来后先过一组并联的串阻与电容:CH0_IN 经 R6 1 kΩ 到 UFP0,C42 7 pF 与 R6 并联。这个组合不是普通滤波:串阻在直流和低频段限流,7 pF 在 200 MHz 处阻抗只有约 113 Ω,等于高频段把串阻旁路掉,信号的边沿几乎不被 RC 拖慢。共 16 组(R6–R21 配 C42–C57),输出网络 UFP0 ~ UFP15 直接进主控。每组末端还各挂一只 1 MΩ 到地(RN1–RN4 四颗 8P 排阻,每颗内部 4 只电阻,合计 16 只),作用是输入悬空时把电平钉住、不随机翻转。
区块 2/8|模拟采样前端(GS8626):
两路模拟输入从 8 针母座进来,网络名 ADC0_IN 与 ADC1_IN。每一路先过一个 ±0.1% 的精密分压:上臂 330 kΩ(R34 / R23)、下臂 620 kΩ(R35 / R24),分压比 620/(330+620) = 0.6526,正好把 0 ~ 5 V 压进 HSADC 的 0 ~ 3.26 V 量程。上臂上并联 7 pF(C64 / C62)补偿高频响应,与逻辑输入用的是同一招。分压点直接进 U4.2 / U4.3 两个运放单元的正输入,两个单元都接成单位增益跟随器(输出用导线直连反相输入),输出再经 0 Ω(R25 / R22)送到 HSADC0 / HSADC1 两条网络 —— 它们落在主控的 PF8/HSADC4 与 PF9/HSADC5 两个引脚上,在方案框图里对应的就是 HSADC 的 CH0 与 CH1。输出端预留了 C60 / C61 两个电容位但标 NC、不贴装。图上方那一小块是 U4.1,也就是这颗双运放的电源单元(8 脚 VDD / 4 脚 VSS),3.3 V 经 C58 100 nF 去耦。
区块 3/8|主控 CH32H417(U1):
128 脚的 CH32H417QEU6,图上按功能把引脚分成几簇。左侧上半是模拟与时钟:PF8/HSADC4(19 脚)与 PF9/HSADC5(20 脚)接两路模拟前端的输出,XI / XO(23、24 脚)接 25 MHz 晶振,NRST(25 脚)除了复位网络之外还挂了测试点 TP1,VDD33A / VREFP / VSSA(33、32、31 脚)是模拟电源与基准脚、各自配 100 nF 与 4.7 µF。左侧中部:PA4/ADC4/OP3_O1/DAC1(39 脚)上挂着 FB 网络标签,这就是电平自适应的控制源;PC0(26 脚)上那个 P_CLK 是前面提到的预留节点。右侧上半是 USB 与电源:USBSS_TXP/TXN 与 USBSS_RXP/RXN(124、123、127、126 脚)走超高速差分对去 CH9441P;USBHS_P/N(120、121 脚)是 USB2.0 差分对,同时引到调试排针 H1;VDD12A(125 脚)配 100 nF 与 4.7 µF,VIO18(105 脚)配 C21 100 nF —— 这一路就是可调 I/O 电源的入口。
右侧下半到右下是 16 路逻辑输入:PD10–PD15、PF0–PF2、PC6–PC9、PA13–PA15 依次接到 UFP0 ~ UFP15,把 16 路信号送进 UHSIF。右侧中部还能看到 PB3/CC1、PB4/CC2 与 PA9/OTG_VBUS 分别挂着 LED1、LED2、TX1 三个网络标签。
区块 4/8|USB3.0 高速通道切换(CH9441P):
U2 CH9441P 是 Type-C 正反插自适应的核心。主控侧:9 ~ 12 脚分别接 USBSS_RXP、USBSS_RXN、USBSS_TXP、USBSS_TXN 四条网络,也就是超高速链路靠近主控的那一端。Type-C 侧:两组 TX 各串一只 100 nF 交流耦合电容后进来 —— SST1X / SST1Y(15、16 脚)经 C32 / C33 接 TX1_P / TX1_N,SST2X / SST2Y(3、4 脚)经 C28 / C29 接 TX2_P / TX2_N;两组 RX 不需要耦合电容,SSR1X / SSR1Y(1、2 脚)接 RX1_P / RX1_N,SSR2X / SSR2Y(5、6 脚)接 RX2_P / RX2_N。CC 脚(13、14 脚)接 Type-C 座的 CC1 / CC2,开关内部根据这两根线的状态判断插入方向并自动切换通道。电源:8 脚 VBUS 直接接 VCC(Type-C 的 5 V),配 C30 100 nF 与 C31 1 µF;7 脚 VDD 是开关内部逻辑供电。
整块板之所以能在 Type-C 正反插上只花一颗芯片,就是因为这颗开关把 CC 识别和高压 LDO 都吃进去了。
区块 5/8|Type-C 座、过流保护、晶振与调试口:
右侧是 Type-C 母座 USB1(24 脚沉板件)。两组 USB2.0 差分对(A6/A7 与 B6/B7)在板上并起来接主控的 USBHS_P / USBHS_N;两组超高速 TX(A2/A3、B2/B3)与两组超高速 RX(A10/A11、B10/B11)分别引到 CH9441P;CC1 / CC2(A5、B5)各经一只 5.1 kΩ(R1 / R2)下拉到地,把设备设成受电端;A4/A9/B4/B9 是四个 VBUS 脚,A8/B8 是 SBU,EH 是外壳地。VBUS 出来后先过 F1 PTC,再并 D1(BZT52C5V6)、C34 100 nF、C35 10 µF,得到板上 VCC。左侧一小块是时钟:X1 25 MHz 无源晶振,1 脚接 XI、3 脚接 XO,负载电容 C27 / C26 各 20 pF,晶振的 2、4 脚(外壳)接地。下方两个排针是维护口。H1 是 2.54 mm 1×5P,第 1 ~ 5 脚依次是 USBHS_P、USBHS_N、GND、3V3、VCC —— 前两脚接的是主控 120、121 脚,也就是 PB8/USB2DP/SWCLK 与 PB9/USB2DM/SWDIO 这一对复用脚:它既是 USB2.0 差分对,也是 SWD 调试口,所以按作者说的「从上往下第一个是 SWCLK、第二个是 SWDIO」接线就能烧 IAP 固件。H2 是 1×2P,第 2 脚引出串口 TX1、第 1 脚接地。
区块 6/8|电源 CH2003K 与 VIO18 电平适配:
全板电源都从这颗 SOT-23-6 的小芯片出来。U3 CH2003K 的 VIN5 脚接 VCC(Type-C 的 5 V,输入侧配 C36 10 µF 与 C37 100 nF),内部 LDO 固定输出 3.3 V 供主控(输出侧 C41 10 µF),内部同步 BUCK 的 SW 脚经 L1 2.2 µH 输出 VIO18(配 C38 10 µF、C39 100 nF、C40 4.7 pF)。输出电压是怎么可调的:BUCK 的 FB 脚接着一条分压链 —— R3 100 kΩ 从输出端拉到 FB,R4 100 kΩ 从 FB 拉到地,而 FB 节点上还接了 R5 27 kΩ 通往主控的 DAC(FB 网络,也就是区块 3 里 39 脚 PA4/DAC1 那一路)。改 DAC 的输出电压就等于改变反馈环的分压比,BUCK 输出随之连续变化,实现 1.0 V ~ 3.3 V 的范围。图左上角 NC 标记的那只脚是空脚。左下角一组网络标签把 3.3 V 分配给 VDDIO、VDD33、VREF、VDD33A 四路电源网络。
区块 7/8|状态指示灯与模拟输入排针:
三颗 0603 LED 的接法并不一样,这一点在图上看得最清楚。红灯 LED1(NCD0603R1)阳极接 3V3、阴极经 R26 1 kΩ 直接到地 —— 只要 3.3 V 在它就常亮,是纯电源指示,固件管不着它。蓝灯 LED2(NCD0603B1)与绿灯 LED3(NCD0603G1)的限流电阻 R27 / R28(各 1 kΩ)分别接到主控的 LED1 / LED2 网络(就是区块 3 里 PB3/CC1 与 PB4/CC2 那两路),由固件控制亮灭与闪烁。下方 CN2 是 8 针 1.27 mm 母座,用来接两路模拟输入:1、5 脚接地,3、7 脚引出 ADC0_IN 与 ADC1_IN,2 / 4 / 6 / 8 四脚全部接地 —— 两路模拟信号各自被地线夹在中间走,属于给弱信号留信噪比的做法。
本文来源:微信公众号「飞多学堂」
