外观
SLogic16U3:800MHz 逻辑分析仪,规格到 sigrok 全开源链路

Sipeed SLogic16U3 是一颗 40×40×10mm 的 USB3 逻辑分析仪:800MHz@4ch / 400MHz@8ch / 200MHz@16ch, 0~10V 信号输入、0~6V 可配阈值,铝合金外壳,官方售价 ¥369 起。 它走 sigrok/libsigrok 标准协议——本文前半整理官方规格与硬件接口(含实物图),后半是 Apple Silicon Mac 上的实测全链路:命令行直采波形、解码 131 种协议。
规格速查(官方)
| 属性 | SLogic16U3 | 顺带对比 Combo8 | 顺带对比 32U3 |
|---|---|---|---|
| USB | USB3.0(5Gbps) | USB2.0 | USB3.2 Gen2 |
| 最大采样率 / 通道 | 800M / 16ch | 80M / 8ch | 1500M / 32ch |
| 典型组合(连续流式) | 800M@4CH · 400M@8CH · 200M@16CH | 80M@4CH · 40M@8CH | 1500M@4CH · 800M@8CH · 400M@16CH · 200M@32CH |
| 最大带宽 | 3.2Gbps | 0.3Gbps | 6.4Gbps |
| 信号输入范围 | 0~10V,可调 0~6V 触发阈值 | 阈值不可调 | 可调阈值 |
| 尺寸 / 外壳 | 40×40×10mm · 铝合金 | 20×40×10mm · 塑料 | 50×50×10mm · 铝合金 |
| 价格 | ¥369 起 | ¥69 | ~¥999 |
| Sigrok 兼容 | ✅ | ✅ | ✅ |
采样率与通道数是"此消彼长"的:16 通道全开只有 200MHz,想要 800MHz 得砍到 4 通道(后文有实测命令)。
硬件接口与接线

包装内有:主机、2×6P 杜邦线 ×2(或 2×4P 同轴线 ×2,二选一)、测试夹 ×16、USB3 数据线(A+C to C)、SIM 卡针、说明卡片、拉链收纳包。
背面排母(采样端)

- 0~15:16 个采样通道,对应上位机里的通道编号
- G(×4):GND——必须把被测设备的 GND 与逻辑分析仪的 GND 可靠相连,且尽量短、尽量靠近待测点
- VCC(×2):电源输出(3.3V @ 500mA,两口共享)——⚠️ 它不是信号输入,也别和 GND 短接
- CK(×2):预留的采样时钟输入/触发输出(暂不可用)

方向性:杜邦线组/同轴子板的三角标记 ▴ 对准外壳上的 ▾ 才是正向;同轴线远端白端子接信号、黑端子接 GND;奈奎斯特频率 ≥50MHz 时建议用同轴线采样更稳。
正面

- USB-C:USB 3.2 Gen1(5Gbps),必须用有 USB3 能力的线缆(普通手机充电线不行)
- MODE:藏在孔里的隐藏按键(SIM 卡针捅),在「逻辑分析仪」和「DFU 升级」两种模式间切换(详见下文 DFU)
- ACT:三色 RGB 状态灯
ACT 灯语:
| 状态 | 颜色 | 备注 |
|---|---|---|
| 正常连接 | 青色(蓝+绿) | 蓝=电源,绿=USB LINK,红=运行 |
| 数据传输 | 青色 + 红快闪 | |
| DFU 模式 | 青色 + 红慢闪 | |
| ⚠️ USB 连接失败 | 只亮蓝灯 | 多半是线缆/接口不是 USB3,或连到了前面板/Hub |
| ⚠️ Flash 加载异常 | 只亮红灯 | 线缆太差或硬件问题 |
平台支持与获取方式
| 系统 | 说明 |
|---|---|
| Windows 10/11 | 原生 exe 受 USB 驱动限制只能到 ~390MB/s → 降档为 400M@4CH / 200M@8CH / 100M@16CH;想跑满带宽就用 Linux 虚拟机 |
| Linux (x86_64) | 需配 udev 规则解决权限(官方 FAQ 有现成规则) |
| macOS(Apple Silicon) | 直接可用(本文实测环境) |
获取软件有两条路:
- 下载即用(推荐先走这条):官方按平台分发
sigrok-cli-SLogic(Linux AppImage / Windows exe / macOS dmg)和 PulseView 图形界面,都在 SLogic 下载站。 - 本机自编译(进阶,本文后半走的就是这条):从源码编译 Sipeed 的
slogic-dev分支 + sigrok-cli + 解码库,适合想定制或跟源码的人。
协议栈:一条 sigrok 标准链路
控制走厂商自定义 USB 控制传输(寄存器 R32_CTRL/0x04、R32_FLAG/0x08、R32_AUX/0x0C),采样走 USB3 bulk IN 流式——16 通道每样本 2 字节。
采集实测
| 能力 | 实测 |
|---|---|
| 设备识别 | SLogic16 U3 · USB3.0 · VID:PID 359F:3031 |
| 采集 | 5MHz~800MHz 全档通过,200MHz/16ch 与 800MHz/4ch 数据零误码 |
| 自检图样 | Emulation 模式输出二分频波形(D0 满幅方波,逐级 /2) |
| 协议解码 | 131 个解码器;合成 UART 帧解出 0x55 逐位+字节全对 |
Emulation 自检模式(无被测信号时验证链路)输出教科书式二分频图样——D0 满幅方波到 100MHz(200MHz 采样下逐样本翻转),逐级二分频、零毛刺:
bash
SR=/Volumes/my-work-arm/slogic-prefix/bin/sigrok-cli
# 16ch 200MHz 采 100 万样本 → CSV
$SR --driver sipeed-slogic-analyzer --config samplerate=200m \
--samples 1000000 -O csv -o cap.csv
# 4ch 800MHz:先降硬件通道数
$SR --driver sipeed-slogic-analyzer --config logic_channels=4 \
--config samplerate=800m --samples 500000 -O csv -o cap.csv
# 触发采集:D0 上升沿
$SR --driver sipeed-slogic-analyzer --config samplerate=20m \
--triggers D0=r --samples 100000 -O csv -o cap.csv解码实测(合成 UART 帧验证管线)
接不到信号时,用 VCD 输入合成一帧验证解码器:
| 段 | 空闲 | 起始 | d0…d7(LSB 先) | 停止 | → 解码 |
|---|---|---|---|---|---|
| 电平 | 1 1 | 0 | 1 0 1 0 1 0 1 0 | 1 | 0x55 ✓ |
真实采集解码同理(接上线即可):
bash
# UART:D0=RX;I2C:D0=SCL D1=SDA
$SR --driver sipeed-slogic-analyzer --config samplerate=20m --samples 1000000 \
-P uart:baudrate=19200:rx=D0 -A uart参考波形(Sipeed 官方教程的 GTKWave 截图):UART 115200 帧与 500kHz SPI(CLK/MOSI/CS)——解码结果与发送端逐字节一致:


