TI中文支持网
TI专业的中文技术问题搜集分享网站

关于C6748下EMIFA口在normal模式下无法更改时序的问题

我现在C6748的EMIFA口配置如下:

  //Set async mode as normal mode
    EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_5, EMIFA_ASYNC_INTERFACE_NORMAL_MODE);
    //Disable the wait pin
    EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_5,EMIFA_EXTENDED_WAIT_DISABLE);
    //Timing config
    EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_5,
                            EMIFA_ASYNC_WAITTIME_CONFIG(1,2,1,1,2,1,0));
    //Width config
    EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_5,EMIFA_DATA_BUSWITTH_16BIT);
由于数据量不大就没有采用DMA方式。
现在遇到的问题是:“ EMIFA_ASYNC_WAITTIME_CONFIG(1,2,1,1,2,1,0)”不论怎么设置,“ EMIFA_ASYNC_WAITTIME_CONFIG(0,0,0,0,0,0,0)”,
还是“ EMIFA_ASYNC_WAITTIME_CONFIG(15,63,7,15,63,7,3)”,从示波器量出来的CS信号和WE信号宽窄没有任何变化,EMIFA口始终
是以不到2M的速度运行。“EMIFA_ASYNC_INTERFACE_NORMAL_MODE”换成“EMIFA_ASYNC_INTERFACE_STROBE_MODE”也没有任何变化。
请问是不是还有什么要改的?为何我的设置没有任何变化?我配置的EMIFA口时钟是100M,由于示波器性能有限,没看出来,
但是CS、WE是可以看出来的。此时写入速度才1.28M啊!

 

Tony Tang:

EMIFA_ASYNC_WAITTIME_CONFIG()这个函数的原型?配置了什么寄存器?

user1317437:

回复 Tony Tang:

void EMIFAWaitTimingConfig(unsigned int baseAddr,unsigned int CSNum, unsigned int conf){

switch(CSNum)

{

case EMIFA_CHIP_SELECT_2:

HWREG(baseAddr + EMIFA_CE2CFG) |= conf;

break;

case EMIFA_CHIP_SELECT_3: HWREG(baseAddr + EMIFA_CE3CFG) |= conf; break; case EMIFA_CHIP_SELECT_4: HWREG(baseAddr + EMIFA_CE4CFG) |= conf; break; case EMIFA_CHIP_SELECT_5: HWREG(baseAddr + EMIFA_CE5CFG) |= conf; break; default: break; }}

#define EMIFA_ASYNC_WAITTIME_CONFIG(wset, wstb, whld, rset, rstb, rhld, ta ) ((unsigned int) \ ((wset << EMIFA_CE2CFG_W_SETUP_SHIFT) & EMIFA_CE2CFG_W_SETUP) | \ ((wstb << EMIFA_CE2CFG_W_STROBE_SHIFT) & EMIFA_CE2CFG_W_STROBE) | \ ((whld << EMIFA_CE2CFG_W_HOLD_SHIFT) & EMIFA_CE2CFG_W_HOLD) | \ ((rset << EMIFA_CE2CFG_R_SETUP_SHIFT) & EMIFA_CE2CFG_R_SETUP) | \ ((rstb << EMIFA_CE2CFG_R_STROBE_SHIFT) & EMIFA_CE2CFG_R_STROBE) | \ ((rhld << EMIFA_CE2CFG_R_HOLD_SHIFT) & EMIFA_CE2CFG_R_HOLD) | \ ((ta << EMIFA_CE2CFG_TA_SHIFT) & EMIFA_CE2CFG_TA))

user1317437:

回复 Tony Tang:

是在StartWare中的emifa.h中定义的

Tony Tang:

回复 user1317437:

上面配置的是CS5的时序,而实际测量是访问的什么地址,把CE2CFG-CE5CFG几个寄存器的值是多少?

要么是你配错寄存了,要么是你测量时访问的地址不对。

user1317437:

回复 Tony Tang:

我只配置了CE5,其他的都没有动。访问地址:0x66000000

user1317437:

回复 Tony Tang:

请确认地址0x66000000正确吗?除了地址,还有什么可能影响速度设置的地方?谢谢!

Tony Tang:

回复 user1317437:

CS5地址没有问题。检查你的配置,CE5cfg是否配置成功了。还有仔细看一下前后WE,CS宽度的对比。

这个你直接在CCS里改变CE5CFG寄存器的值就可以直接看到示波上波形变化的。

这是无数个人都验证过的。  

还有下面这个贴子可以看一下。

赞(0)
未经允许不得转载:TI中文支持网 » 关于C6748下EMIFA口在normal模式下无法更改时序的问题
分享到: 更多 (0)