关于逻辑分析仪

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

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

  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以上才能正确分析

参考

Sigrok逻辑分析仪软件(基于CY7C68013A)的更多相关文章

  1. CefSharp的简单应用,制作自动学习视频软件(基于Chromium)

    CefSharp在NuGet的简介是“The CefSharp Chromium-based browser component”,机翻的意思就是“基于Cefsharp Chromium的浏览器组件” ...

  2. 有了门面,程序会更加体面!- pos软件基于三层架构 -09

    续上篇)        大鸟说道:“实际上没有学过设计模式去理解三层架构会有失偏颇的,毕竟分层是更高一级别的模式,所谓的架构模式.不过在程序中,有意识的遵循设计原则,却也可以有效的做出好的设计.”   ...

  3. 小学生四则运算出题软件-基于java控制台的实现

    .题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...

  4. MES系统与喷涂设备软件基于文本文件的数据对接方案

    产品在生产过程中除了记录产品本身的一些数据信息,往往还需要记录下生产设备的一些参数和状态,这也是MES系统的一个重要功能.客户的药物支架产品,需要用到微量药物喷涂设备,客户需要MES系统能完整记录下每 ...

  5. 利用plink软件基于LD信息过滤SNP

    最近有需求,对WGS测序获得SNP信息进行筛减,可问题是测序个体少,call rate,maf,hwe,等条件过滤后,snp数量还是千万级别,所以后面利用plink工具根据LD信息来滤除大量SNP标记 ...

  6. 基于DirectShow和FFmpeg的USB摄像头监控软件-转

    第一个版本 ### 软件版本及实现功能 0.0.1 1. USB摄像头枚举和设备信息获取2. 实时视频观看3. 24小时不间断录像,录像文件支持暴风影音播放 ### 软件说明: 软件基于 Direct ...

  7. 3D建模与处理软件简介

    [前言]自半年前笔者发表博客“什么是计算机图形学”以来,时常有人来向笔者询问3D模型的构建方法与工具.笔者的研究方向是以3D技术为主,具体包括3D建模,3D处理及3D打印三个方面,在3D建模与处理方面 ...

  8. 基于Activiti的流程应用开发平台JSAAS-WF V5.3

    第1章 产品概述及体系架构 1.1.概述 红迅JSAAS-WF工作流平台V5是广州红迅软件有限公司面向合作伙伴以及有IT运维团队中大型企业提供新一代的流程管理产品,它基于流行的JAVA开源技术上构建, ...

  9. 2015年度新增开源软件排名TOP100

    2015年度新增开源软件排名TOP100 本榜单包含2015年开源中国新收录的软件中,根据软件本身的关注度.活跃程度进行排名前100名的软件.从这份榜单中或许可以了解到最新业界的趋势. 1.Switc ...

  10. 2015 年最热门的国人开发开源软件 TOP 50

    开源中国在 2015 年得到了快速的发展,单开源软件收藏量就接近 40000 款,其中不乏优质的国产开源项目.本文从软件的收藏.下载.访问等多角度挑选出了 2015 年最热门的国产开源软件前五十名,让 ...

随机推荐

  1. MyBatis03——ResultMap和分页相关

    ResultMap和分页相关 当属性名和字段名不一致的时候 解决方法 1.数据库中创建user表 字段 id.name.pwd 2.Java中的实体类 @Data public class User ...

  2. Git-签名-user-email

  3. MySQL shell 备份数据库

    MySQL shell 备份数据库 背景 之前使用 mysqldump 和 mysql source 的方式备份数据库非常缓慢 有时候要耗费非常长的时间 今天发现有一个可以快速备份数据库的 mysql ...

  4. [转帖]Sql Server之旅——第六站 使用winHex利器加深理解数据页

    https://www.cnblogs.com/huangxincheng/p/4251770.html 这篇我来介绍一个winhex利器,这个工具网上有介绍,用途大着呢,可以用来玩数据修复,恢复删除 ...

  5. [转帖]Linux基础之chkconfig systemd

    https://www.cnblogs.com/barneywill/p/10461279.html   CentOS6服务用chkconfig控制,CentOS7改为systemd控制 1 syst ...

  6. [转帖]Kafka 核心技术与实战学习笔记(八)kafka集群参数配置(下)

    一.Topic级别参数 Topic的优先级: 如果同时设置Topic级别参数和全局Broker参数,那么Topic级别优先 消息保存方面: retention.ms:规定Topic消息保存时长.默认是 ...

  7. [转帖]springboot指定端口的三种方式

    https://blog.51cto.com/feirenraoyuan/5504099 第一配置文件中添加server.port=9090 第二在命令行中指定启动端口,比如传入参数 java -ja ...

  8. [转帖]java -d 参数(系统属性) 和 环境变量

    https://www.cnblogs.com/limeiyang/p/16565920.html 1. -d 参数说明 通过 java -h 查看可知: 注意:-D= : set a system ...

  9. [转帖]Traefik中诡异的502和504问题

    https://zhuanlan.zhihu.com/p/156138704 我们都知道在 Kubernetes 集群中通常会使用 Ingress 方案来统一代理集群内部的流量,而常用的 Ingres ...

  10. Cosmic云星瀚的简单学习-测试用户创建

    摘要 上一个学习文档里面总结了: 修改domain的url之后就可以重启服务然后登录了. 今天中午创建了一个业务用户,发现还挺麻烦的 因为可能短信服务有问题, 所以我这边需要有改数据库表的需求. 这里 ...