I2C读写命令问题

Viewed 16

使用I2C的主从例程,未经过修改的情况下可以正常跑通
修改从机地址为0-7,同步修改主机例程的目标地址与从机地址一致,发现主机读或写从机操作,均返回0x80001307
查看错误码发现对应的错误是权限无效,这个是什么原因?从8开始,就正常了,0-7的从机地址无法使用吗?

1 Answers

原因分析
你的观察完全正确——0~7 的从机地址确实无法使用,这是由 I2C 协议标准所决定的。

  1. 根本原因:I2C 协议标准中的保留地址
    根据 I2C 总线协议规范(NXP 的《UM10204 I²C-bus specification and user manual》),在 7 位地址模式下,地址 0x00~0x07 被保留用于特殊用途,不能分配给普通从机设备。这些保留地址包括:

地址 用途
0x00 通用呼叫地址(General Call)
0x01 起始字节(Start Byte)
0x02 CBUS 地址
0x03 保留
0x04 保留
0x05 HS-mode(高速模式)主机码
0x06 保留
0x07 保留
这些地址在 I2C 协议中具有特殊功能,不能作为普通从机设备的地址使用。