让 Agent 直接驱动它:SLogic Agent Plugin
Sipeed 官方还出了一个把 sigrok-cli 包装成 Skill 的 OpenAI plugin —— sigrok-cli-slogic-plugin。装上之后,你把通道、协议和任务目标告诉支持 Plugin 的 Agent,它就能自己调用 sigrok-cli 扫描设备、采集 .sr 波形、用 libsigrokdecode 解码并回报字符。例如对它说:
SLogic 的 D0 接了 UART RX,参数 115200 8N1。请先扫描设备,再用 10 MHz 采集 50 ms,保存原始波形并解码收到的字符。
Skill 内置的行为约定很克制:扫不到设备就停止、多设备必须先指定、采集完成后返回 .sr 绝对路径和实际命令、解码完成后报告引脚映射和是否有 warning——和我这套"先扫描确认能力、再采集"的流程习惯一致。
教程与下载:SLogic 接入 AI Agent:Plugin 快速开始(含 UART/SPI 两个完整实操示例)。
踩坑档案
| 现象 | 根因 | 解决 |
|---|---|---|
| 设 800MHz 被 wrap 到 200MHz | 只设了 --channels D0-D3,硬件仍按 16 通道算 | 降采样率先设 logic_channels=4(硬件通道数) |
--channels D0-D15 报 Invalid channel | 范围语法 a-b 只认纯数字通道名,本设备是 D0 | 用逗号列表 D0,D1,D2,D3,或省略(默认全通道) |
| 构建报找不到 Python 头文件 | 系统 Python 3.9.6 无 dev headers / 无 python3-embed.pc | brew install python@3.12,configure 加其 pkgconfig 路径 |
| 合成 VCD 解码缺最后一位 | 帧前缺起始空闲高电平,start bit 检测点偏移 | 帧前补 ≥2 bit 的 idle 高电平 |
| 合成 VCD 解不出字节 | 尾帧恒高无时间戳,输入模块截断在最后一个跳变 | 末尾补显式 #N 结束时间戳 |
| 采集数据全 0 | 没接信号(空闲电平),不是故障 | pattern=Emulation 自检模式验证链路 |
| 只亮蓝灯扫不到设备 | 线缆/接口不是 USB3 | 换 USB3 线、直连主板后置口、别走 Hub |
复现与出处
- 完整构建流程(依赖、fork 地址、configure 参数、幂等脚本)见 skill
slogic16u3参考文档 [1.从源码构建] - 本机已装前缀
/Volumes/my-work-arm/slogic-prefix/(libsigrok 0.6 + sigrok-cli 0.8 + libsigrokdecode,131 解码器) - 官方资料:产品介绍 · 硬件操作手册(本文硬件图均出自这两篇,已存档本站)· SLogic 接入 AI Agent
- 驱动源码:sipeed/libsigrok · slogic-dev;官方上位机 PulseView(图形界面);SLogic16U3 Tools(DFU 固件更新工具)