块写入的起始地址嵌入在该事务中。在该操作中,主器件向从器件发送一个数据块,如下所示:
- 主器件将一个启动条件置为有效。
- 主器件发送 7 位从器件地址,后跟写入位(低电平)。
- 被寻址的从器件将 ACK 置为有效。
- 主器件发送一个命令代码,该代码告诉从器件等待块写入。块写入的 LM94 命令代码为 F0h。
- 从器件将 ACK 置为有效。
- 主器件发送的字节告知从器件它将发送多少个数据字节 (N)。SMBus 规范允许在一次块写入中最多接发送 32 个数据字节。
- 从器件将 ACK 置为有效。
- 主器件发送数据字节 1,即块写入的起始地址。
- 从器件在每个数据字节之后将 ACK 置为有效。
- 主器件发送数据字节 2。
- 从器件将 ACK 置为有效。
- 主器件继续发送数据字节,从器件针对每个字节将 ACK 置为有效。
- 主器件将一个停止条件置为有效,以结束事务。
| 1 | 2 | | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ∼ | 12 | | 13 |
| S | 从器件 地址 | W | A | 命令 F0h (块 写入) | A | 字节 计数 (N) | A | 数据 字节 1 (起始 地址) | A | 数据 字节 2 | A | ∼ | 数据 字节 N | A | P |
特别说明
- LM94 会确认任何超出正常地址空间的字节写入尝试,但这些尝试会被忽略。
- 块写入不会从地址 FFh 绕回到 00h,地址会保持在 FFh。
- 字节计数字段会被 LM94 忽略。主器件可以发送更多或更少的字节,LM94 会接受这些字节。
- SMBus 规范要求块写入不得超过 32 个数据字节。满足该要求意味着只能发送 31 个实际数据字节(寄存器地址计为一个字节)。LM94 不关心是否满足该要求。