逻辑分析仪分析SPI通信
标准的SPI通信使用4个引脚:
SCK:时钟信号,因为SPI使用的是串行通信协议,MISO和MOSI是基于时钟信号完成数据传输的 CS#:片选线,控制芯片是否被选中,在这个flash芯片中,当设置为0的时候,表示有效。
SPI配置选项,包括:
传输的字节顺序,即大小端(MSB和LSB),标准的是首先使用MSB传输的比特位数,标准的是8位
CPOL:时钟极性,定义SPI时钟的活动状态
CPHA:时钟相位,定义相对于SO-数据位的时钟相位
其中最后两个参数在datasheet中定义了仅有两种组合(CPOL=0, CPHA=0)或者(CPOL=1, CPHA=1)。如下图所示。
下图是嗅探的部分数据。
这些信号需要对照datasheet了解代表的详细含义。
下图是对抓取数据的分析。
逻辑分析仪是个简单的设备,映像显示是将存储器中的全部内容以点图形式一次显示出来。它将每个存储器字分为高位和低位两部分,分别经X,Y方向D/A变换器变换为模拟量,送入显示器的X与Y通道,则每个存储器字点亮屏幕上的一个点。
而图解显示是将屏幕的X方向作为时间轴,将Y方向作为数据轴进行显示的一种方式。将欲显示的数字量通过D/A变换器转变成模拟量,将此模拟量按照存储器中取出的数字量的先后顺序显示在屏幕上形成一个图像的点阵,然后分析数据之后发送到计算机上面。
也就是逻辑分析仪将被测数据信号用数字形式写入存储器后,可以根据需要通过控制电路将内存中的全部或部分数据稳定的显示在屏幕上,所以会得到分析精确的数据,如果输出出现问题,得到的波形也会出现问题。
逻辑分析仪无论采样频率,存储空间,触发深度等资源都是有限的,我们只有充分组合协议相关的组件才能发挥其最大的效用,所以选的那款设备不是很给力的话,接口也会成为一个问题。
下图记录了Ralink-Flash SPI总线,这里我使用的是saleae逻辑分析仪,最大的采样率为24 MS/s。
从上图可以看出,所示时钟信号由低到高(8个部分),而这种波形可能会导致数据冲突问题,虽然允许完全的数据传输正确,但是也需要注意这一点,这一步和计划步骤没有太大关系。 用分析仪再一次分析(100 MS/s),如下图所示。
从图中可以看出,即使采样率很高的时候,时钟信号还是满足要求的。
如果你发现在你的采样中,有些信号丢失,你就要考虑丢失的数据是否影响你的分析,如果有影响的话,就要考虑换个高级的更贵的逻辑分析仪了。
注意:来自网络整理