嵌入式中逻辑分析仪的基本使用方法

简介: 嵌入式中逻辑分析仪的基本使用方法

单片机开发工程师和电子爱好者,每天都要和各种各样的数字电路打交道。在制作调试电路时除了使用万用表、示波器等工具,逻辑分析仪也是必不可少的

逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要的作用在于时序判定。

逻辑分析仪与示波器不同,它不能显示连续的模拟量波形,而只显示高低两种电平状态(逻辑1和0)。

在设置了参考电压后,逻辑分析仪将采集到的信号与电压比较器比较,高于参考电压的为逻辑1,低于参考电压的为逻辑0。

这样就可以将被测信号以时间顺序显示为连续的高低电平波形,便于使用者进行分析和调试。

使用逻辑分析仪,可以方便地设置信号触发条件开始采样,分析多路信号的时序,捕获信号的干扰毛刺,也可以按照规则对电平序列进行解码,完成通信协议分析。

逻辑分析仪根据其硬件设备的功能和复杂程度,主要分为独立式(单机型)逻辑分析仪和基于电脑(PC-Base)的虚拟逻辑分析仪两大类。

独立式逻辑分析仪是将所有的软件,硬件整合在一台仪器中,使用方便。虚拟逻辑分析仪则需要结合电脑使用,利用PC强大的计算和显示功能,完成数据处理和显示等工作。

专业逻辑分析仪,通常具有数量众多的采样通道,超快的采样速度和大容量的存储深度,但昂贵的价格也不是个人所能承受的。

作为工程师手头常备的开发工具,目前有许多入门级的逻辑分析仪设计,整体功能虽然不能和专业高档仪器相比,但是用较低的成本来实现特定的功能,也是非常成功的设计。

本文以下讨论的逻辑分析仪,主要是指这类入门级设计。

基于电脑并口的逻辑分析仪曾是主流,但是近年来电脑系统逐步不再配置并口,这类设计已经成为明日黄花,仅仅还具有原理学习的价值。

另一类的逻辑分析仪,是以低速单片机为基础的。很多爱好者用PIC、AVR等常见单片机设计了自己的作品。但这类单片机逻辑分析仪的共同弱点就是采样速度太慢,通常不超过1MHz。

以USB IO芯片为基础的入门级逻辑分析仪现在最为流行。

比如Saleae logic,还有类似的USBee等。这类产品主要采用一个USB IO芯片,例如CYPRESS公司的CY7C68013A-56PVXC,所有的信号触发和处理工作都是电脑上的软件完成的,硬件部分就只是一个数据记录仪。

最高采样速度为24MHz。它们可以“无限数量”地采样,因为所有的数据都是存储在电脑里的。

目前一般最多是8个通道,更多的通道数量会成比例地降低最高采样速度。这类产品构造简单,方便易用,价格便宜,是调试单片机开发工作的好工具。

它的缺点主要是采样速度只有24MHz、8个通道,对于分析高速并行总线就不能胜任了。

更进一步的设计,需要增加FPGA、SRAM等器件,才能解决速度不够和通道数量不足的问题。

下面就以Saleae逻辑分析仪为例,通过采样分析I2C总线波形和PWM波形,简单介绍它的特点和使用方法。

先介绍用逻辑分析仪采样单片机对I2C器件AT24C16的写数据过程。

硬件连接

1. 先将逻辑分析仪的GND与目标板的GND连接,让二者共地。

2. 选择需要采样的信号,这里就是AT24C16的SDA和SCL,将SDA接入逻辑分析仪的通道1(Input 1),SCL接入通道1(Input 2)。

3. 将逻辑分析仪和电脑USB口连接,windows会识别该设备,并在屏幕右下角显示USB设备标识。

软件使用

1.运行Saleae软件,此时逻辑分析仪的硬件已经与电脑相连,软件会显示[Connected]。

2.设置采样数量和速度,I2C为低速通信,所以速度设置不必太高,这里设置为20M Samples @ 4M Hz的速度,也就是能持续采样5秒钟。

3.设置协议,点右上角的“Options”按钮,找到analyzer1,设置为I2C协议,详见图1。

4.按“Start”按钮,开始采样。

图1

数据分析

采样结束后,可以看到波形,见图2。由于我们设置了是I2C分析,因此不光显示出波形,还有根据I2C协议解码显示的字节内容。

单片机对AT24C16进行写入操作,在0x00地址处写入10000等数字。波形起始是“start”信号,然后依次是AT24C16的标识0xA2,写入地址0x00,数据0x10,0x27等。由于写入以字节为单位,因此0x2710 = 10000,表明采样成功。

将鼠标放在波形上,点击左键,实现zoom in功能。结果见图3,在“start”条件后,在SCL的8个连续脉冲的高电平处,SDA对应的信号为10100010,即0xA2,第9个脉冲高电平处为0,是ACK标志。

图2

图3

图4

以上简单介绍了用逻辑分析仪进行I2C分析的过程,可以看到操作起来非常简单。

下面再介绍利用逻辑分析仪采样三相交流电机驱动器的6路PWM波形。

硬件连接

1. 先将逻辑分析仪的GND与目标板的GND连接,让二者共地,见图5。

2. 选择需要采样的信号,这里就是单片机6路PWM波形的输出引脚,将其接入逻辑分析仪的通道1(Input 1)至通道6(Input 6),并且把通道的名字改为Utop、Ubottom、Vtop、Vbottom、Wtop、WBottom,分别代表三路输出的上下桥臂。

3. 将逻辑分析仪和电脑USB口连接,windows会识别该设备,并在屏幕右下角显示USB设备标识。

图5

软件使用

1. 运行Saleae软件,此时逻辑分析仪的硬件已经与电脑相连,软件会显示[Connected]。

2. 设置采样数量和速度,PWM的频率为15kHz,这里设置为2M Samples @ 4MHz的速度。

3. 设置触发条件,默认“----”就可以了。

4. 按“start”按钮,开始采样。

数据分析

采样结束后,可以看到波形,见图6。

图6

典型的三相电机驱动PWM是互补型的,即一组信号的上下两个波形的状态是相反的,分别控制这组桥臂上下两个开关管的状态,避免同时导通造成短路,见图7。

图7  典型的三相电机驱动电路

将鼠标放在波形上,连续点击左键,实现zoom in功能。见图8。

图8

在UBottom的下降沿和UTop的上升沿放置标记线,在右下角的显示框中,可以看到T2-T1=2.25μs,这就是先关断后打开的时间差,专业上称为“死区时间”(Deadtime)。

另外,还可以看到PWM的宽度45.5μs,周期66.6μs,占空比31.6%,频率15.0376kHz等信息。这就是一个典型的三相电机变频器的SVPWM波形。

以上两个例子,简单介绍了逻辑分析仪的使用,希望能对广大开发者有所帮助和启发。

目录
相关文章
|
异构计算
fpga内嵌逻辑分析仪使用方法 1
fpga内嵌逻辑分析仪使用方法
98 0
|
7月前
|
数据采集 存储 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术 模拟波形的生成 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 模拟波形的生成 例程与相关资料
60 9
|
7月前
|
安全
LabVIEW编程LabVIEW控制ELT-400家电电磁辐射测量仪例程与相关资料
LabVIEW编程LabVIEW控制ELT-400家电电磁辐射测量仪例程与相关资料
43 2
|
7月前
LabVIEW编程LabVIEW开发吉时利Keithley 7001开关例程与相关资料
LabVIEW编程LabVIEW开发吉时利Keithley 7001开关例程与相关资料
64 1
|
7月前
|
传感器
LabVIEW编程LabVIEW开发控制PACE1000精密压力测试仪例程与相关资料
LabVIEW编程LabVIEW开发控制PACE1000精密压力测试仪例程与相关资料
45 0
|
7月前
|
Java Linux Android开发
嵌入式Android系统耳机驱动基本知识
嵌入式Android系统耳机驱动基本知识
86 0
|
传感器 C语言 芯片
「入门指南」轻松学习嵌入式 GPIO:从原理到应用一步到位
「入门指南」轻松学习嵌入式 GPIO:从原理到应用一步到位
|
存储 数据采集 监控
|
异构计算
fpga内嵌逻辑分析仪使用方法 2
fpga内嵌逻辑分析仪使用方法
179 0
|
传感器 算法 IDE
LabVIEW和Arduino的巧妙结合(基础篇—1)
本专栏使用的单片机为:Arduino(本系列专栏使用Arduino UNO控制器),主要原因在于,Arduino简单易上手,老少皆宜,受众面广泛,使用Arduino作为下位机,LabVIEW作为上位机,独立开发者可以快捷开发出一套软硬件联控的演示系统。