使用泰克MSO4000
系列混合信号示波器调试混合信号嵌入式设计
引言
当前的嵌入式设计工程师面临着系统复杂程度日益提高的挑战。典型的嵌入式设计可能会包括各种模拟信号、高速和低速串行数字通信、微处理器总线等等。
I
2C 和SPI
等串行协议通常用于芯片间通信,但不能在所有应用中代替并行总线。微处理器、FPGA、模数转换器(ADC)和数模转换器(DAC)等集成电路给当前嵌入式设计带来了独特的测量挑战。工程师可能需要解码两个
IC 之间的SPI
总线,同时在同一块系统电路板上观察ADC
的输入和输出。图1 是混合信号系统实例。
图1.
简化的采集/ 仪器系统。
对配备4 通道示波器的工程师来说,调试图1
所示的硬件是一件困难而又让人畏缩的任务。许多工程师用惯了示波器,同时为了节约时间,可能会选择购买三四台示波器,以便一次探测多个信号。逻辑分析仪可以探测多个数字信号,但调试任务非常复杂,使用逻辑分析仪所带来的设置和学习过程有些不值得。幸运的是,对面临这一任务的工程师,泰克提供了一种新型仪器,��为混合信号示波
(MSO),有效地满足了他们的需求。泰克MSO4000
系列把16 通道逻辑分析仪的基本功能与泰克4通道示波器倍受信任的性能结合在一起。本应用指南介绍了混合信号嵌入式设计的调试,演示了泰克
MSO4000 提供的业内**的性能。
使用MSO4000
同时调试多个串行协议
嵌入式设计工程师通常使用串行协议,如I2C 和SPI,以简化电路板上系统模块之间的通信。这些串行协议可以降低布线的复杂性,但传统示波器一直很难调试其实现方案。设计人员一般会被迫手动解码采集的串行数据,或从示波器导出数据,以进行后期处理和解码。使用示波器解码串行数据可以为嵌入式设计工程师节约无数个小时的调试时间,允许工程师实时查看硬件和软件的影响。
图2.
带有探测点的采集子系统。
尽管DPO4000
系列示波器可以使用*多四条通道探测串行数据,但许多常用串行协议要求三条或三条以上的线。工程师通常需要同时解码和显示多条串行总线,观测其时间相关性。泰克
MSO4000系列把DPO4000系列的串行触发和解码功能与16
条新增数字通道结合在一起。除I2C、SPI 和CAN外,MSO4000还支持触发和解码
RS-232和并行总线。通过MSO4000,工程师可以同时探测和解码多条串行总线及自定义并行总线。下面的实例使用
MSO4000,调试图1所示的嵌入式设计中复杂的多芯片通信错误。在系统*初调试过程中(如图1 所示),系统偶尔遇到电路板上
状态LED 指示灯表明发生故障的情况。状态LED
指示灯报告的错误不明确,导致系统工程师不能确定问题是由硬件导致的还是由软件导致的。以前,类似错误一直源于模拟复用器输入上的信号质量差,但工程师已经成功更换了导致信号保真度问题的硬件。由于系统工程师怀疑错误可能源于复用器输入之外的其它来源,他决定探测到复用器的模拟输入及多条数字总线,以**查看系统状况。
MSO4000 为调试提供了4
条模拟通道和16 条数字通道,它连接到图2 中标为1-4
的信号上。
图3.
MSO4000
显示了I2C、SPI
和并行总线及CH1 模拟信号。
图3 显示了MSO4000
同时探测SPI 总线(1)、I2C
总线(2)、3位并行总线(3)和模拟输入(4)的屏幕快照。由于错误可以被隔离到某个子例程,因此MSO4000 配置成单次采集,触发特定的I2C 活动。把记录长度设置成1M点保证了可以准确地捕
获I2C
总线上事件周围的所有有用信息。工程师运行子例程,迅速查看MSO4000,了解系统中发生的情况。CH1
上显示的MUX输入上清楚的模拟波形确认了工程师的疑问,表明硬件问题已经得到解决,错误发生在其它地方。
MSO4000触发和解码从微处理中写入的I2C数据。工程师注意到SPI上的活动及在传输I2C
数据后很快显示了标有D1 和D2 的信号。工程师怀疑这些总线上的活动,因为他认为执行的功能主要涉及LCD 控制器。由于MSO4000
已经解码I2C
数据值,因此工程师可以看到微处理器已经把I2C
数据写入地址0x77。地址0x77是FPGA的地址,但工程师认为子例程把数据写入地址0x76,这是LCD
控制器的地址
图4.
Wave Inspector
用来放大和显示分组细节。
图4显示了同一采集,其中使用Wave
Inspector
®
放大SPI和并行总线的细节。SPI 数据在屏幕上解码成从主设备(FPGA)到从设备(MUX)的写入,数据值为0x15。这一SPI
命令指示LWTYMUX
改变信号路径使用的输入。输入信号中这种意想不到的变化导致FPGA向并行总线上的状态LED
指示灯发送一个错误代码。在图4
中也可以观察到这些并行总线的错误代码和解码。嵌入式设计工程师可以迅速确定是软件漏洞导致了系统问题,因为
MSO4000 能够同时查看和解码所有相关信号。软件编程人员错误地从微控制器到FPGA写入I2C数据,而分组的预计目标是LCD
控制器。
图5.
MUX_OUT
上的白色边沿表明提供了更详细的信息。
在改动系统软件,校正上一节中介绍的地址漏洞后,嵌入式设计工程师继续测试更多的系统功能。在进行测试时,他注意到状态
LED 指示灯偶尔指明错误。与上一节中描述的错误不同,工程师不确定怎样重建看到的错误。错误似乎具有随
机特点,不能隔离到系统的某个功能或子例程。嵌入式设计工程师对错误的随机特点感到很迷惑,不确定从哪儿入手查找来源。查找错误来源的一个选项是使用示波器随机探测系统,以期捕获随机事件。尽管工程师过去一直使用这种方法,但他知道,连接到所有相关信号、正确配置的
MSO4000可以用少得多的时间找到错误。上一节中大多数探测点仍连接到MSO4000上。CH1探头移动到活动的MUX输
入上,这是来自传感器3的数字信号。除这4个探测点外,工程师使用一条数字通道探测MUX
输出。FPGA 通过3
位并行总线传送值0x7,表明已经发生错误。为隔离问题,MSO4000配置成捕获单次采集,它把触发事件设置成并行总线值
0x7。图5
显示了采集结果。在这种情况下,并行总线解码和触发节约了时间,减少了混淆,因为可以简便地隔离错误条件。这一采集过程中使用的
1M记录长度允许工程师观察触发事件前和触发事件后信号的关键细节。乍一看,图5所示的信号似乎行为正常,但系统工程师很快确定MUX_OUT 信号上出现了独特的两个边沿转换。图5
所示的MUX_OUT
信号上的白色转换向用户表明这些信号部分存在着更多的信息。MSO4000的多边沿检测功能突出显示了波形区域,通过缩放可以揭示频率较高的数字脉冲。在使用
Wave Inspector 放**形细节时,图6
揭示了**个白色转换背后的细节。图5
中画出的白色转换的信号部分实际上是MUX_OUT 信号上的一个毛刺。
图6.
Wave Inspector
揭示了MUX_OUT 信号上的毛刺。
图6 显示了MSO4000
中模拟通道和数字通道之间的时间相关性。CH1(SENSOR_3)上显示了到MUX
的输入,数字通道D14(MUX_OUT)上则可以观察到MUX
输出。工程师注意到,尽管MUX输出有一个毛刺,但到MUX的输入似乎没有毛刺。在使用数字通道识别毛刺后,工程师决定把
CH2连接到MUX输出上,更仔细地进行考察。
图7.
CH2
显示MUX_OUT 的更多细节。
图7 显示了采集结果,其中MSO4000 仍配置成触发并行总线值0x7。图7
关闭了SPI 和I2C 总线的波形,把重点放在相关的主要信号上。在MUX
输入和输出上使用模拟探头,发现输出上存在的毛刺在输入信号上并不存在。图7 显示,MUX_OUT
信号上的毛刺出现了很短的时间,然后FPGA
发送错误代码。这两个信号之间的
时间关系表明,毛刺可能是工程师看到的问题。工程师使用同一配置重复采集几次,看到每次的行为都与图7 类似。
图8.
CH1
显示了MUX_OUT 信号中的串扰来源。
在分析MSO4000
的屏幕快照后,嵌入式设计工程师怀疑串扰可能是MUX_OUT
信号上的毛刺来源。在检查图5
中监测的所有信号后,没有任何信号是串扰来源。在更详细地检查电路板布局时,工程师找到印刷电路板(PCB)上MUX_OUT轨迹旁边有一个通路。工程师使用CH1探测PCB上的通路,等待并行总线的另一个触发。得到的屏幕快照如图8所示。图8显示,
C H 1 上捕获的信号从低到高转换在时间上与MUX_OUT 信号的正毛刺直接相关。相应地,从高到低转换直接与MUX_OUT
信号的负毛刺直接相关。在用一段时间在电路板上对干扰信号重选路由后,工程师把
MSO4000
配置成触发CH1。
图9.
在改动PCB 后,串扰消失了。
图9 显示MSO4000
触发CH1转换,但在MUX_OUT信号上没有显示毛刺。由于MUX_OUT信号不存在毛刺,因此并行总线没有生成错误条件。在改动电路板之后,串扰消失了,允许嵌入式设计工程师完成系统评估。
小结
如本应用指南所示,MSO4000为开发和调试嵌入式设计的工程师提供了一个异常强大的工具。MSO4000 把16
条时间相关的数字通道与泰克4
通道示波器倍受信任的性能和直观的界面结合在一起。工程师现在可以使用MSO4000,而不用搜索多台示波器或学习怎样操作逻辑分析仪。MSO4000能够同时触发和解码并行总线和串行标准,如I2C、SPI、CAN和RS-232,对评估当前嵌入式设计中硬件和软件
复杂交互的工程师提供了宝贵的工具。