UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 63245

Zynq-7000 SoC 的设计咨询、I2C — PS I2C 从监控器模式可能会锁定 I2C 总线

描述

在没有收到 ACK 的情况下,主机软件无法禁用在从监控器模式下激活的 Zynq-7000 I2C 主控器。

清除 Control.SLVMON 无法终止从监控器模式,这会在这种模式下保留 Zynq I2C 主设备。

解决方案

主机必须在控制寄存器中设置 SLVMON 位,以启用从监控器模式。

在从监控器模式中,I2C 接口设置为主控器。

从设备忙碌时,主机软件使用从监控器模式等待,直到从设备就绪为止。

它通过周期性地发出事务处理执行该任务,直到从设备采用 ACK 响应。(在从监控器模式下无实际数据传输)。

主机写入 I2C 地址寄存器时,主控器会尝试将其转移至特定的从设备。

如果从设备在收到地址时返回 NACK,那么主控器将等待由从监控器暂停寄存器建立的时间间隔,并尝试再次与从设备通信。

主控器继续该循环,直到从设备通过 ACK 对其地址作出响应。
 

SLVMON 位在控制寄存器中清除时,主控器仍然会尝试传输。

主机软件清除 SLVMON 位时,该循环本应该停止。

但 SLVMON 被清除时,该循环并没有停止。

如果主机使用与任何 I2C 从设备都不对应的 I2C 地址来设置从监控器模式,则永远不会接收 ACK,而从监控器模式也将永远不会被退出。

影响:

非常严重。

如果 Zynq 是唯一的主控器,它就不能在总线上与其它从设备通信。

在多主机系统中,这个问题可能会锁定总线,不允许其它主控器拥有该总线。
 
解决方法::

  1. 主设备长时间接收 NACK 时,主机应该写入 I2C 总线上存在的从设备的地址,并将使用一个 ACK 响应 I2C 地址寄存器

    这将导致 I2C 主控器为下一次事务处理使用这个新地址。

    只要那个从设备用 ACK 响应,就会正确退出从监控器模式。

  2. 控制器长时间接收 NACK 时,为 I2C 控制器应用软复位,并在开始新的传输之前重新配置该控制器。

受影响的配置:
 
所有 Zynq-7000 PS I2C 控制器都在从监控器模式下运行,总线可能不会使用 ACK 响应。
受影响的器件修订版本:
 
请参考(Xilinx 答复 47916) Zynq-7000 SoC 芯片修订版差异。

分辨率:
这是一个第三方错误,该问题不会修复。  

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
47916 Zynq-7000 SoC 器件:芯片修订差异 N/A N/A
AR# 63245
日期 05/28/2018
状态 Active
Type 设计咨询
器件
的页面