单片机开发工程师和电子爱好者,每天都要和各种各样的数字电路打交道。在制作调试电路时除了使用万用表、示波器等工具,逻辑分析仪也是必不可少的。
逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要的作用在于时序判定。
逻辑分析仪与示波器不同,它不能显示连续的模拟量波形,而只显示高低两种电平状态(逻辑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。
将鼠标放在波形上,连续点击左键,实现zoom in功能。见图8。
图8
在UBottom的下降沿和UTop的上升沿放置标记线,在右下角的显示框中,可以看到T2-T1=2.25μs,这就是先关断后打开的时间差,专业上称为“死区时间”(Deadtime)。
另外,还可以看到PWM的宽度45.5μs,周期66.6μs,占空比31.6%,频率15.0376kHz等信息。这就是一个典型的三相电机变频器的SVPWM波形。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/78424.html