I2C总线中8(7)bit和10bit介绍与区别

 

  经常有用人问我,使用USB2XXX的USB2IIC功能的时候,从机地址应该怎么传递的问题,这个问题的根源在于不同的I2C从机厂商采用了不同的I2C总线地址约定,导致在说I2C总线的时候总是容易搞混,本文主要针对8位和10位I2C总线地址进行详细的说明。

  8位地址

  一些厂商在提供从机地址的时候说的是包含了读写位的8bit地址,比如他说写地址为0x92,读地址为0x93,如下图所示

  I2C总线中8(7)bit和10bit介绍与区别_第1张图片

  这种情况下,你只需要将这个地址的前7bit提取出来,然后传入USB2XXX的接口函数即可,比如为0x49。

  还有一种方式可以判断厂商提供的地址是7bit模式地址还是8bit地址模式的地址,7bit地址模式下,地址的取值范围在0x07到0x78之间,若超过了这个范围,那么这个地址可能就是8bit地址。

  I2C总线中8(7)bit和10bit介绍与区别_第2张图片

  10位寻址

  I2C总线的10bit寻址和7bit寻址是兼容的,这样就可以在同一个总线上同时使用7bit地址和10bit地址模式的设备,在进行10bit地址传输时,第一字节是一个特殊的保留地址来指示当前传输的是10bit地址。

  I2C总线中8(7)bit和10bit介绍与区别_第3张图片

 10bit地址寻址

  在使用USB2XXX传输10bit地址模式的时候,只需要在初始化的时候配置为10bit地址模式,然后再调用读写数据函数的时候传入正确的10bit地址即可。

你可能感兴趣的:(I2C总线中8(7)bit和10bit介绍与区别)