Sigrok逻辑分析仪软件(基于CY7C68013A)

关于逻辑分析仪

逻辑分析仪在调试数字电路时是非常重要的工具. 其形式与示波器类似, 采集被检测信号的电平, 并绘制时序图进行分析.

逻辑分析仪和示波器的区别:

  1. 数字量和模拟量: 示波器采集的是模拟量, 电压灵敏度是示波器性能的一个重要指标, 用于精确绘制波形, 而逻辑分析仪只采集高低电平(即0和1), 因此逻辑分析仪仅适用于数字电路分析, 不适合模拟电路信号分析.
  2. 通道数量: 示波器通道数量较少, 常见的为2通道和4通道, 而逻辑分析仪的通道数量基本上在8个或16个
  3. 协议分析: 示波器不一定带协议分析, 但是逻辑分析仪一定带协议分析. 协议分析就是根据指定的协议, 直接将采集到的信号时序解析成可以阅读的二进制码和ASCII码, 检查信号的完整性和错误
  4. 逻辑分析仪多用于观察数字电路中的信号时序, 排查问题, 用于模块间通信的开发等
  5. 示波器多用于观察波形, 电平, 用于功率电路, 射频电路开发等.

逻辑分析仪的硬件

过去, 逻辑分析仪和示波器一样都是大块头设备, 并且采样频率的高低, 采样数量的多少, 支持的分析协议多或者少, 都是区分高端低端分析仪的重要因素. USB逻辑分析仪的推出,使得仪器占位面积极小,可随身携带。更重要的是由于分析, 处理和显示是在PC上进行, 功能变得格外强大,功能还能跟软件不断升级.

专业型号及其价格

  1. Agilent 1690AD USD 28,427
  2. Actue TL2236 NTD48,000
  3. Techie Wave TWLA500 RMB12,000
  4. zero-plus LAP-B 702000 NT 118,000
  5. Link Instruments LA-55160 USD7,500
  6. Clock-link LA5540 USD2,500
  7. Janatek LA-Gold-36 1,305 €
  8. Janatek Annie-USB 339.9 €
  9. TechTools DV3400 USD1,499
  10. USB-Instrument ANT16-16 USD333
  11. Intronix LA1304 USD389
  12. NCI GoLogicU72-2M USD5,500
  13. 飞腾三环 LA-800-A RMB 11,189
  14. 致远电子 LA5034 RMB 2,980

开源逻辑分析仪项目 Sigrok 的出现, 使得低端硬件也可以使用丰富的协议分析功能, 出现了性价比很高的软硬件组合.

成品LA小盒子

下图这种形状, 8通道最高24MHz采样率的逻辑分析仪, 是淘宝最廉价的USB逻辑分析仪, 价格不到30 RMB.

外观虽然基本一样, 但是PCB有很多种

  • 较早的版本

  • 后续版本1

  • 后续版本2

  • 后续版本3

双列SSOP和QFN封装是一样的, 都是56pin. 前面的TQFP封装至少是100pin. 可以看到硬件配置是在不断缩水的, 后期版本连HC245都省了.

开发板

这个开发板也可以实现逻辑分析仪的功能, 在淘宝上价格在20出头, 查看介绍: The Lcsoft CY7C68013A Mini Board is a Cypress FX2(LP) eval board, which can be used as USB-based, 16-channel logic analyzer with up to 24MHz sampling rate. 这个板子有两种, 一个是LCSoft, 另一个是Geeetech, 后者多两个LED, 并且多一个跳线.
通道对应的pin为16-channel (PB0-PB7, PD0-PD7) 或者 8-channel (PB0-PB7), 但是要注意这些pin没有防护措施, 不能直接连检测电路. 至少要加上合适的电阻, 因为 Cypress FX2(LP) 芯片能承受的最大IO电压为5V, 可以像这个例子一样使用3.3V稳压二极管钳位电路进行保护.

存在的问题: 稳压管通常带有400pF的寄生电容, 当限流电阻为4.7K时, 带宽会被限制到大约500KHz. 这样就远不能满足24MHz的采样率. 在上面的链接中有测试.
用这个开发板制作逻辑分析仪的实例

保护电路方案1

使用74HC245三态总线收发, 隔离外部电压. 外侧电压可以到7V, 内侧就是正常的CMOS电压

保护电路方案2

使用钳位电路, 为了避免寄生电容影响, 要选用电容小的二极管, 正向可以用1N4148, 反向可以用1N5711, 这些二极管的电容都在2pF以内, 对信号影响很小.

关于以上的硬件

这些都是基于 CY7C68013A 芯片的方案, 在PC端的驱动以及软件都是一样的, 可以运行Saleae的逻辑分析仪软件, 也可以运行Sigrok.

如果仅仅作为逻辑分析仪使用, 推荐购买成品, 尺寸小巧使用方便. 这个小设备配合Sigrok, 有超级强大的协议库, 堪称逻辑分析神器. 因为常见的MCU以及嵌入式设备之间的通信速率不会太高, 大部分协议场景(UART, SPI,I2C, PWM等)都在10MHz以内, 用这个小设备就能覆盖大多数使用场景.

