介绍
本应用笔记介绍了如何使用PicoScope混合信号示波器(MSO)调试控制ADI公司AD5325 Quad DAC的I²C总线。
MSO有两个模拟输入通道,它们连接到Quad DAC的CH A和CH B输出。该仪器还有16个数字输入通道。在此应用中,仅使用两个数字输入通道D0和D1,连接到SDA串行数据线和I²C总线的SCL串行时钟线。
1.1模拟显示
图2显示了PicoScope MSO的屏幕显示。数据来自I²C总线数据传输。显示屏分为三个面板:上面板显示两个模拟通道A和B以及I²C总线传输数据的概述。中间面板显示两个数字通道D0和D1,下面板显示I²C解码数据。
上面的蓝色曲线显示CH A输出电压从1.9 V切换到0.6 V.使用仪器上提供的光标可以更准确地读取这些电压值(图3)。电压阶跃发生的时间点是I²C数据的第三个字节的结束。接下来是确认位和另一次传输。
较低的红色曲线显示CH B输出电压电平从1.9 V切换到0.6 V.此波形的垂直比例因子在显示屏的右侧以红色显示。同样,电平切换时的实际点是DAC已经接收到三个数据字节。
1.2I²C数据概述
在模拟波形的正下方,显示两个I²C数据传输的概述。每次转移包含:
1.START条件。
2.DAC地址。
3.通道地址的数据字节。
4.通道DAC值的两个数据字节。
5.停止条件。
2.中间面板
该面板显示I²C总线的SDA串行数据和SCL串行时钟线上的原始数字数据。此显示将显示数据是否发生任何错误,这可能是由于噪音或其他信号的干扰造成的。
如果总线的协议应用于每个数据字节,则可以从该显示器手动解码I²C命令,但这将是费力的并且容易发生错误。使用PicoScope提供的I²C解码速度要快得多,如下图所示。
3.下面板
该面板是解码的I²C串行协议显示器。为了更清楚地了解这些数据(图5)。
第一列是PicoScope分配的数据包编号:在这种情况下,有12个地址和数据字节数据包加上启动/停止条件。
第二列显示数据包或事件的类型:地址,数据,启动或停止。
第三列是解码地址,在这种情况下是0C,它是DAC的地址。
下一列定义数据是读还是写。在这种情况下,两次传输都是写入。
第五列显示解码数据。在这种情况下,第一个数据字节01表示DAC的CH A,而2C和11表示要发送到DAC以请求1880 mV的新输出电平的数据(2C11)。
字节9和10示出了用数据02选择CH B,并且接下来的两个字节请求不同的输出电平(2C23)。
第六列显示每个地址和数据传输都已得到确认。
最后两列表示每次转移的时间。
见参考。1(附录B - 参考资料),详细介绍AD5325 DAC预期的数据格式。
4.导出数据
解码后的I²C数据可以导出到Excel电子表格,如图5所示。
图4的结果:
5.公交车时间
总线时序测量可以自动进行,也可以用光标手动进行。图4说明了使用游标来测量数据传输过程中的事件时间。光标测量CH A和CH B电压切换到较低电压电平之间的时间。测得为1.4毫秒。
可以利用来自解码数据的定时自动地进行类似的结果。这可以在图3和图5中显示的相同数据中看到。
6.触发点
仪器可以在CH A上捕获的模拟切换边沿上触发,但在这种情况下,触发条件设置是在数字通道D0切换到高电平时(图5)。
图6显示了第一次数据传输发生时触发点(t = 0),这是第一个“开始”命令。
7.获得多个I²C块传输
在更复杂的系统中,我们可能希望获得多个I²C数据传输块。这可以使用串行解码窗口中的Accumulate选项来完成。我们还将看到PicoScope如何将采集存储器分成1到10,000个缓冲区。每次发生有效的触发条件时,记录将存储在新的缓冲区中。
图6说明了更复杂的数据传输序列。串行解码面板中的“累计”按钮已打开,因此以蓝色突出显示。在该测试中,获得5个缓冲液,如顶部工具栏中所示。左侧和右侧双箭头使我们能够选择显示哪个缓冲区:显示当前缓冲区5。
捕获的序列是针对五种不同输出电压电平的五次触发I²C数据传输。表1列出了两个DAC请求的输出电压电平序列。
图5显示了为五次传输捕获和解码的命令序列。
例如,将CH A输出电平切换为1.015 V的命令是第三个缓冲区中的数据传输:
8.检查波特率
通过启用“视图”菜单中的选项,可以在解码窗口中显示数据传输的波特率。也可以通过放大数字波形显示来检查它。该传输的波特率为89 kbaud,数字时钟D0波形上的delta光标测量值为11.5μs。
9.结论
现在许多电路都包含模拟和数字组件,因此需要可以获取数字和模拟信号的测试设备。然后,必须在显示窗口上同步这些数据,以便进行深入分析,以找出硬件或软件中的任何故障情况。