文章 ID: 000086590 内容类型: 故障排除 上次审核日期: 2021 年 06 月 24 日

鉴于共享相同 OEM 信号的每个 x4 DQ 组都受到了限制,在英特尔 Agilex® 7 设备中放置 I2C 引脚时应该考虑什么?

环境

  • 英特尔® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    根据英特尔 Agilex 7 FPGA® 通用 I/O 和 LVDS SERDES 用户指南 中的引脚放置要求,每个 x4 DQ 组共享相同的 OEM、重置和时钟启用信号,因此您无法在 x4 DQ 组中拆分 OEM、重置或时钟启用信号。考虑到限制,放置 I2C 引脚时有一些注意事项。

     


     

      解决方法

      1. FPGA可用作 I2C 主模式,需要多主模式:

      (i) I2C 的一个典型实施就是在 SCL 和 SDA 上使用 OEM,如下所示。因此,您不能将 SCL 和 SDA 置于同一个 x4 DQ 组中。

      分配i2c_serial_scl_in = arduino_adc_scl;

      分配arduino_adc_scl = i2c_serial_scl_oe?1'b0:1'bz;

      分配i2c_serial_sda_in = arduino_adc_sda;

      分配arduino_adc_sda = i2c_serial_sda_oe?1'b0:1'bz;

      (ii) 另一种方法是使用 GPIO 英特尔 FPGA IP。您可以启用 SCL 和 SDA 的开放式消耗,将适用于 SCL 和 SDA 的 O O 端口连接到 1(高),并连接原始 OEM 控制信号的逆转信号。通过这种方式,您可以围绕限制进行工作。以下是一个示例:

            

      gpioip gpioip_scl (

      .dout (i2c_serial_scl_in),

      .din (~i2c_serial_scl_oe),

      .oe (1'b1),

      .pad_io (arduino_adc_scl)

      );

      gpioip gpioip_sda (

      .dout (i2c_serial_sda_in),

      .din (~i2c_serial_sda_oe),

      .oe (1'b1),

      .pad_io (arduino_adc_sda)

      );

       

      2. FPGA可用作 I2C 主单模式:

      SCL 是一个不带 OOE 的输出引脚。SDA 是一个带有 OOE 的双向引脚。

       

      3. FPGA用作 I2C 从:

      SCL 是一个没有 OEM 的输入引脚。SDA 是一个带有 OOE 的双向引脚。

       

      在 2 和 3 个以上中,因为 SCL 没有 OEM,

      • SCL 和 SDA 可以在同一个 x4 DQ 组中分配
      • 多个 SCL 和 SDA 可以在同一个 x4 DQ 组中分配
      • 无法在同一个 x4 DQ 组中分配多个 SDA
      • 当在同一个 x4 DQ 组中分配多个 SDA 时,使用上文提到的 GPIO 英特尔 FPGA IP 也是一个变通办法。

      相关产品

      本文适用于 1 产品

      英特尔® Agilex™ FPGA 和 SoC FPGA

      本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。