我在16位异步模式下使用 EMIF。 根据技术手册、A0连接到 EM1BA1、A1连接到 EM1A0、以此类推。 EMIF1配置如下:
EALLOW();
m_psCpuSysRegs->PCLKCR1.bit.EMIF1 = 1U;
S_REG_EMIF1CONFIG->EMIF1ACCPROT0.ALL = 0x0u;
S_REG_EMIF1CONFIG->EMIF1MSEL.ALL = 0x93A5CE71UL;
S_REG_EMIF1CONFIG->EMIF1ACCPROT0.ALL = 0x0u;
S_REG_EMIF1CONFIG->EMIF1COMMIT.ALL = 0x1u;
S_REG_EMIF1CONFIG->EMIF1LOCK.ALL = 0x1u;
EDIS ();
setup_emif1_pinmux_async_16bit (0U);
S_REG_EMIF1->ASYNC_CS2_CR.ALL =
(EMIF_ASYNC_ASIZE_16 |
EMIF_ASYNC_TA_3 |
EMIF_ASYNC_RHOLD_4 |
EMIF_ASYNC_RSTROBE_4 |
EMIF_ASYNC_RSETUP_4 |
EMIF_ASYNC_whold_4 |
EMIF_ASYNC_WSTROBE_4 |
EMIF_ASYNC_WSETUP_4 |
EMIF_ASYNC_EW_DISABLE |
EMIF_ASYNC_SS_DISABLE );
m_pu16FPGA_ADR =(uint16_t *) EMIF1_CS2_START_ADDR;
for (i=0U;i<8u;i++)
{
* m_pu16FPGA_ADR++= m_au16FPGA_Output[i];
}
请参阅随附的 EMIF 总线信号文件。 地址总线信号被扩展。 EM1BA1总线线路(16位模式中的最低有效地址线路)、反向切换。 请参阅位模式以了解3个最低有效位:
总线上的地址写入地址
000 001
001 000
010. 011
011 010等
此外、只有 EM1BA1在 CS 变为非活动状态时恢复为逻辑高电平。 所有其它地址总线线路保持在它们之前的状态。
感谢你的帮助。
Zubair Hameed
