阅读:1733回复:2
请教68013的复位时FIFO数据如何清除?
我用EP2作为下载端口, 当计算机下载数据到EP2时,根据EP2的状态,产生上升沿脉冲PA0,通知后端的FPGA去读68013的EP2,以下是该部分在TD_POLL的固件,可是问题在于,每次上电,发现FIFO里总有莫名其妙的数据,导致PA0一电就呈现高电平,读出不想要的数据。是否68013复位时FIFO会被68013写入数据?
if( !( EP2468STAT & 0x01 ) ) { OUTPKTEND = 0x02; // SKIP=0, pass buffer on to master SYNCDELAY; PA0=1; } else {PA0=0;} 我看了手册,上面说到这个问题是要在初始化时写入: TD_Init(): … … … … … REVCTL = 0x03; // MUST set REVCTL.0 and REVCTL.1 to 1 SYNCDELAY; SYNCDELAY; EP2CFG = 0xA2; // EP2 is DIR=OUT, TYPE=BULK, SIZE=512, BUF=2x SYNCDELAY; EP2FIFOCFG = 0x00; // EP2 is AUTOOUT=0, AUTOIN=0, ZEROLEN=0, WORDWIDE=0 // OUT endpoints do NOT come up armed SYNCDELAY; OUTPKTEND = 0x82; // arm first buffer by writing OUTPKTEND w/skip=1 SYNCDELAY; OUTPKTEND = 0x82; // arm second buffer by writing OUTPKTEND w/skip=1 可是我已经这样写了,为什么FIFO里复位后会有其他的数据?为什么FIFORESET无法清空? |
|
沙发#
发布于:2008-06-18 15:36
可能是外部控制不对
|
|
板凳#
发布于:2008-05-02 22:40
请高手指点!这个问题困惑了好久,非常感谢!
|
|