外观
SLogic16U3:800MHz 逻辑分析仪,从接线到解出一个字节

一段串口数据解不出来时,我更想知道线上的电平究竟是什么,而不只是看程序打印了什么。SLogic16U3 可以把数字信号采进电脑,再交给 sigrok 解码;本文记录的是 Apple Silicon Mac 上从识别设备到读出一个 UART 字节的过程。
先把“800MHz”说清楚:800M@4ch、400M@8ch、200M@16ch。不能同时拥有 800MHz 和 16 路。这里的 MHz 是采样率,也不是被测信号可用带宽的承诺。
这些结果分别证明了什么?
| 资料或实验 | 能说明什么 | 不能说明什么 |
|---|---|---|
| 官方规格 | 接口、电压范围、采样组合 | 不是本文重做的性能认证 |
| 本机 Emulation 自检 | USB、驱动、输出文件链路可用;200M/16ch 与 800M/4ch 图样零误码 | 不等于真实探头在任意信号下都零误码 |
| 本机合成 UART | VCD 输入与 UART 解码管线读出 0x55 | 没有经过外部接线与采样前端 |
| 官方 UART / SPI 波形 | 官方教程的真实采集示例 | 不是我的实测截图 |
本机安装的 libsigrokdecode 列出 131 个解码器。这里验证了合成 UART,不是逐一验证了 131 种协议。
接线之前,先看背面


| 标记 | 接什么 | 注意 |
|---|---|---|
0~15 | 数字信号,对应 D0~D15 | 官方输入范围 0~10V,不可直接接高压或负压信号 |
G,四个 | 被测设备 GND | 可靠共地,地线短且靠近测点 |
VCC,两个 | 3.3V 电源输出 | 两口共享 500mA;不是信号输入,不能短接 GND |
CK,两个 | 预留时钟 / 触发接口 | 当前暂不可用 |
不要把 RS-232、RS-485 或 CAN 总线直接当作普通逻辑电平输入。 先核对电压和接口类型,必要时使用合适的接收器或探头。逻辑仪记录高低电平,不能代替示波器检查模拟波形质量。

线组的三角标记要与外壳标记对齐;同轴线远端白端子接信号,黑端子接地。高频采样优先使用短连接与同轴线,别让长杜邦线成为被测电路的一部分。
先采到一份文件
软件可以先用 官方预编译版:有命令行 sigrok-cli-SLogic,也有 PulseView 图形界面。我用的是 Sipeed slogic-dev 分支的 libsigrok,加 sigrok-cli 0.8 和 libsigrokdecode,本机原生编译。
下面假定 sigrok-cli 已加入 PATH。先扫描,再采集;扫描不到设备时不要继续猜协议参数。
bash
SR=sigrok-cli
$SR --scan
$SR --driver sipeed-slogic-analyzer --show
# 无外部信号时,用硬件自检图样检查链路
$SR --driver sipeed-slogic-analyzer --config samplerate=20m \
--config pattern=Emulation --samples 200000 -O csv -o emu.csv自检图样从 D0 开始逐级二分频:D0 每个样本翻转一次,D1 的频率是 D0 的一半,以此类推。它适合检查数据链路,不是外部信号源。
正常采集时不用 pattern=Emulation。以下三条分别是全通道、四通道高速、上升沿触发示例:
bash
# 16 路,200MHz
$SR --driver sipeed-slogic-analyzer --config samplerate=200m \
--samples 1000000 -O csv -o cap16.csv
# 4 路,800MHz:改变的是硬件通道数
$SR --driver sipeed-slogic-analyzer --config logic_channels=4 \
--config samplerate=800m --samples 500000 -O csv -o cap4.csv
# D0 上升沿触发,阈值 1.8V
$SR --driver sipeed-slogic-analyzer --config samplerate=20m \
--config voltage_threshold=1.8 --triggers D0=r \
--samples 100000 -O csv -o triggered.csv| 硬件通道数 | 采样率上限 | 配置 |
|---|---|---|
| 16 | 200MHz | 默认 |
| 8 | 400MHz | logic_channels=8 |
| 4 | 800MHz | logic_channels=4 |
--channels D0,D1 只选择保存哪几路,不减少硬件通道数。这是我第一次设置 800MHz 却仍落到 200MHz 的原因。通道名也不能写 D0-D15,用逗号列表或省略选择即可。
再让解码器读出一个字节
为了把“硬件采集问题”和“解码参数问题”分开,我先给解码器喂了一段合成 VCD:100000 baud、1MHz 采样、每位 10 个样本,内容只有 0x55。
| 段 | 前置空闲 | 起始位 | 八个数据位,低位先行 | 停止位 |
|---|---|---|---|---|
| 电平 | 高,至少两位时间 | 0 | 1 0 1 0 1 0 1 0 | 1 |
bash
# uart_test.vcd 是按上表准备的合成输入,不是设备抓取文件
$SR -i uart_test.vcd -I vcd \
-P uart:baudrate=100000:format=hex -A uart本机结果包含起始位、八个数据位、字节 55 与停止位。两个细节会让这个小实验失败:帧前没有空闲高电平会错认起始点;末尾没有显式结束时间戳,会把停止位截断。VCD 只记变化,最后保持高电平不代表文件自动延长。
换成真实 UART 时,D0 接接收信号,共地后按发送端参数配置。下面是 19200 baud 的命令示例,不是上述合成实验的参数:
bash
$SR --driver sipeed-slogic-analyzer --config samplerate=20m \
--samples 1000000 -P uart:baudrate=19200:rx=D0 -A uart想看真实波形的样子,可以参考下面两张 Sipeed 官方教程截图:UART 115200 与 SPI 500kHz。它们与上面的本机合成 UART 是不同来源。


