首页 > 解决方案 > I2C 从机中的确认

问题描述

我阅读了 nxp 提供的 I2C 规范,但在某些方面我仍然不清楚。你能给我解释一下吗?

  1. 通常从机由 I2C 主机控制。确认由 I2C 主机启用,那么从机如何生成 I2C 确认?
  2. I2C 从机地址和 I2C 数据字节都是 1 字节数据,那么 I2C 从机如何区分它们?

标签: i2cnxp-microcontroller

解决方案


假设 nxp 的 i2c 规范与行业标准相同。

1)我不认为“确认由大师启用”是正确的术语。在主机发送每个(完整)字节后,它等待从机发回确认位(或不确认)。从机通过改变 SDA 线的电平来做到这一点。

2) 对于从主设备到从设备(和返回)的数据传输,保持发送字节的顺序非常重要。一个典型的例子是这样的:

  • 主机发送:启动信号
  • 主机发送:从机地址 + 写入位
  • 从机发送:ACK
  • 主机发送:主机要读取的寄存器地址
  • 从机发送:ACK
  • 主机发送:重复启动信号
  • 主机发送:从机地址 + 读取位
  • 从机发送:ACK
  • 从机发送:主机要读取的寄存器寄存器地址的内容
  • 主机发送:NACK
  • 主机发送:停止信号

如果您正在寻找有关 I2C 的更多详细信息,那么整个 Internet 上都有很多。对我来说,这个数据表的第 21 节帮助我理解了很多。


推荐阅读