大家好。我再调试BF609和ADC连接时遇到了问题,请大家帮忙看看。BF609通过EPPI2和ADC相连,ADC的采样时钟是40MHz。我准备采用FS0模式,也就是出发一次开始采集数据,然后就不管帧同步信号了。现在的问题是,DMA通道的状态寄存器看起来是对的,计数器减到了0,但是没有数据读进内存中,EPPI2的状态寄存器提示YFIFO出错。下面是配置的程序,请大家看看问题在哪儿,谢谢了!
/*-------------------config the DMA ---------------------------*/
r0.h = 0x0002;
r0.l = 0x240C;
p0.h = hi(REG_EPPI2_CTL);
p0.l = lo(REG_EPPI2_CTL);
[p0] = r0;
r1.l = lo(real_data);
r1.h = hi(real_data);
p1.h = hi(REG_DMA31_ADDRSTART);
p1.l = lo(REG_DMA31_ADDRSTART);
[p1] = r1;
r1 = 128;
p1.h = hi(REG_DMA31_XCNT);
p1.l = lo(REG_DMA31_XCNT);
[p1] = r1;
r1 = 2;
p1.h = hi(REG_DMA31_XMOD);
p1.l = lo(REG_DMA31_XMOD);
[p1] = r1;
r1.h = 0x0050;
r1.l = 0x0126;
p1.h = hi(REG_DMA31_CFG);
p1.l = lo(REG_DMA31_CFG);
[p1] = r1;
r0 = [p0];
r1 = [p1];
bitset(r0,0);
bitset(r1,0);
[p1] = r1;
[p0] = r0;
wait0: jump wait0;