DesignWare I2C模块的验证

I2C通信协议主要同一块板上芯片间的通信,因此速度不是很高。SCL为时钟线,SDA为数据线。时钟由主设备发送给从设备,数据可以在两设备间互传。

在测试DW_I2C模块时,如果外面都包了一层,在tb中只有两个inout类型的信号,那么验证方法如下:

例化两个完全相同的IIC模块,一个设置为主设备另一个为从设备,那么将两个设备的SCL线相接,SDA线相接即可。但接线的类型必须为tri1,即上拉电阻三态型,否则无法正常工作。具体为

tri1scl_iopad       ;  

tri1     sda_iopad       ;

iic0做主设备,iic1做从设备,从而验证iic的基本收发功能是否正确。

.iic0_scl_iopad            (scl_iopad     ),

.iic0_sda_iopad            (sda_iopad         ),  

.iic1_scl_iopad            (scl_iopad         ),  

.iic1_sda_iopad            (sda_iopad         ), 

验证过程中需注意以下几点:

  • DW_I2C模块有三个重要的寄存器,偏移0x00的配置寄存器,偏移0x10的DATA_CMD寄存器,偏移0x6C的使能寄存器。
  • 此外还有中断相关的状态寄存器和CLEAR寄存器。
  • DW_I2C清中断的方式是读CLEAR寄存器。
  • 在写配置寄存器之前必须先把DW_I2C使能关掉,否则无法写入。
  • DW_I2C可以设置为8位或10位模式寻址

猜你喜欢

转载自www.cnblogs.com/zhouliyan/p/12051184.html
I2C