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