Zynq-7000 SoC, I2C - 标准模式下运行频率超过 90kHz 违反 tHD; STA 时序要求

描述
当运行频率超过 90kHz,I2C 控制器在标准模式下运行违反 tHD;STA 时序参数

tHD;STA 时序参数是最低的start状态的保持时间。

(1楼)标准模式中的最大 SCL 时钟频率规定为 100

judyzhong 在 星期四, 06/14/2018 - 16:13 发表。

标准模式中的最大 SCL 时钟频率规定为 100 kHz,具有最低 tHD;STA 时序为 4.0 微秒。
Zynq I2C 控制器的 tHD;STA 时序:

  • 在 100kHz 下,控制器提供 3.6us 的时间。
  • 在 90kHz 下,控制器提供 4.0us。
  • 90kHz以下时,控制器超过 4.0us。
  • 注意:此问题只出现在 I2C 标准模式(不出现在快速模式)。

    注意:SCL 时钟频率和 tHD;STA 时序取决于 APB 总线时钟频率、CPU_1x 和 i2c.Control_reg0 寄存器中的分频器值。

    影响:

    很小。

    所有最新的 I2C 器件都支持快速模式,该模式下具有 400kHz 的最大 SCL 时钟频率和 0.6us 的最小 tHD;STA。

    此时序可通过控制器实现,而且不受此问题影响。

    对于标准模式应用而言,90kHz 在大多数情况下都可接受。

    规避措施:

    有 3 种解决方法:

  • 对于标准模式,在 90kHz(或以下)运行接口。
  • 对于标准模式,在 100 kHz 下时,3.6us 的tHD;STA 可以接受。
  • 使用快速模式。
  • 受影响的配置: 

    在标准模式下使用 I2C 的系统。
     
    受影响的器件修订版本:    

    全部,无计划修复。 

    参考 (Xilinx Answer 47916) - Zynq-7000 SoC 芯片修订差异