ZHCSQH8A September 2025 – October 2025 TCAN5102-Q1
ADVANCE INFORMATION
接收 FIFO 为只读。
RX 缓冲区中每个帧的大小由 I2C 帧的数据长度决定。缓冲区中 RX 帧的总长度为以下各项之和
当从 FIFO 元素中读取了所有数据字节后,对 RX FIFO 的读取被视为完成且该 FIFO 元素被释放。当读取数据时,若读取的字节数超过剩余可读取字节数,超出部分的无效字节将返回 0x00。
从 RX FIFO 中对一帧数据进行部分读取后,下一次对 I2C 接收 FIFO 的读取会自动延续该帧的剩余部分,此时 CONT 位会被置为 1 以标识这种延续状态,同时 NUM_BYTES_REMAINING 会显示该 I2C 帧中尚待读取的数据字节数。
从空的 RX 缓冲区读取时,通道 0 的 NUM_BYTES_REMAINING 返回 0。帧的读取顺序始终与接收顺序一致。
通过向 I2C 清除 RX FIFO 位 (I2C_FIFO_CTRL[1]) 写入 1,可以清空 RX 缓冲区(丢弃所有帧)。
| 字节 | 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|---|
| 0 | 7:1 | 地址 | R | 0x0 | I2C 目标器件地址 |
| 0 | W/R | R | 0 | I2C 消息是 I2C 读取还是 I2C 写入 0 = I2C 读取 1 = I2C 写入 |
|
| 1 | 7 | CONT | R | 0 | 继续读取 0 = 此次读取为帧数据的起始部分 1 = 此次读取为前一次读取的继续 |
| 6:0 | NUM_BYTES_REMAINING | R | 0x0 | I2C 读取 (B0.W/R = 0):地址字节之后待读取的字节数(不包括上述任何报头字节) I2C 写入 (B0.W/R = 1):地址之后的 I2C 帧中的字节数(不包括上述报头字节) 有效值 0-127。0 将不发送任何数据,仅传输器件地址(对于检查 ACK 很有用) |
|
| 2 | 7 | RSVD | R | 0 | 保留 |
| 6 | DS | R | 0 | 数据卡滞 总线卡滞(时钟或数据未释放) |
|
| 5 | CT | R | 0 | 时钟超时 检测到 SMBus 时钟超时 |
|
| 4 | CS | R | 0 | 时钟拉伸 该帧期间发生了时钟拉伸 |
|
| 3 | AN | R | 0 | 地址 NACK I2C 目标器件对地址字节进行了非应答 (NACK) |
|
| 2 | DN | R | 0 | 数据 NACK I2C 目标器件在写入过程中对至少 1 个字节进行了非应答 (NACK)。 |
|
| 1 | LN | R | 0 | 最后一个字节 NACK I2C 目标器件对 I2C 帧的最后一个字节进行了非应答 |
|
| 0 | OK | R | 0 | 成功 成功完成 I2C 帧 |