小编gin*_*nge的帖子

I2C 从发送器 NACK(又名可变长度回复)

传输到主机时,I2C 从机是否允许 NACK?

从规范 (2.1) 看来,从机实际上无法在传输时向主机发送 NACK,即将数据从从机发送到主机。我已经在网上搜索过,但在这里找不到任何帮助。

为什么?我正在 AVR Atmega8 中实现一个 I2C 主设备。我想涵盖所有用例。我有一个用户注意到,当 I2C 从设备在 SLA+R 模式下发送 NACK 时,主设备会忽略它。

据我所知,发起 SLA+R 的主设备是唯一允许 NACK 数据包的一方。从设备必须继续在主时钟上发送数据包。但是,Arduino 线库中的一个片段暗示从设备可以向主设备发送 NACK。 https://github.com/arduino/Arduino/blob/master/libraries/Wire/utility/twi.c#L503

  1. 如果从站要发送 2 个数据包,但主站时钟为 3 个,会发生什么
  2. 从机可以在从机发送器模式下发送 NACK 吗?
  3. 有没有其他方法可以向主人表明没有更多数据?

atmega arduino i2c slave

2
推荐指数
1
解决办法
2770
查看次数

标签 统计

arduino ×1

atmega ×1

i2c ×1

slave ×1