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.

[参考译文] OMAP-L138:使用 EMIFA 连接 FPGA 的示例代码

Guru**** 2595770 points
Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/586792/omap-l138-sample-code-to-connect-with-fpga-using-emifa

器件型号:OMAP-L138

您好!

我的客户正在使用 OMAP-L138、并尝试通过 EMIFA 连接到 FPGA。

他们正在寻找使用 EMIFA 访问 FPGA (SRAM、SDRAM)的非操作系统样片。
他们尝试使用 StarterWare、但没有用于 SDRAM 和 SRAM 的 EMIFA 示例代码。

他们想要做的事情如下。
·对 EMIFA CS3上的外部异步存储器(FPGA)的 R/W 访问
·无需 ARM
·如果可能、从控制台执行命令

他们应该参考哪些开发代码?

请帮助他人。
提前感谢。

此致、
Miyashiro

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

    我已将此内容转发给软件专家。 他们的反馈应发布在此处。

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

    感谢你的答复。

    好的、我期待软件专家的回复。

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

    你好,宫山
    遗憾的是、我们没有任何开发板、因此没有任何代码示例来展示 EMIFA 到 FPGA 的情况
    我们已经看到许多客户主要使用 TRM 中的 EMIFA 章节自行实现了这一点。

    您可能还想了解我们的第三方关键链路,他们有一个 SOM 来显示此解决方案的情况,并且可能有启用此解决方案所需的软件

    www.criticallink.com/.../

    此致
    Mukul

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

    EMIFA 控制器退出异步访问的复位设置。 在 TRM 中查找 CEnCFG 的复位值。 对于存储器映射器件的访问、没有太多的配置 EMIFA。 StarterWare EMIFA 驱动程序比它需要的要复杂一些。 我不打扰到它。 下面的示例直接访问 EMIFA 寄存器、而不是使用 StarterWare API。 StarterWare pinmux 代码的风格非常糟糕、但它就是这样。 您可以将其减少为对引脚多路复用寄存器的单次访问、而不是对同一寄存器的多次访问。 示例假定到 FPGA 的总线为16位宽。 我尚未编译此代码片段。

    void FPGA_init (void)
    {
    PSCModuleControl (SOC_PSC_0_regs、
    HW_PSC_EMIFA、
    PSC_POWERDOMAIN_AUSE_ON、
    
    PSC_MDCTL_NEW_ENABLE);
    
    
    HWREG (SOC_SYSCFG_0_regs+SYSCFG0_PINMUX (5)=
    (HWREG (SOC_SYSCFG_0_regs+SYSCFG0_PINMUX (5)&)
    ~SYSCFG_PINMUX5_PINMUX5_31_28)|
    (SYSCFG_PINMUX5_PINMUX5_31_28_EMA_BA0<<
    SYSCFG_PINMUX5_PINMUX5_31_28);
    //重复 EMA_A0-EMA_A? 和 EMA_D0-EMA_D15、任何其他 EMA 信号*
    
    /*微型设置 CFG 寄存器。 如果不确定、则设置为最大时间。 /
    HWREG (SOC_EMIFA_0_regs+EMIFA_CE3CFG)
    = 0x00 << 31 /* 0-1 SS */
    | 0x00 << 30 // 0-1 EW */
    | 0x0F << 26 // 0-F W_SETUP */
    | 0x3F << 20 // 0-3F W_STROBE */
    | 0x07 << 17 // 0-7 W_HOLD */
    | 0x0F << 13 // 0-F R_Setup */
    | 0x3F << 7 // 0-3F R_STROBE */
    | 0x07 << 4 /* 0-7 R_HOLD */
    | 0x03 <<2 /* 0-3 TA */
    | 0x01 << 1;//* 0-3 ASIZE、0=8位、1=16位*//
    
    *现在可以在 CSn_ADDR 上访问*
    }
    
    void FPGA_SET (int i、uint16 v)
    {
    volatile uint16 * p =(volatile uint16 *) SOC_EMIFA_p_ADDR;
    p[i]=
    
    
    
    
    volatile uint16 *(volatile uint16 *) uintf_uinta *(volatile uint16 *) uinta = uintf_uinta *(volatile uintf_uint16 *) uinta *(volatile uintfa_uinta) uinta
    
    
    
    

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

    很抱歉、我的奖励很晚了。
    感谢您提供开发信息、Critical Link 信息和示例代码。

    我的客户确信他们需要与客户一起进行开发、
    他们很高兴提供示例代码。

    我非常感谢你。

    此致、
    Miyashiro