在SDK 的i2c_demo例程中,有两个IIC器件,温度传感器TMP006和三轴加速度传感器BMA222E,下面 以TMP006为例总结一下IIC从机地址的计算步骤:
1、根据TMP006数据手册找到其从机地址定义的地方,有些设备的从机地址是 固定的,有些则根据其引脚的电平决定,这样就可以在一根总线上挂载多个从机设备,TMP006就是这样。
2、根据CC3200开发板的硬件原理图,可以确定ADR1=0,ADR0=1,所以上面的7位从机地址应该选1000001
3、查看CC3200的数据手册,找到其发送IIC地址的时序如下图所示:
大概意思就是说发送的从机地址由从机的7位地址最后加上一位读写标志位,然后从高位向低位依次发送。其中读写标志位规定1读0写。
4、而i2c_demo的例程中是需要读取设备ID寄存器,寄存器地址为0XFE。因此,可以确定最后一位应该是取1,那么主机需要发送的数据也就确定了:10000011=0x83
5、但是发现在TI给出的例程的说明书中,发送的地址却不是0x83,而是0x41,如下图:
<