Zynq-7000 SoC,I2C  – 重复启动时I2C丢失仲裁-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Zynq-7000 SoC,I2C – 重复启动时I2C丢失仲裁

描述

I2C在重复启动时丢失仲裁

当I2C控制器用作多主总线上的主控制器时,I2C控制器不检测另一个主I2C控制器何时驱动SDA为低电平以重复启动。

当满足以下所有条件时,I2C控制器可以破坏总线上的事务:

  • 另一个主服务器同时启动一个事务。
  • 另一个主站寻址同一个从站。
  • 另一个主机选择相同的事务(读或写)。
    对于写入,另一个主驱动器驱动相同的数据。
    对于读取,另一个主控制器同时进行ACK。
  • 另一个主机读取或写入相同数量的数据。
  • 在交易结束时,另一个主人重复启动。
影响

重大的。

在所描述的条件下,I2C控制器不会检测到来自其他主I2C控制器的重复启动,并且可以在其他主I2C控制器事务期间将SDA驱动为低电平以重复启动,
从而破坏了公交车上的交易。

然而,这种情况的可能性极为罕见。

解决方法:

通过始终将HOLD位清零来禁用重复启动。

受影响的配置:

所有Zynq器件都使用I2C控制器作为多主总线上的主控制器。

受影响的器件版本:

全部,没有计划修复。请参阅(Xilinx答复47916) – Zynq-7000 SoC芯片版本差异

解析度:

这是第三方勘误表;这不会被修复。

请登录后发表评论

    没有回复内容