第三章 环境搭建与连接:逻辑分析仪驱动安装、探针连接、CAN收发器选型与接线

好,咱们开始动手了。

前两章聊了不少理论,我知道你肯定手痒了。这一章,咱们就把设备搭起来,让信号真正跑起来。环境搭建这事儿,说简单也简单,说坑也多。我这些年调试下来,至少有一半的“疑难杂症”,最后发现都是连接问题。

3.1 逻辑分析仪的驱动安装

先说说驱动。不同厂家的逻辑分析仪,驱动安装方式差别挺大。我主要用 Saleae 和梦源这两家,就拿它们举例。

Saleae Logic 系列

这个最简单。去官网下个 Logic 2 软件,安装包自带驱动。插上设备,系统会自动识别。Windows 下如果没反应,八成是驱动签名问题。我遇到过几次,Win10 强制签名,老版本驱动装不上。

我的习惯: 装驱动前,先按住设备上的复位键再插 USB。等电脑识别到未知设备,再松手。这样成功率最高。

梦源逻辑分析仪

梦源的驱动稍微麻烦点。它用的是 libusb 驱动,需要手动安装 Zadig 工具。步骤其实不复杂:

  1. 插上设备,打开设备管理器,找到“未知设备”
  2. 运行 Zadig,选择这个设备
  3. 驱动选 WinUSB 或 libusb-win32,点 Install

嗯,这里要注意:千万别选错了设备。我有个同事,把鼠标的驱动给换了,结果鼠标动不了,折腾了半天才发现。

避坑指南: 我曾经在 Win11 上装梦源驱动,死活装不上。后来发现是系统安全启动(Secure Boot)的问题。关掉安全启动,或者用禁用驱动签名模式启动,就解决了。

3.2 探针连接与信号完整性

驱动装好了,接下来是物理连接。很多人觉得,拿个杜邦线怼上去就行。其实不然,探针连接的质量,直接决定了你能不能抓到正确的波形。

探针选择

逻辑分析仪自带的探针,一般有两种:

  • 杜邦线探针:便宜,但容易松动。适合低速、临时调试
  • 排线探针:带夹子或钩子,接触可靠。我建议长期调试用这个

我个人习惯,手边常备一套带钩子的探针。夹在芯片引脚上,稳得很。杜邦线嘛,插面包板还行,直接怼芯片引脚,一碰就掉。

接地问题

这是个大坑。逻辑分析仪的地,必须和被测电路的地共地。不共地,波形全是毛刺,根本没法看。

我见过有人用一根长杜邦线接地,结果信号反射严重,波形都变形了。正确的做法是:用最短的线,把逻辑分析仪的 GND 和板子的 GND 连在一起。最好是直接焊个地线环,或者用鳄鱼夹夹在板子的地平面。

经验之谈: 抓 CAN 总线时,地线长度不要超过 10cm。我试过用 30cm 的线,结果波特率 500k 时,波形上全是过冲。剪短到 10cm,立马干净了。

3.3 CAN 收发器选型与接线

逻辑分析仪只能抓数字信号,但 CAN 总线是差分信号。所以,你需要一个 CAN 收发器,把差分信号转成单端信号,才能喂给逻辑分析仪。

选型建议

市面上常见的 CAN 收发器芯片,有这几个:

型号 工作电压 速率 特点
TJA1050 5V 最高 1Mbps 经典款,耐操,我用了好多年
SN65HVD230 3.3V 最高 1Mbps 适合 3.3V 系统,低功耗
MCP2551 5V 最高 1Mbps 便宜,但容易发热

我个人推荐 TJA1050。为什么?因为它皮实。我曾在一次项目中,不小心把 CANH 和 CANL 接反了,TJA1050 愣是没烧,只是不工作。换回来就好了。要是 MCP2551,估计已经冒烟了。

接线方法

接线其实很简单。收发器一般有这几个引脚:

  • VCC:接电源(5V 或 3.3V,看芯片)
  • GND:接地
  • RXD:接收输出,接逻辑分析仪通道
  • TXD:发送输入,一般悬空(我们只监听)
  • CANH:接总线 CANH 线
  • CANL:接总线 CANL 线

你想想看,我们只是解码,不需要发送数据。所以 TXD 悬空就行。RXD 接逻辑分析仪的一个通道,比如通道 0。

小技巧: 在 CANH 和 CANL 之间,并一个 120 欧姆的终端电阻。如果总线上已经有终端电阻了,可以不加。但如果你不确定,加上最保险。我习惯在收发器模块上直接焊一个 120 欧姆电阻,省事。

完整接线示例

假设你用 TJA1050 模块,接线如下:

TJA1050 模块         逻辑分析仪
VCC    ----> 5V 电源
GND    ----> GND(共地)
RXD    ----> 通道 0
TXD    ----> 悬空
CANH   ----> 总线 CANH
CANL   ----> 总线 CANL

嗯,就这么简单。接好后,打开逻辑分析仪软件,设置通道 0 为 CAN 解码,波特率选 500k(或者你总线的实际波特率)。然后抓一下,应该就能看到数据了。

注意: 如果抓到的数据全是乱码,或者波形幅度很小,先检查共地。我遇到过好几次,都是地线没接好。另外,检查一下 CANH 和 CANL 有没有接反。接反了,波形是反的,解码肯定不对。

好了,环境搭好了,探针接上了,收发器也连好了。下一章,咱们就正式开始抓波形、解码数据。到时候我会教你,怎么从一堆乱码中,找到真正有用的信息。