常见问题解答:逻辑和电压转换 > IXC >> I2C IO 扩展器中的自动递增功能是什么?
I2C IO 扩展器的自动递增功能是指器件的寄存器在连续写入/读取后自动递增到设置中的下一个寄存器。
如果不断对 IO 扩展器进行写入或读取、则该功能很有用。 常量写入和读取会在 I2C 系统中占用大量带宽。 自动递增有助于提高软件效率、这对于重负载的 I2C 总线系统尤其有用。
为了清楚地理解此概念、下图展示了如何向 I2C IO 扩展器写入单字节:
在第一个字节中、发送了器件(目标) 7位地址。 接下来是"指针"字节或寄存器地址。 这是要写入的寄存器。 最后、第三个字节是要在所选寄存器中设置的数据。
完成一次写入事务总共需要3个字节的数据。 对于8位(8 IO)扩展器、这种字节格式很方便、因为可以利用单次写入来一次更改8个 IO 的状态。
如果 IO 扩展器具有许多 GPIO、例如24位 I2C IO 扩展器 TCA6424A、 这种相同的字节格式需要9字节的数据才能更改所有24个 IO、因为它必须一次写入8位。
3个器件地址、3个寄存器地址、每个寄存器地址3个数据字节
自动递增无需在每次进行事务时建立指针地址。 例如、如果用户希望从 TCA6424A 的所有输入端口寄存器(输入端口0、输入端口1、输入端口2)进行写入、则用户可以避免重写器件地址和寄存器地址、只需使用下一个数据字节继续写入事务。
在该图中、发送了器件地址后跟输出端口寄存器地址。 数据0写入输出端口寄存器0、数据1写入输出端口寄存器1、依此类推。
可以写入5字节的数据、而不是写入9字节的数据来配置24个 IO。
1 x 器件地址、1 x 输出端口寄存器0地址、3 x 数据字节=总共5个字节。
有关自动递增功能的更多信息、请参阅应用手册: