ZHCACH2 march 2023 PCA9306
如果未为特定目标器件定义命令字节,则向控制器发送 NACK。为了确保为器件发送正确的命令字节,请使用示波器检查发送到目标的所有 8 位是否与器件数据表中定义的命令位相匹配。请记住,命令字节需要在帧中的地址字节之后和数据字节之前发送。
图 3-9 显示了一个示例,其中先发送了 I2C 目标地址和写入位,后跟一个导致 NACK 的错误(超出 I2C 目标的可用寄存器)命令字节。此示例中的目标器件只有四个寄存器(0x00h 至 0x03h)。如果发送寄存器值为 0x04h 的命令字节,则预期结果为 NACK,因为 0x04h 超出了 0x00h 至 0x03h 的可接受字节。
图 3-9 所示的示例使用了与图 3-8 中相同的 I2C 目标地址和写入位,但发送了已知良好的命令字节(I2C 目标识别的命令字节),从而产生 ACK。此示例中的目标器件接受 0x03h 寄存器字节,因为目标器件具有 0x00h 至 0x03h 的寄存器值,所有这些寄存器均为可写入的寄存器。