LM94 支持 I2C 块读取。该事务中会发生以下事件序列:
- 主器件发送一个启动条件以启动该事务。
- 主器件发送 7 位从器件地址,后跟写入位(低电平)。
- 从器件将 ACK 置为有效。
- 主器件发送寄存器地址,从器件将 ACK 置为有效。
- 主器件发送一个重复的启动条件。
- 主器件发送 7 位从器件地址,后跟读取位(高电平)。
- 从器件将 ACK 置为有效。
- 主器件接收数据字节 1 并将 ACK 置为有效。
- 主器件继续接收字节并为接收到的每个字节将 ACK 置为有效。
- 主器件接收最后一个字节。
- 主器件将 NACK 置为有效。
- 主器件发出停止条件。
| 1 | 2 | | 3 | 4 | | 5 | 6 | | 7 | 8 | | 9 | | ∼ | 10 | 11 | 12 |
| S | 从器件 地址 | W | A | 寄存器 地址 | A | S | 从器件 地址 | R | A | 数据 字节 1 | A | 数据 字节 2 | A | ∼ | 数据 字节 N | /A | P |
特别说明:
- 当读取正常地址空间之外的地址位置时,LM94 返回 00h。
- 块读取不会从地址 FFh 绕回到 00h。
- 如果主器件确认的字节数超过其请求的字节数,则 LM94 将继续提供数据,直到主器件不再确认字节。
- 如果主器件没有确认字节以提前中止块读取,则 LM94 脱离总线以允许主器件发出停止信号。