第二节:测量工具介绍——数字示波器、逻辑分析仪、时基与采样率设置
做低速总线调试,手里没几样趁手的家伙可不行。我见过不少新手,拿着万用表戳来戳去,愣说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倍以上。
五、实际测量中的小技巧
说了这么多理论,来点实战的:
- 探头补偿:每次用示波器前,先做探头补偿。把探头接到自带的1kHz方波上,调补偿电容直到方波边沿没有过冲或圆角。这一步很多人跳过,但直接影响测量精度。
- 接地要短:探头的地线夹子越短越好。长地线会引入噪声,尤其在高频边沿测量时。我习惯用探头自带的弹簧接地针,比地线夹子干净得多。
- 触发设置:测I2C时,触发源选SCL,触发方式选下降沿。测UART时,触发源选TX,触发方式选下降沿(起始位)。这样每次都能稳定抓到数据起始点。
- 存储深度:如果示波器存储深度有限,可以适当降低采样率来换取更长的记录时间。比如测一个完整的I2C EEPROM读写操作,可能需要几毫秒的时间窗口。
一句话总结:测低速总线,示波器看波形质量,逻辑分析仪看协议时序。时基设宽看全貌,设窄看细节。采样率够用就好,别贪高。记住这些,你就能少走很多弯路。
下一节咱们聊聊具体的时序参数测量方法,包括建立时间、保持时间、上升下降时间这些硬指标。到时候我会拿一个真实的I2C故障案例来拆解,看看这些工具到底怎么用。