This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM62L-Linux-SDK:Am6254 GPMC0_A[16-19]未输出地址信号。

Guru**** 2885260 points

Other Parts Discussed in Thread: SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1640457/am62l-linux-sdk-am6254-gpmc0_a-16-19-not-output-address-signal

器件型号: AM62L-Linux-SDK
主题: SysConfig 中讨论的其他器件

您好:

 当前要求是配置 GPMC 以与 FPGA 通信。 使用 16 位数据地址多路复用模式。 但是、地址线不满足要求、需要使用 GPMC0_A[16-19]进行地址扩展。 我配置了 GPMC0_A[16-19]的引脚属性、但无法输出地址信号。 器件树文件的内容如下:

/*=========================================================
 * Genegeo AM62x GPMC 配置
 *=================================================== */

/*------------------------------------------------------------------------
 *为 GPMC DMA 保留的存储器
 *------------------------------------------------------------------------ */
和{/}  

  DMA_memcpy{
        状态=“正常“;
        兼容=“DMA_memcpy“;
      };
};

&RESERVED_MEMORY{
   GPMC_DMA:GPMC-DMA@9c000000{
    compatible =“shared-dma-pool“;
    REG =<0x00 0x9c000000 0x00 0x00700000>; // 7MB
    无映射;
  };
};

&main_bcdma{
  状态=“正常“;
};

/*------------------------------------------------------------------------
 * GPMC 引脚多路复用配置
 *------------------------------------------------------------------------ */
&main_pmx0{
  MAIN_GPMC_PINS_DEFAULT:MAIN_GPMC_PINS_DEFAULT{
    pinctrl-single、pins =<
      AM62X_IOPAD (0x00b8、PIN_OUTPUT、1)/* VOUT0_DATA0 GPMC0_A0  */
      AM62X_IOPAD (0x00bc、PIN_OUTPUT、1)/* VOUT0_DATA1 GPMC0_A1 *  /
      AM62X_IOPAD (0x00c0、PIN_OUTPUT、1)/* VOUT0_DATA2 GPMC0_A2  */
      AM62X_IOPAD (0x00c4、PIN_OUTPUT、1)/* VOUT0_DATA3 GPMC0_A3  */
      AM62X_IOPAD (0x00c8、PIN_OUTPUT、1)/* VOUT0_DATA4 GPMC0_A4 *  /
      AM62X_IOPAD (0x00cc、PIN_OUTPUT、1)/* VOUT0_Data5 GPMC0_A5  */
      AM62X_IOPAD (0x00d0、PIN_OUTPUT、1)/* VOUT0_DATA6 GPMC0_A6  */
      AM62X_IOPAD (0x00d4、PIN_OUTPUT、1)/* VOUT0_DATA7 GPMC0_A7  */
      AM62X_IOPAD (0x00d8、PIN_OUTPUT、1)/* VOUT0_DATA8 GPMC0_A8 *  /
      AM62X_IOPAD (0x00dc、PIN_OUTPUT、1)/* VOUT0_DATA9 GPMC0_A9  */
      AM62X_IOPAD (0x00e0、PIN_OUTPUT、1)/* VOUT0_DATA10 GPMC0_A10 */
      AM62X_IOPAD (0x00e4、PIN_OUTPUT、1)/* VOUT0_DATA11 GPMC0_A11 */
      AM62X_IOPAD (0x00e8、PIN_OUTPUT、1)/* VOUT0_DATA12 GPMC0_A12 */
      AM62X_IOPAD (0x00ec、PIN_OUTPUT、1)/* VOUT0_DATA13 GPMC0_A13 */
      AM62X_IOPAD (0x00f0、PIN_OUTPUT、1)/* VOUT0_DATA14 GPMC0_A14 */
      AM62X_IOPAD (0x00f4、PIN_OUTPUT、1)/* VOUT0_DATA15 GPMC0_A15 */
      AM62X_IOPAD (0x00f8、PIN_OUTPUT、1)/* VOUT0_HSYNC GPMC0_A16 * /
      AM62X_IOPAD (0x00fc、PIN_OUTPUT、1)/* VOUT0_DE GPMC0_A17  */
      AM62X_IOPAD (0x0100、PIN_OUTPUT、1)/* VOUT0_VSYNC GPMC0_A18 */
      AM62X_IOPAD (0x0104、PIN_OUTPUT、1)/* VOUT0_PCLK GPMC0_A19 */
     
      AM62X_IOPAD (0x003c、PIN_INPUT、0)/* GPMC0_AD0 */
      AM62X_IOPAD (0x0040、PIN_INPUT、0)/* GPMC0_AD1 */
      AM62X_IOPAD (0x0044、PIN_INPUT、0)/* GPMC0_AD2 */
      AM62X_IOPAD (0x0048、PIN_INPUT、0)/* GPMC0_AD3 */
      AM62X_IOPAD (0x004c、PIN_INPUT、0)/* GPMC0_AD4 */
      AM62X_IOPAD (0x0050、PIN_INPUT、0)/* GPMC0_AD5 */
      AM62X_IOPAD (0x0054、PIN_INPUT、0)/* GPMC0_AD6 */
      AM62X_IOPAD (0x0058、PIN_INPUT、0)/* GPMC0_AD7 */
      AM62X_IOPAD (0x005c、PIN_INPUT、0)/* GPMC0_AD8 */
      AM62X_IOPAD (0x0060、PIN_INPUT、0)/* GPMC0_AD9 */
      AM62X_IOPAD (0x0064、PIN_INPUT、0)/* GPMC0_AD10 */
      AM62X_IOPAD (0x0068、PIN_INPUT、0)/* GPMC0_AD11 */
      AM62X_IOPAD (0x006c、PIN_INPUT、0)/* GPMC0_AD12 */
      AM62X_IOPAD (0x0070、PIN_INPUT、0)/* GPMC0_AD13 */
      AM62X_IOPAD (0x0074、PIN_INPUT、0)/* GPMC0_AD14 */
      AM62X_IOPAD (0x0078、PIN_INPUT、0)/* GPMC0_AD15 */

      AM62X_IOPAD (0x00a8、PIN_OUTPUT、0)/* GPMC0_CSn0 */
      AM62X_IOPAD (0x0084、PIN_OUTPUT、0)/* GPMC0_ADVn_ALE */
      AM62X_IOPAD (0x0088、PIN_OUTPUT、0)/* GPMC0_oen_Ren */
      AM62X_IOPAD (0x008c、PIN_OUTPUT、0)/* GPMC0_WEn */
    >;
  };
};

