royalheart
驱动牛犊
驱动牛犊
  • 注册日期2005-11-13
  • 最后登录2008-05-10
  • 粉丝0
  • 关注0
  • 积分220分
  • 威望23点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
阅读:1731回复:2

请教68013的复位时FIFO数据如何清除?

楼主#
更多 发布于:2008-05-02 22:30
我用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无法清空?
royalheart
驱动牛犊
驱动牛犊
  • 注册日期2005-11-13
  • 最后登录2008-05-10
  • 粉丝0
  • 关注0
  • 积分220分
  • 威望23点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-05-02 22:40
请高手指点!这个问题困惑了好久,非常感谢!
tomlih
驱动小牛
驱动小牛
  • 注册日期2003-07-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望64点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-18 15:36
可能是外部控制不对
游客

返回顶部