推荐观看视频Sigrok and Logic Analyzers

CY7C68013A 介绍

  • EZ-USB FX2系列是 Cypress 生产的, 集成USB2.0协议的微处理器, 提供8051兼容的指令系统.
  • FX2LP系列是FX2系列的其低功耗版本, 使用比较多的是 CY7C68013A.
  • FX2LP芯片的内部主要包括高性能微处理器内核
    • 片上USB物理层收发器速率480Mbps, 串行接口引擎(SIE, USB模块的一部分)
    • 8051内核, 48MHz时钟频率
    • 256byte寄存器内存
    • 增强的4时钟周期指令
    • 固件可以通过USB下载
    • 4个FIFO/IO接口, 数据总线, 地址总线和通用可编程接口等.
    • 指令集和标准的8051兼容.
       

Sigrok 软件介绍

Sigrok是一个逻辑分析软件的组合, 包含以下几部分

  • libserialport 串口通信库
  • libsigrok 基础功能库
  • libsigrokdecode 协议库
  • sigrok-cli 命令行软件
  • PulseView 用户界面软件
  • sigrok-firmware-fx2lafw 微控制器运行使用的固件

从官网下载软件安装后, 用户看到的是PulseView, 在连接上EZ-USB后, sigrok会让CY7C68013A使用指定的固件启动, 实现模拟USB设备, 采集电平和传输数据的功能

Ubuntu20.04 安装Sigrok

直接通过apt安装, 会将整个sigrok软件包都安装好

sudo apt install sigrok

不需要安装驱动, 第一次接入usb设备可能会不识别. 这时候先运行一下pulseview, 再重新接入一下硬件, 在pulseview里点connect to device, 选择 fx2lafw, 点scan for ... 扫描一下就会看到 Saleae Logic with 8 channels 设备了. 这时候在lsusb -t能看到设备变成了usbfs

lsusb -t
...
Class=Vendor Specific Class, Driver=usbfs, 480M

Windows10 安装Sigrok

软件部分没有什么问题, 下载PulseView 64位直接安装就行, 主要说一下驱动. 安装包自带Zadig, 软件安装完成后, 将你的分析仪连上USB数据线接到电脑上, 这时候电脑是不会找到驱动的, 扫描一阵之后会告诉你未知设备安装已完成. 这时候打开Zadig (如果是win7和win10, 不要点那个XP版本), 会看到其检测到未知的USB设备, 接下来做以下操作

对于外观为小盒子的CY7C68013A分析仪

  1. 勾选右侧的Edit, 编辑名称, 改为fx2lafw, 改成其他应该也行
  2. 左侧的USB ID应该显示的是0925 3881, 如果不是的话, 可能要检查一下是不是连了其它USB设备?
  3. 绿色箭头指的是将安装的驱动, 应该是WinUSB (V6.1.xxx)
  4. 点击 Install Driver 开始安装

对于外观为开发板的CY7C68013A

  1. 编辑名称为 fx2lp
  2. USB ID有两种: 04B4:8613 或 0925:3881
  3. 驱动选择 libusbK(v3.0.7.0)
  4. 点击 Install Driver 开始安装

安装需要几分钟, 时间比较长

驱动安装完成后, 在Windows设备管理器中应该能看到对应名称的硬件.

软件运行

如果是刚装完驱动, 需要拔插一下分析仪, 重新连接后, 再打开PulseView, 会自动检测到硬件并连接. 之后就可以开始使用了.

连接设备

如果没有连接硬件, 或者先打开了软件再连的分析仪, 或者之前切换到demo device了,

  1. 点击Connect to Device
  2. Choose the driver: 选择 fx2lafw (generic driver for FX2 based LAs)(fx2lafw)
  3. Choose the interface: 选择 USB
  4. 点击 Scan for devices using driver above
  5. 结果框里会出现Saleae Logic with 8 channels或者Cypress FX2 with 16 channels, 点中, 点击OK

常用功能

  • 开启/关闭通道: 图标栏上的信号夹图标
  • 设置预采样比例: 图标栏上的配置按钮
  • 显示/隐藏时间窗: 图标栏上的Show Cursors, 可以用来测量时间跨度
  • 图像操作:
    • 缩小: 按-键, 或鼠标上下滚轮
    • 放大: 按+键, 或鼠标上下滚轮
    • 左右移动: 鼠标左右滚轮
  • 选择采样率和采样数量
    • 根据被检测的信号进行选择

使用协议分析

  • 通过图标栏 Add protocol decoder, 打开协议选择
  • 双击需要的协议, 会添加到时间轴上
  • 点击协议标签进行配置

使用触发功能

需要根据协议进行选择, 例如对于UART, 应该选择下降沿, 只需要选中最开始发出信号的那一路进行触发就行, 选择好之后, 点击Run, 然后等待触发.

实际测试中, 波特率9600的串口UART, 检测频率必须在50KHz以上才能正确分析

参考

原文地址:https://www.cnblogs.com/milton/p/15376584.html