/*------------------------------------------------------------------------
 *启用 GPMC 控制器
 *------------------------------------------------------------------------ */
&gpmc0{
  状态=“正常“;

  #address-cells =<2>;
  #size-cells =<1>;

  pinctrl-names =“default“;
  pinctrl-0 =<&MAIN_GPMC_PINS_default>;

  RANGE =<0 0x00 0x50000000 0x01000000>;/* CS0 空间。 最小分区= 16MB */
   
  NOR@0、0{
    兼容=“genegeo-GPMC“;

    reg =<0 0x00000000 0x010000000>;  /* 16MB FPGA Window */

    DMA =<&main_bcdma 0x20 0 0>、<&main_bcdma 0x21 0 0>、
        <&MAIN_bcdma 0x22 0 0>、<&MAIN_bcdma 0x23 0 0>、
        <&MAIN_bcdma 0x24 0 0>、<&MAIN_bcdma 0x25 0 0>、
        <&MAIN_bcdma 0x26 0 0>、<&MAIN_bcdma 0x27 0 0>;
        
    dma-names =“rbc“、“wbc“、“diff“、“CRP1“、“crp2“、 “crp3“、“CRP4“、“tsfile“;

    #address-cells =<1>;
    #size-cells =<1>;

    存储体宽度=<2>;        /* 16 位*/
    GPMC、多路复用器加数据=<2>;  

    GPMC、cs-on-ns =<0>;
    GPMC、cs-rd-off-ns =<180>;
    GPMC、CS-wr-off-ns =<180>;

    GPMC、高级导通 ns =<0>;
    GPMC、高级关断 ns =<40>;
    GPMC、高级关断 ns =<40>;

    GPMC、oe-on-ns =<60>;
    GPMC、oe-off-ns =<180>;
    GPMC、we-on-ns =<60>;
    GPMC、we-off-ns =<180>;

    GPMC、rd-cycle-ns =<200>;
    GPMC、wr 周期 ns =<200>;
    GPMC、access-ns =<120>;
    GPMC、page-burst-access-ns =<0>;

    GPMC、总线转换 ns =<0>;
    GPMC、cycle2cycle-delay-ns =<50>;
    GPMC、wr-data mux-bus-ns =<80>;

    GPMC、cycle2cycle-samecsen =<10>;
    GPMC、cycle2cycle-diffcsen =<0>;
  };
};

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1/。 我们是使用类似或非 (SRAM) 的接口还是类似与非门接口通过 GPMC 将 FPGA 连接到 AM62x?
    2/。 您是否会分享与 GPMC 连接的 FPGA 原理图?
    此致、
    - Hong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Hong:

       我们使用类似 NOR (SRAM) 的接口通过 GPMC 将 FPGA 连接到 AM62x。FPGA 和 GPMC 的连接原理图如下所示。

    此致、

    - Yi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yi:

    我回顾了几天前您更新的内容、即当您修改 GPMC0_A[16-19]上的 PINMUX IO_PAD 配置后、GPMC0_A[16-19]信号就会正常工作。
    但似乎您删除了以前的更新?
    1/。 自上次更新以来发生了什么变化?
    2/。 是否有关于当前问题的其他详细信息?

    此致、
    - Hong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hong Hong:

       我在上次更新中犯了一个错误。上次更新只是降低了 GPMC[16-19]引脚。 实际的 GPIO 引脚未被驱动。 我的测试方法不正确。

    此致、

    - Yi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yi:

    首先、您能否确认器件是 AM62x、而不是 AM62Lx?

    无论如何、当在 AD 多路复用模式下使用 GPMC 时...
    *地址[16:1]出现在引脚 GPMC0_AD[15:0]上(16 位字寻址)
    *地址[26:17]出现在引脚 VOUT0_DATA[10:1]上、应将其多路复用到功能 GPMC0_A[10:1]。 (校正:在 AD 多路复用模式下不使用 GPMC0_A0)

    您显示了 VOUT0_PCLK、VOUT0_VSYNC、VOUT0_DE、VOUT0_HSYNC 的地址[19:16]、该地址 对于非多路复用模式真、但对于 AD 多路复用模式不正确。

    请参阅数据表的表 5-25。 GPMC0 信号说明 — https://www.ti.com/lit/gpn/am625 
    另请参阅 TRM 表 12-187。 GPMC 引脚多路复用选项 — https://www.ti.com/lit/pdf/SPRUIV7 
    此外、SysConfig 还会在您选择用例时选择正确的引脚:多路复用 16b NOR type - Asynchronous - https://dev.ti.com/sysconfig

    希望这对您有所帮助、
    标记

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:Mark、

    感谢您的答复。 我已确定我的问题。 我应该使用 GPMC0_A[1-4]、但在 PCB 上、它直接连接到 GPMC0_A[16-19]。 我已经联系了硬件工程师以修改 PCB。

    此致、

    - Yi