按照以下程序将数据写入 TUSB5461-Q1 I2C 寄存器(请参阅图 6-2):
- 控制器通过生成一个启动条件 (S),后跟 TUSB5461-Q1 7 位地址和一个用以指示写入周期的零值“W/R”位,从而启动写入操作。
- TUSB5461-Q1 确认地址周期。
- 控制器提供要写入的 TUSB5461-Q1 中的寄存器偏移,它由一字节数据组成,MSB 优先。
- TUSB5461-Q1 确认子地址周期。
- 控制器提供要写入 I2C 寄存器的数据的第一个字节。
- TUSB5461-Q1 确认字节传输
- 控制器可以继续提供要写入的其他数据字节,每次字节传输都以 TUSB5461-Q1 发出确认结束。
- 控制器通过生成停止条件 (P) 来终止写入操作。
按照以下程序在不重复启动的情况下读取 TUSB5461-Q1 I2C 寄存器(请参阅图 6-3)。
- 控制器通过生成一个启动条件 (S),后跟 TUSB5461-Q1 7 位地址和一个用以指示读取周期的零值“W/R”位,从而启动读取操作。
- TUSB5461-Q1 确认 7 位地址周期。
- 在确认之后,控制器继续发送时钟。
- TUSB5461-Q1 从寄存器 00h 或上次读取的寄存器偏移 +1 处开始传输存储器寄存器的内容,MSB 优先。如果写入 I2C 寄存器发生在读取之前,则 TUSB5461-Q1 应从写入中指定的寄存器偏移处开始。
- 在每次字节传输后,TUSB5461-Q1 会等待控制器发出响应 (ACK) 或无应答 (NACK);I2C 控制器会确认接收到每次数据字节传输。
- 如果接收到 ACK,则只要控制器提供时钟,TUSB5461-Q1 就会传输下一个数据字节。如果接收到 NAK,则 TUSB5461-Q1 停止提供数据并等待停止条件 (P)。
- 控制器通过生成停止条件 (P) 来终止写入操作。
按照以下程序在重复启动的情况下读取 TUSB5461-Q1 I2C 寄存器(请参阅图 6-4)。
- 控制器通过生成一个启动条件 (S),后跟 TUSB5461-Q1 7 位地址和一个用以指示写入周期的零值“W/R”位,从而启动读取操作。
- TUSB5461-Q1 确认 7 位地址周期。
- 控制器提供要写入的 TUSB5461-Q1 中的寄存器偏移,它由一字节数据组成,MSB 优先。
- TUSB5461-Q1 确认寄存器偏移周期。
- 控制器提供重复启动条件 (Sr)。
- 控制器通过生成一个启动条件 (S),后跟 TUSB5461-Q1 7 位地址和一个用以指示读取周期的 1 值“W/R”位,来启动读取操作。
- TUSB5461-Q1 确认 7 位地址周期。
- TUSB5461-Q1 从寄存器偏移处开始传输存储器寄存器的内容,MSB 优先。
- 在每次字节传输后,TUSB5461-Q1 将会等待控制器发出响应 (ACK) 或无应答 (NACK);I2C 控制器会确认接收到每次数据字节传输。
- 如果接收到 ACK,则只要控制器提供时钟,TUSB5461-Q1 就会传输下一个数据字节。如果接收到 NAK,则 TUSB5461-Q1 停止提供数据并等待停止条件 (P)。
- 控制器通过生成停止条件 (P) 来终止读取操作。
按照以下程序为 I2C 读取设置起始子地址(请参阅 图 6-5)。
- 控制器通过生成一个启动条件 (S),后跟 TUSB5461-Q1 7 位地址和一个用以指示写入周期的零值“W/R”位,从而启动写入操作。
- TUSB5461-Q1 确认地址周期。
- 控制器提供要写入的 TUSB5461-Q1 中的寄存器偏移,它由一字节数据组成,MSB 优先。
- TUSB5461-Q1 确认寄存器偏移周期。
- 控制器通过生成停止条件 (P) 来终止写入操作。
注: 初始上电之后,如果读取过程不包含寄存器偏移(请参阅图 6-3),则读取从寄存器偏移 00h 开始并通过寄存器逐字节继续,直到 I2C 控制器终止读取操作为止。在读取操作期间,TUSB5461-Q1 会自动递增最后一个传输字节的 I2C 内部寄存器地址,而不论是否从 I2C 控制器收到 ACK。