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

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

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

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

逻辑分析仪与示波器不同,它不能显示连续的模拟量波形,而只显示高低两种电平状态(逻辑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波形。

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

目录
相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33251 201
如何保证分布式文件系统的数据一致性
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36821 22
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24905 16
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36824 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29949 52

热门文章

最新文章