卡住时,先查哪一层?
| 现象 | 优先检查 |
|---|---|
| 只亮蓝灯、扫描不到 | USB3 数据线与接口;尽量直连,排除 Hub |
| 采集全零 | 先确认信号真的在跳变,再用 Emulation 区分输入与链路问题 |
| 800MHz 配置不生效 | logic_channels 是否仍为 16 |
| UART 有波形但无字节 | 通道、波特率、极性、帧格式与采集窗口 |
| 源码编译找不到 Python 头文件 | 系统 Python 3.9.6 缺开发头;本机改用 Homebrew Python 3.12 及其 pkgconfig 路径 |
全零不自动等于设备坏了,也不能反过来断言只是没接线。自检和真实采集分开,才能缩小问题范围。
硬件与平台附录:规格、指示灯、软件入口

| 官方规格 | 内容 |
|---|---|
| USB-C | USB 3.2 Gen1,5Gbps;需要 USB3 数据线 |
| 连续流式组合 | 800M@4ch / 400M@8ch / 200M@16ch |
| 最大数据带宽 | 3.2Gbps |
| 信号输入 / 阈值 | 0~10V / 官方标注 0~6V 可调;本机驱动选项为 0.1~6.0V |
| 尺寸 / 外壳 | 40×40×10mm,铝合金 |
| 参考售价 | 官方资料当时标注 ¥369 起,不是现价保证 |
包装包含主机、USB3 数据线、16 个测试夹、SIM 卡针、说明卡和收纳包;线组有 2×6P 杜邦线或 2×4P 同轴线两种选项。MODE 隐藏按键用于切换逻辑分析仪与 DFU 升级模式,不是采集触发按钮。
| ACT 指示 | 含义 |
|---|---|
| 青色 | 正常连接,蓝为电源、绿为 USB LINK |
| 青色 + 红快闪 | 数据传输 |
| 青色 + 红慢闪 | DFU 模式 |
| 仅蓝色 | USB 连接失败 |
| 仅红色 | Flash 加载异常,检查线缆与硬件 |
官方文档指出 Windows 10/11 原生程序受 USB 驱动限制约 390MB/s,组合降为 400M@4ch / 200M@8ch / 100M@16ch;可考虑 Linux 环境。Linux 需配置 udev 权限;本文使用 Apple Silicon macOS,不把本机结果推广到所有主机。
底层不是通用串口:Sipeed 驱动使用厂商 USB 控制传输访问 R32_CTRL/0x04、R32_FLAG/0x08、R32_AUX/0x0C,采样由 USB3 bulk IN 流式传输;16 路时每样本两字节。
官方还有 SLogic Agent Plugin 教程,把扫描、采集与解码封装给支持插件的 Agent。使用时仍要说清引脚、协议和目标,并要求保留原始波形、实际命令与警告;插件不能替代接线检查。
资料从哪里来
- Sipeed 产品介绍 与 硬件操作手册:规格、接线与硬件图片。
- SLogic 下载站:预编译命令行工具与图形界面。
- libsigrok 的 slogic-dev 分支:本机使用的驱动源码;固件更新工具。
- 官方 Agent 教程:本文 UART / SPI 参考截图的来源。七张图片均保留本站存档。