第二节:测量工具介绍——数字示波器、逻辑分析仪、时基与采样率设置

做低速总线调试,手里没几样趁手的家伙可不行。我见过不少新手,拿着万用表戳来戳去,愣说I2C没波形。其实不是没波形,是你根本看不见。今天咱们就聊聊,测低速总线到底该用什么工具,怎么用。

一、数字示波器:你的第一道防线

示波器这东西,说白了就是看电压随时间变化的。低速总线(I2C、SPI、UART)频率不高,几十K到几MHz,普通示波器完全够用。但我个人习惯,哪怕测100K的I2C,也至少用100MHz带宽的示波器。为什么?因为信号边沿里藏着高频分量,带宽不够,上升沿就变缓了,时序测量直接不准。

关键参数速查表:

总线类型 典型频率 推荐示波器带宽 推荐采样率
I2C (标准模式) 100 kHz ≥ 50 MHz ≥ 250 MSa/s
I2C (快速模式) 400 kHz ≥ 100 MHz ≥ 1 GSa/s
SPI 1-10 MHz ≥ 100 MHz ≥ 1 GSa/s
UART (115200) 115.2 kHz ≥ 20 MHz ≥ 100 MSa/s

我在项目中遇到过一件事:一个I2C设备偶尔通信失败,用20MHz示波器看波形,SCL和SDA都挺干净。后来换了台200MHz的,才发现SCL的上升沿有个小台阶——原来是上拉电阻太大,加上总线电容,边沿变缓了。20MHz的示波器根本看不到这个细节。

二、逻辑分析仪:多通道的利器

示波器再好,通道数有限。你想想看,一个SPI总线,SCK、MOSI、MISO、CS,这就四个信号了。再加上电源、地、复位,示波器四个探头根本不够用。这时候就得请出逻辑分析仪。

逻辑分析仪只看高低电平,不看具体电压值。它擅长的是抓时序、看协议。我常用的逻辑分析仪有8通道、16通道甚至32通道的。采样率不用太高,对于低速总线,100MHz采样率绰绰有余。

我的个人习惯:调试I2C时,我会同时抓SCL、SDA、还有设备的中断引脚和电源。这样一旦通信失败,我能立刻判断是总线问题,还是设备没上电,还是设备没准备好。逻辑分析仪的触发功能也很重要——设置一个下降沿触发,就能稳稳抓住START条件。

三、时基设置:别让波形跑太快

时基,就是屏幕上每格代表多少时间。这个设置直接影响你能不能看清波形细节。我见过有人测I2C,时基设在1μs/div,结果屏幕上就一条竖线——那是波形跑太快了。

对于低速总线,我建议这样设置:

  • 先看全局:时基设在100μs/div到1ms/div,看看整个通信过程是否完整
  • 再看细节:把时基调到1μs/div到10μs/div,观察边沿、毛刺、建立时间
  • 测量具体参数:用示波器的光标功能,直接量出高电平时间、低电平时间、上升时间

嗯,这里要注意:时基调得越小,屏幕上显示的波形时间范围就越短。如果你要抓一整个I2C数据帧(比如几十个字节),时基至少得设在500μs/div以上。否则你只能看到片段,看不到全貌。

四、采样率:够用就好,别盲目追求

采样率是示波器每秒采集多少个点。采样率越高,波形越细腻。但也不是越高越好。我曾经为了追求高采样率,把示波器设到5GSa/s,结果存储深度不够,只抓了很短一段波形,根本看不到完整的通信过程。

对于低速总线,有个简单公式:

所需采样率 ≥ 信号最高频率 × 5

比如I2C快速模式400kHz,信号最高频率其实看的是边沿,大概在10-20MHz。所以采样率有100MSa/s就足够了。你非要用1GSa/s,也不是不行,但要注意存储深度是否够用。

避坑指南:我曾经犯过一个错误——用逻辑分析仪抓SPI,采样率设得太低(20MHz),结果抓出来的数据全是错的。因为SPI时钟是10MHz,20MHz采样率每个时钟周期只能采两个点,边沿位置根本判断不准。后来我把采样率提到100MHz,问题立刻解决。记住:采样率至少要是信号频率的5-10倍,最好10倍以上。

五、实际测量中的小技巧

说了这么多理论,来点实战的:

  1. 探头补偿:每次用示波器前,先做探头补偿。把探头接到自带的1kHz方波上,调补偿电容直到方波边沿没有过冲或圆角。这一步很多人跳过,但直接影响测量精度。
  2. 接地要短:探头的地线夹子越短越好。长地线会引入噪声,尤其在高频边沿测量时。我习惯用探头自带的弹簧接地针,比地线夹子干净得多。
  3. 触发设置:测I2C时,触发源选SCL,触发方式选下降沿。测UART时,触发源选TX,触发方式选下降沿(起始位)。这样每次都能稳定抓到数据起始点。
  4. 存储深度:如果示波器存储深度有限,可以适当降低采样率来换取更长的记录时间。比如测一个完整的I2C EEPROM读写操作,可能需要几毫秒的时间窗口。

一句话总结:测低速总线,示波器看波形质量,逻辑分析仪看协议时序。时基设宽看全貌,设窄看细节。采样率够用就好,别贪高。记住这些,你就能少走很多弯路。

下一节咱们聊聊具体的时序参数测量方法,包括建立时间、保持时间、上升下降时间这些硬指标。到时候我会拿一个真实的I2C故障案例来拆解,看看这些工具到底怎么用。