雕虫小技之逻辑分析仪

sigrok-cli

sigrok-cli是PluseView的命令行工具。对于工程师来说,命令行工具能提供很多自定义的使用技巧。特意记录一下。笔者持有的逻辑分析仪为nanoDLA V1.2(问题不少,不推荐)。

示例1

sigrok-cli.exe --driver fx2lafw --scan

nanoDLA的驱动协议为fx2lafw。--scan命令可以扫描连接逻辑分析仪状态。

C:\Program Files\sigrok\sigrok-cli>sigrok-cli.exe --driver fx2lafw --scan
The following devices were found:
fx2lafw:conn=1.26 - sigrok FX2 LA (8ch) [S/N: sigrok FX2 8ch] with 8 channels: D0 D1 D2 D3 D4 D5 D6 D7

如果驱动协议不清,可以删除--driver fx2lafw参数。

C:\Program Files\sigrok\sigrok-cli>sigrok-cli.exe --scan
sr: asix-omega-rtm-cli: Cannot execute RTM CLI process: Failed to execute helper program (Invalid argument)
The following devices were found:
demo - Demo device with 13 channels: D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4
fx2lafw:conn=1.44 - sigrok FX2 LA (8ch) [S/N: sigrok FX2 8ch] with 8 channels: D0 D1 D2 D3 D4 D5 D6 D7

示例2

sigrok-cli.exe --driver fx2lafw --show

--show命令可以显示连接逻辑分析仪状态信息。

C:\Program Files\sigrok\sigrok-cli>sigrok-cli.exe --driver fx2lafw --show
Driver functions:
    Logic analyzer
Scan options:
    conn
    probe_names
fx2lafw:conn=1.26 - sigrok FX2 LA (8ch) [S/N: sigrok FX2 8ch] with 8 channels: D0 D1 D2 D3 D4 D5 D6 D7
Channel groups:
    Logic: channels D0 D1 D2 D3 D4 D5 D6 D7
Supported configuration options across all channel groups:
    continuous: on, off
    limit_frames: 1 (current)
    limit_samples: 0 (current)
    conn: 1.26 (current)
    samplerate - supported samplerates:
      20 kHz (current)
      25 kHz
      50 kHz
      100 kHz
      200 kHz
      250 kHz
      500 kHz
      1 MHz
      2 MHz
      3 MHz
      4 MHz
      6 MHz
      8 MHz
      12 MHz
      16 MHz
      24 MHz
      48 MHz
    Supported triggers: 0 1 r f e
    captureratio: 0 (current)

特别注意上述的channels和samplerate信息。后续命令需要跟该信息完全对应。

示例3

sigrok-cli.exe --driver fx2lafw -P cec:cec=D6 --continuous --config samplerate="4 MHz"

上述命令指定在D6(必须和show出来的信息一致)通道解释CEC协议,采样速度为4MHz(必须和show出来的信息一致,并且用双引号包起来)。
通过指定信息-A cec=frame可以过滤多余的信息,更利于分析。例如:

C:\Program Files\sigrok\sigrok-cli>sigrok-cli.exe --driver fx2lafw -P cec:cec=D6 -A cec=frame --continuous --config samplerate="4 MHz"
cec-1: 55
cec-1: 55
cec-1: 5f:84:10:00:05
cec-1: 50:83
cec-1: 5e
cec-1: 50:c0
cec-1: 50:72:01

可以清楚看到CEC的互交过程。

如何设置过滤器

  1. 设计协议命令,然后加上-l 4参数。
sigrok-cli.exe --driver fx2lafw -P cec:cec=D6 --continuous --config samplerate="4 MHz" -l 4
  1. 执行,查找相关信息
srd: Decoding: abs start sample 8696320, abs end sample 8736768 (40448 samples, 40448 bytes, unitsize = 1), instance cec-1.
8687645-8697265 cec-1: bit: "0"
8620324-8697265 cec-1: byte: "0x5a"
8697265-8706882 cec-1: eom-1: "EOM=Y"
8706882-8723282 cec-1: ack: "ACK"
8427977-8706882 cec-1: frame: "50:7a:5a"
  1. 确认。例如上述的bit,byte,eom-1,ack和frame都可以作为-A cec=的过滤器。过滤器用:来隔开。
    例如:
sigrok-cli.exe --driver fx2lafw -P i2c:scl=D4:sda=D2 -A i2c=data-read:data-write:ack:nack:stop --continuous --config samplerate="1 MHz"

其他示例

  • I2C监控
sigrok-cli.exe --driver fx2lafw -P i2c:scl=D4:sda=D2 --samples 1g --config samplerate="4 MHz" -O hex
sigrok-cli.exe --driver fx2lafw -P i2c:scl=D4:sda=D2 --time 3000s --config samplerate="4 MHz" -O hex
  • CEC监控
sigrok-cli.exe --driver fx2lafw -P cec:cec=D6 -A cec=frame --continuous --config samplerate="4 MHz" -O hex
  • 串口监控
