2、逻辑分析仪入门:逻辑分析仪工作原理、采样率与带宽选择、探头连接与通道映射、触发设置基础
说实话,很多工程师调试SPI时第一反应就是拿示波器去戳。但示波器看个波形还行,真要分析一长串数据包,那叫一个痛苦。我个人习惯是——调试SPI,首选逻辑分析仪。
为什么?因为逻辑分析仪只看「0」和「1」,不关心电压到底是多少。你想想看,SPI这种数字协议,我们真正关心的是时钟沿上数据对不对,而不是那个上升沿有多陡。所以逻辑分析仪才是SPI调试的利器。
2.1 逻辑分析仪的工作原理
逻辑分析仪的核心思想很简单:以固定时间间隔采样输入信号,与预设阈值比较,输出0或1。
具体来说,每个通道的输入信号会经过一个比较器。信号电压高于阈值,就判为高电平(1);低于阈值,就判为低电平(0)。然后把这些二进制数据存到内存里,最后显示成时序图。
关键点:逻辑分析仪不关心模拟细节。它只记录「什么时候电平变了」。所以对于SPI这种同步协议,它天然适合。
我在项目中遇到过一件事:有个同事用示波器抓SPI数据,抓了半天说波形不对。我过去一看,他探头地线没接好,波形全是噪声。换逻辑分析仪,接上四根线,一秒出结果。这就是工具选对的重要性。
2.2 采样率与带宽选择
采样率是逻辑分析仪最重要的参数。它决定了你能看到多窄的脉冲。
根据奈奎斯特定理,采样率至少要是信号最高频率的2倍。但实际应用中,我建议至少4倍以上。为什么?因为SPI的边沿时间可能很快,采样率不够会漏掉关键跳变。
| SPI时钟频率 | 最低采样率(2倍) | 推荐采样率(4倍) | 稳妥采样率(10倍) |
|---|---|---|---|
| 1 MHz | 2 MHz | 4 MHz | 10 MHz |
| 10 MHz | 20 MHz | 40 MHz | 100 MHz |
| 50 MHz | 100 MHz | 200 MHz | 500 MHz |
我的经验:调试普通SPI Flash(通常20-50 MHz),100 MHz采样率的逻辑分析仪完全够用。但如果你要抓高速SPI(比如100 MHz以上),建议上500 MHz的。我曾经用200 MHz采样率抓80 MHz的SPI,结果边沿抖动根本看不清楚,换了500 MHz的才搞定。
带宽方面,逻辑分析仪通常标注的是「最大采样率」和「存储深度」。存储深度决定了你能抓多长时间的波形。公式很简单:
可抓取时间 = 存储深度 / 采样率
举个例子:1 Mpts存储深度,100 MHz采样率,只能抓10 ms的数据。嗯,这往往不够。所以我个人习惯选存储深度大一点的,至少4 Mpts起步。
2.3 探头连接与通道映射
这一步看着简单,但最容易翻车。我见过太多人因为接错线导致解码失败。
SPI通常需要4根线:
- SCLK(时钟)
- MOSI(主出从入)
- MISO(主入从出)
- CS(片选,低电平有效)
连接时要注意:
- 共地:逻辑分析仪的GND必须和被测板子共地。不共地,波形全是乱的。
- 通道顺序:我习惯把SCLK接在通道0,CS接通道1,MOSI接通道2,MISO接通道3。这样在软件里一眼就能看出对应关系。
- 探头选择:普通杜邦线就行,但线不要太长。超过20 cm容易引入串扰。我一般用10 cm左右的线。
警告:千万不要用示波器探头去接逻辑分析仪!阻抗不匹配,信号会畸变。逻辑分析仪用的是数字探头,输入阻抗高,容性负载小。
通道映射就是在软件里告诉逻辑分析仪:通道0是时钟,通道1是片选……这样它才知道怎么解码。这一步别省,我见过有人忘了映射,结果软件把MOSI当成了时钟,解码出来全是乱码。
2.4 触发设置基础
触发是逻辑分析仪的灵魂。没有触发,你只能盲抓,然后在一堆波形里手动找你要的数据。
SPI调试中最常用的触发方式:
- 边沿触发:检测CS下降沿(片选有效)开始捕获。这是最常用的。
- 码型触发:检测特定数据模式。比如你想抓SPI命令0xAB,就设触发条件为MOSI上出现0xAB。
- 协议触发:高级逻辑分析仪支持直接选SPI协议,设触发条件为「读操作」或「写操作」。
我个人习惯的做法:
- 先用边沿触发(CS下降沿)抓一段完整的SPI通信。
- 看波形,找到感兴趣的命令或数据。
- 再用码型触发精确定位。
一个小技巧:触发位置可以设延迟。比如触发后延迟50%再开始存数据,这样触发前的波形也能看到。我曾经用这个技巧抓到了一次SPI通信前的总线冲突——CS还没拉低,MOSI上已经有数据在跳了,原来是主设备提前输出了数据。
触发深度也要注意。有些逻辑分析仪触发后只能存一点点数据,导致你看不到完整的SPI帧。我建议触发深度至少设到存储深度的50%,这样前后都有足够的余量。
2.5 实战建议
最后总结几条我踩过的坑:
- 采样率不是越高越好:采样率高,存储深度消耗快。抓长时间波形时,适当降低采样率。
- 探头地线一定要接:不接地,信号参考点浮动,波形全是毛刺。
- 先验证连接:接好线后,先手动触发一次,看看时钟和数据对不对。别一上来就设复杂触发。
- 保存配置:调好的通道映射和触发设置,记得保存成配置文件。下次直接加载,省时间。
嗯,逻辑分析仪入门其实就这么点东西。说白了就是:选对采样率,接好线,设好触发,剩下的交给软件去解码。下一章我们开始实战,用逻辑分析仪抓真正的SPI波形。