关于逻辑分析仪
逻辑分析仪在调试数字电路时是⾮常重要的⼯具. 其形式与⽰波器类似, 采集被检测信号的电平, 并绘制时序图进⾏分析.逻辑分析仪和⽰波器的区别:
1. 数字量和模拟量: ⽰波器采集的是模拟量, 电压灵敏度是⽰波器性能的⼀个重要指标, ⽤于精确绘制波形, ⽽逻辑分析仪只采集⾼低电平(即0和1), 因此逻辑分析仪仅适⽤于数字电路分析, 不适合模拟电路信号分析.
2. 通道数量: ⽰波器通道数量较少, 常见的为2通道和4通道, ⽽逻辑分析仪的通道数量基本上在8个或16个
3. 协议分析: ⽰波器不⼀定带协议分析, 但是逻辑分析仪⼀定带协议分析. 协议分析就是根据指定的协议, 直接将采集到的信号时序解析成可以阅读的⼆进制码和ASCII码, 检查信号的完整性和错误
4. 逻辑分析仪多⽤于观察数字电路中的信号时序, 排查问题, ⽤于模块间通信的开发等5. ⽰波器多⽤于观察波形, 电平, ⽤于功率电路, 射频电路开发等.
逻辑分析仪的硬件
过去, 逻辑分析仪和⽰波器⼀样都是⼤块头设备, 并且采样频率的⾼低, 采样数量的多少, ⽀持的分析协议多或者少, 都是区分⾼端低端分析仪的重要因素. USB逻辑分析仪的推出,使得仪器占位⾯积极⼩,可随⾝携带。更重要的是由于分析, 处理和显⽰是在PC上进⾏, 功能变得格外强⼤,功能还能跟软件不断升级.专业型号及其价格
1. Agilent 1690AD USD 28,4272. Actue TL2236 NTD48,000
3. Techie Wave TWLA500 RMB12,0004. zero-plus LAP-B 702000 NT 118,0005. Link Instruments LA-55160 USD7,5006. Clock-link LA5540 USD2,5007. Janatek LA-Gold-36 1,305 €8. Janatek Annie-USB 339.9 €9. TechTools DV3400 USD1,499
10. USB-Instrument ANT16-16 USD33311. Intronix LA1304 USD389
12. NCI GoLogicU72-2M USD5,50013. 飞腾三环 LA-800-A RMB 11,18914. 致远电⼦ 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以内, ⽤这个⼩设备就能覆盖⼤多数使⽤场景.推荐观看视频
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:38813. 驱动选择 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 and Logic Analyzers
因篇幅问题不能全部显示,请点此查看更多更全内容