微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > IIC总线测试总结

IIC总线测试总结

时间:01-12 来源:互联网 点击:

写入多个数据后,才由主设备控制发出STOP信号,结束写操作。

对于IIC读过程,一般而言有如下几种情况:

图3 IIC总线读操作过程

分为Current Address Read、Random Address Read、Sequential Current Read、Sequential Random Read。后两种读模式与前两种读模式的区别仅仅在于后两种是一次读出多个数据,因此不作累述。

对于Current Address Read,其操作过程为:

1、主设备发出START信号;

2、主设备发出DEV SEL信号,之后“R/W”位置1,表示接下来执行读操作;

3、从设备应答ACK;

4、从设备从当前指针所指单元发出数据;

5、主设备应答位,不应答从数据设备读入(NO ACK,高电平);

6、主设备发出STOP信号,结束此次读操作。

Sequential Current Read一次可读出多个数据,每8位数据读出后,主设备进行一次ACK应答,最后一个数据,主设备不进行应答,应答位置高,之后发出STOP信号结束操作。

对于Random Address Read,其操作过程为:

1、主设备发出START信号;

2、主设备发出DEV SEL信号,之后“R/W”位置0,表示接下来仍执行写操作;

3、从设备应答ACK;

4、主设备发出Byte addr信号,从设备对每8位Byte addr进行一次应答ACK;

5、主设备再次发出START信号;

6、主设备再次发出DEV SEL信号,之后“R/W”位置1,表示接下来执行读操作;

7、从设备应答ACK;

8、从设备从之前写入的Byte addr地址中读出数据;

9、主设备不进行应答,应答位置高(NO ACK);

10、主设备发出STOP信号,结束此次操作。

三、IIC总线测试项目

1、时钟SCL信号质量测试

包括高电平电压、低电平电压、上冲、下冲、上升时间、下降时间、时钟频率、高电平脉宽、低电平脉宽。

2、数据SDA信号质量测试

包括高电平电压、低电平电压、上冲、下冲、上升时间、下降时间。

3、写保护WC信号质量测试

包括高电平电压、低电平电压、上冲、下冲。

4、时序测试

需要测试的时序如下图所示:

图4 IIC总线时序测试项目图

(1) tHD:STA:START信号保持时间。IIC总线是在SCL信号为高电平时,SDA下降沿作为START信号的。该参数是指SDA信号由高变低后,SCL还需要维持高电平的最短时间,以确保START信号成功采样;

(2) tHD:DAT:数据保持时间。IIC总线是在时钟SCL上升沿的时候对数据进行采样,SDA需在时钟上升沿来临前保持稳定;同时SDA需在时钟SCL为低电平时才能进行转换。该参数即是时钟SCL由高变低后,SDA还需要维持上一位数据电平的最短时间;

(3) tSU:DAT:数据建立时间。指在SCL上升沿来临之前,SDA此次采样数据电平需要提前维持的最短时间,以确保此次数据的采样成功;

(4) tSU:STA:START信号建立时间。指在SDA下降沿来临之前,SCL需要提前维持高电平的最短时间,以确保START信号的成功建立;

(5) tSU:STO:STOP信号建立时间。IIC总线是在SCL信号为高电平时,SDA上升沿作为STOP信号的。该参数是指在SDA上升沿来临之前,SCL需要提前维持高电平的最短时间,以确保STOP信号的成功建立;

(6) tBUF:总线释放最短时间。本次IIC操作结束和下次IIC操作开始需要对总线进行释放的最短时间;

(7) tWLDL(tSU:WC):WC信号建立时间。WC信号需要在START信号发出前便完成建立。该参数即在START信号SDA下降沿来临之前,WC信号需要提前维持低电平以确保成功建立的最短时间;

(8) tDHWH(tHD:WC):WC信号保持时间。WC信号需要在STOP信号发出后仍维持一段时间。该参数即在STOP信号SDA上升沿发出之后,WC信号仍需维持低电平以确保STOP操作成功完成的最短时间。

以上便是需要进行测试的项目。

四、IIC总线测试注意事项

自己之前在进行IIC总线测试时,由于急于完成,误认为读过程就是完全的数据读出。其实从IIC读操作过程就可以很明确的得知,读过程也包含着数据写入的阶段,比如START信号发出,DEV SEL信号发出和Byte addr信号的发出;

另一方面,由于START信号和STOP信号均是由主设备发出的,因此在测试IIC读操作时序的时候,仅需要测试tSU:DAT和tHD:DAT两项参数。而写操作才需要测试所有时序参数;

最后在测试过程中,尤其是在读操作过程中,由于前面先要执行设备识别、地址写入等写操作,之后才会出现数据的读出,如果要用示波器去抓整个读操作过程,然后再放大局部去读取时序参数,可能会由于时基过大,局部分辨率不够,导致读取的时序参数并不准确。

对于示波器,自己觉得比较重

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top