alittlebug
驱动牛犊
驱动牛犊
  • 注册日期2005-07-28
  • 最后登录2011-07-07
  • 粉丝0
  • 关注0
  • 积分451分
  • 威望52点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
阅读:2999回复:8

关于68013的slave fifo读写数据不成功的问题(内有详细讨论)

楼主#
更多 发布于:2007-03-21 23:13
  我用68013的slave fifo模式,老是写不成功,
发现以下几个问题
1。发现了信号full从低变高,但从fpga(控制器端)都读不出数据,不知道为什么?
2.主机向下面写的时候只能写128×4大小的数据,再也写不下去了,是否写满而没有取走导致的?

我的设置条件是:
   ep2端点 自动输出  同步 ifclk使能输出
    sloe=0;
    fifoaddr=2'b00;
    slrd=0,1,0,1,.........

我的固件程序如下:
SYNCDELAY;
FIFORESET = 0x08;
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY; // this defines the external interface to be the following:
IFCONFIG = 0xe3; // use IFCLK pin driven by external logic (5MHz to 48MHz)
SYNCDELAY;
EP2CFG = 0xA2; // EP2 is DIR=OUT, TYPE=BULK, SIZE=512, BUF=2x
// and defines the endpoint for 512 byte packets, 2x buffered
EP2FIFOCFG=0x10;
OUTPKTEND = 0x82; // Arm both EP2 buffers to “prime the pump”
SYNCDELAY;
OUTPKTEND = 0x82;
SYNCDELAY;
PINFLAGSAB = 0x00; // defines FLAGA as prog-level flag, pointed to by FIFOADR[1:0]
SYNCDELAY; // FLAGB as full flag, as pointed to by FIFOADR[1:0]
PINFLAGSCD = 0x00; // FLAGC as empty flag, as pointed to by FIFOADR[1:0]
// won't generally need FLAGD
PORTACFG = 0x00; // used PA7/FLAGD as  /SLCS
FIFOPINPOLAR = 0x00; // set all slave FIFO interface pins as active low
SYNCDELAY;

EP2BCL = 0x80; // since the defaults are double buffered we must
SYNCDELAY; // write dummy byte counts twice
EP2BCL = 0x80; // arm EP2OUT & EP4OUT by writing to the byte count w/skip.
SYNCDELAY;
EP4BCL = 0x80;//当作为输出时EPxBCL赋值
SYNCDELAY;
EP4BCL = 0x80;


大侠们帮我看看,谢谢
alittlebug
驱动牛犊
驱动牛犊
  • 注册日期2005-07-28
  • 最后登录2011-07-07
  • 粉丝0
  • 关注0
  • 积分451分
  • 威望52点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-22 12:33
为什么呢?
大侠们请帮忙,谢谢
wjt810907
驱动中牛
驱动中牛
  • 注册日期2004-08-18
  • 最后登录2011-04-16
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望409点
  • 贡献值1点
  • 好评度402点
  • 原创分2分
  • 专家分0分
板凳#
发布于:2007-03-22 12:54
是不是autooutlength没设?(建议)
mcu_boy
alittlebug
驱动牛犊
驱动牛犊
  • 注册日期2005-07-28
  • 最后登录2011-07-07
  • 粉丝0
  • 关注0
  • 积分451分
  • 威望52点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-22 23:27
没有这个寄存器吧,我怎么没有找到
wjt810907
驱动中牛
驱动中牛
  • 注册日期2004-08-18
  • 最后登录2011-04-16
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望409点
  • 贡献值1点
  • 好评度402点
  • 原创分2分
  • 专家分0分
地下室#
发布于:2007-03-23 08:39
错了,呵呵。。。autoout没有length,我想你的情况是设备没有把数据读走,导致写不进
mcu_boy
alittlebug
驱动牛犊
驱动牛犊
  • 注册日期2005-07-28
  • 最后登录2011-07-07
  • 粉丝0
  • 关注0
  • 积分451分
  • 威望52点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-03-24 10:09
对啊,我感觉也是,我感觉我的时序没有错啊
怎么会没有读走呢
暴郁闷中
alittlebug
驱动牛犊
驱动牛犊
  • 注册日期2005-07-28
  • 最后登录2011-07-07
  • 粉丝0
  • 关注0
  • 积分451分
  • 威望52点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-03-25 22:37
顶上去
wjt810907
驱动中牛
驱动中牛
  • 注册日期2004-08-18
  • 最后登录2011-04-16
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望409点
  • 贡献值1点
  • 好评度402点
  • 原创分2分
  • 专家分0分
7楼#
发布于:2007-03-26 09:37
你在unauto下读前先outpktend一下试试?
mcu_boy
amygirl
驱动牛犊
驱动牛犊
  • 注册日期2006-11-07
  • 最后登录2008-03-06
  • 粉丝0
  • 关注0
  • 积分360分
  • 威望37点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-03-27 20:48
楼上的,OUTPKTEND 到底是起什么作用的?
跳过是跳过什么?
提交又是提交什么?
我的固件没有写这句,也可以用啊
驱网无线,快乐无限
游客

返回顶部