为了提高DM642的EDMA传输速度,我将EMIF的CLOCK设置成了CPU4分频,也就是150MHZ,SDRAM芯片使用HY57V283220-6(166MHZ)。
我的情况:
当我通过EDMA传输的数据保存到SDRAM中时,在view memory中看得时候,没刷新一下,数据就会变(可以保证这个时候EDMA不会再向SDRAM中写数),保存至内部RAM中的时候数据没问题(也就是说硬件电路上,不是电磁干扰的原因)。
问题: 这个是不是EMIF寄存器设置的原因? 该如何设置。我的寄存器设置如下:
EMIFA_Config Seeddm642ConfigA ={
EMIFA_FMKS(GBLCTL, EK2RATE, FULLCLK) |
EMIFA_FMKS(GBLCTL, EK2HZ, CLK) |
EMIFA_FMKS(GBLCTL, EK2EN, ENABLE) |
EMIFA_FMKS(GBLCTL, BRMODE, MRSTATUS) |
EMIFA_FMKS(GBLCTL, NOHOLD, DISABLE) |
EMIFA_FMKS(GBLCTL, EK1HZ, HIGHZ) |
EMIFA_FMKS(GBLCTL, EK1EN, ENABLE) |
EMIFA_FMKS(GBLCTL, CLK4EN, ENABLE) |
EMIFA_FMKS(GBLCTL, CLK6EN, ENABLE),
EMIFA_FMKS(CECTL, WRSETUP, DEFAULT) |
EMIFA_FMKS(CECTL, WRSTRB, DEFAULT) |
EMIFA_FMKS(CECTL, WRHLD, DEFAULT) |
EMIFA_FMKS(CECTL, RDSETUP, DEFAULT) |
EMIFA_FMKS(CECTL, TA, DEFAULT) |
EMIFA_FMKS(CECTL, RDSTRB, DEFAULT) |
EMIFA_FMKS(CECTL, MTYPE, SDRAM64) |
EMIFA_FMKS(CECTL, RDHLD, DEFAULT),
EMIFA_FMKS(CECTL, WRSETUP, OF(7)) |
EMIFA_FMKS(CECTL, WRSTRB, OF(14)) |
EMIFA_FMKS(CECTL, WRHLD, OF(2)) |
EMIFA_FMKS(CECTL, RDSETUP, OF(2)) |
EMIFA_FMKS(CECTL, TA, OF(2)) |
EMIFA_FMKS(CECTL, RDSTRB, OF(20)) |
EMIFA_FMKS(CECTL, MTYPE, ASYNC8) |
EMIFA_FMKS(CECTL, RDHLD, OF(1)),
EMIFA_FMKS(CECTL, WRSETUP, OF(2)) |
EMIFA_FMKS(CECTL, WRSTRB, OF(2)) |
EMIFA_FMKS(CECTL, WRHLD, OF(2)) |
EMIFA_FMKS(CECTL, RDSETUP, OF(1)) |
EMIFA_FMKS(CECTL, TA, OF(2)) |
EMIFA_FMKS(CECTL, RDSTRB, OF(1)) |
EMIFA_FMKS(CECTL, MTYPE, ASYNC32) |
EMIFA_FMKS(CECTL, RDHLD, OF(1)),
EMIFA_FMKS(CECTL, WRSETUP, OF(2)) |
EMIFA_FMKS(CECTL, WRSTRB, OF(10)) |
EMIFA_FMKS(CECTL, WRHLD, OF(2)) |
EMIFA_FMKS(CECTL, RDSETUP, OF(2)) |
EMIFA_FMKS(CECTL, TA, OF(2)) |
EMIFA_FMKS(CECTL, RDSTRB, OF(10)) |
EMIFA_FMKS(CECTL, MTYPE, SYNC32) |
EMIFA_FMKS(CECTL, RDHLD, OF(2)),
EMIFA_FMKS(SDCTL, SDBSZ, 4BANKS) |
EMIFA_FMKS(SDCTL, SDRSZ, 12ROW) |
EMIFA_FMKS(SDCTL, SDCSZ, 8COL) |
EMIFA_FMKS(SDCTL, RFEN, ENABLE) |
EMIFA_FMKS(SDCTL, INIT, YES) |
EMIFA_FMKS(SDCTL, TRCD, OF(3)) |
EMIFA_FMKS(SDCTL, TRP, OF(3)) |
EMIFA_FMKS(SDCTL, TRC, OF(10)) |
EMIFA_FMKS(SDCTL, SLFRFR, DISABLE),
EMIFA_FMKS(SDTIM, XRFR, OF(1)) |
EMIFA_FMKS(SDTIM, PERIOD, OF(2605)),
EMIFA_FMKS(SDEXT, WR2RD, OF(1)) |
EMIFA_FMKS(SDEXT, WR2DEAC, OF(3)) |
EMIFA_FMKS(SDEXT, WR2WR, OF(1)) |
EMIFA_FMKS(SDEXT, R2WDQM, OF(3)) |
EMIFA_FMKS(SDEXT, RD2WR, OF(5)) |
EMIFA_FMKS(SDEXT, RD2DEAC, OF(1)) |
EMIFA_FMKS(SDEXT, RD2RD, OF(1)) |
EMIFA_FMKS(SDEXT, THZP, OF(3)) |
EMIFA_FMKS(SDEXT, TWR, OF(2)) |
EMIFA_FMKS(SDEXT, TRRD, OF(2)) |
EMIFA_FMKS(SDEXT, TRAS, OF(7)) |
EMIFA_FMKS(SDEXT, TCL, OF(3)),
EMIFA_CESEC_DEFAULT,
EMIFA_CESEC_DEFAULT,
EMIFA_CESEC_DEFAULT,
EMIFA_FMKS(CESEC, SNCCLK, ECLKOUT2) |
EMIFA_FMKS(CESEC, RENEN, READ) |
EMIFA_FMKS(CESEC, CEEXT, ACTIVE) |
EMIFA_FMKS(CESEC, SYNCWL, 0CYCLE) |
EMIFA_FMKS(CESEC, SYNCRL, 3CYCLE)
};