文章 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™ 7 FPGA 和 SoC FPGA

    1

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