sigrok-cli.exe --driver fx2lafw --protocol-decoders uart -A uart="rx-data" --channels D0 --continuous --config samplerate="2 MHz"

帮助

逻辑分析仪测试

nanoDLA V1.2(不推荐)

开箱即用
不推荐原因:频繁掉线

Kingst LA5016(推荐指数1星)

步骤(参考rigrok文档更佳):

  1. 先安装好官方驱动
  2. 下载官方Linux驱动
  3. 下载sigrok-util
  4. 将Kingst官方Linux驱动解压到sigrok-util的kingst-la目录
  5. Linux系统下进入sigrok-util的kingst-la目录执行./sigrok-fwextract-kingst-la2016 KingstVIS/KingstVIS
  6. 将生成的固件导入PulseView和sigrok-cli安装目录下的share\sigrok-firmware目录
  7. 重启PulseView或sigrok-cli

不推荐原因:命令行不能实时输出,需要停止才能生成数据。PulseView可凑合用。

sigrok-cli.exe -d kingst-la2016 -C CH0 --continuous -P cec:cec=CH0 --config samplerate="4 MHz"

高仿Saleae 16(PulseView推荐指数2星)

不推荐原因:无法使用用sigrok。只使用图形界面,用Saleae很稳定,也很强大,可考虑.

Linux客户端安装

下载链接

下载链接

安装步骤

笔者系统为Deepin 23社区版。

  1. 导出执行文件
./Logic-2.4.22-linux-x64.AppImage --appimage-extract
mv squashfs-root Logic
ethan@G5000:~/Software$ ls Logic
AppRun                  chrome_crashpad_handler  libEGL.so     libvk_swiftshader.so  LICENSES.chromium.html  Logic.desktop  resources.pak      v8_context_snapshot.bin
chrome_100_percent.pak  chrome-sandbox           libffmpeg.so  libvulkan.so.1        locales                 Logic.png      snapshot_blob.bin  version
chrome_200_percent.pak  icudtl.dat               libGLESv2.so  LICENSE               Logic                   resources      usr                vk_swiftshader_icd.json
  1. 配置icons文件
cp -rf ~/Software/Logic/usr/share/icons/* ~/.local/share/icons/
ethan@G5000:~/Software/Logic$ tree ~/.local/share/icons/ 
/home/ethan/.local/share/icons/
└── hicolor
    ├── 128x128
    │   └── apps
    │       └── Logic.png
    ├── 16x16
    │   └── apps
    │       └── Logic.png
    ├── 256x256
    │   └── apps
    │       └── Logic.png
    ├── 32x32
    │   └── apps
    │       └── Logic.png
    ├── 48x48
    │   └── apps
    │       └── Logic.png
    └── 64x64
        └── apps
            └── Logic.png

13 directories, 6 files
  1. 配置desktop文件
ethan@G5000:~/Software$ cat ~/.local/share/applications/Logic.desktop 
[Desktop Entry]
Name=Logic
Exec=/home/ethan/Software/Logic/Logic
Terminal=false
Type=Application
Icon=Logic
StartupWMClass=Logic
X-AppImage-Version=2.4.22
Comment=Debug hardware like a pro
Categories=Utility
  1. 配置rules
    非root用户,需要配置udev rules才能免sudo使用。
ethan@G5000:~/Software/DSView-1.3.2$ cat /etc/udev/rules.d/99-SaleaeLogic.rules
#
# Saleae Logic
# This file should be installed to /etc/udev/rules.d so that you can access the Saleae Logic hardware without being root
#
# Type this at the command prompt: sudo cp 99-SaleaeLogic.rules /etc/udev/rules.d
#

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0925", ATTR{idProduct}=="3881", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1001", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1003", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1004", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1005", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1006", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1007", MODE="0666"
  1. 其他
    以上步骤执行完成,注销系统并重新登陆可以在菜单栏找到Logic的图标。此时可以发送dock栏便捷使用。

海蓝思源Logic Analyzer(推荐指数4星

推荐原因:命令行稳定运行

DSView

Linux客户端

下载链接

下载链接

安装步骤

笔者系统为Deepin 23社区版。DSView安装复杂度偏高。

  1. 编译依赖
sudo apt install git gcc g++ make cmake qt5-default libglib2.0-dev zlib1g-dev    libusb-1.0-0-dev libboost-dev libfftw3-dev python3-dev libudev-dev pkg-config
  1. 编译步骤
# 如果需要指定路径可以:
# cmake -DCMAKE_INSTALL_PREFIX=/home/ethan/Software
# 如果不需要需要指定路径可以:
cmake
make
# 如果需要指定路径可以免root:
# make install
# 如果需要指定路径需要root:
sudo make install
  1. 配置desktop文件
ethan@G5000:~/Software/DSView-1.3.2$ cat /usr/share/applications/dsview.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=DSView
Comment=GUI Program for DreamSourceLab USB-based Instruments
TryExec=/usr/local/bin/DSView
Exec=/usr/local/bin/DSView
Icon=/usr/local/share/pixmaps/dsview.svg
Terminal=false
Categories=Development;Electronics;Qt;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值