zhanggy_zju
驱动牛犊
驱动牛犊
  • 注册日期2003-10-04
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1270回复:4

请问关于FX2 slave FIFO固件设计的问题

楼主#
更多 发布于:2003-11-10 20:37
如果只开EP2端口做Auto out传输,并且是外部master用异步方式读取。
是不是只需在TD_Init()里进行相应设置就可以了?
像这样:
void TD_Init(void)             // Called once at startup
{
   // set the CPU clock to 48MHz
   CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;

REVCTL = 0x03; // MUST set REVCTL.0 and REVCTL.1 to 1
SYNCDELAY;
EP2CFG = 0xA2; //EP2->Out,bulk
SYNCDELAY;

// set the slave FIFO interface to 48MHz
IFCONFIG = 0xCB;
    
SYNCDELAY;
FIFORESET = 0x80;             // activate NAK-ALL to avoid race conditions
   SYNCDELAY;                    // see TRM section 15.14
   FIFORESET = 0x02;             // reset, FIFO 2
   SYNCDELAY;                    //
   FIFORESET = 0x00;             // deactivate NAK-ALL

   SYNCDELAY;
   PINFLAGSAB = 0x9C;            // FLAGA - fixed EP2EF, FLAGB - fixed EP2FF
   SYNCDELAY;
   PORTACFG |= 0x80;             // FLAGD, set alt. func. of PA7 pin
   SYNCDELAY;
   FIFOPINPOLAR = 0x00;          // all signals active low,default
   SYNCDELAY;

EP2FIFOCFG=0x10; //EP2 is AUTOOUT=0, AUTOIN=0, ZEROLEN=0, WORDWIDE=0(0: 8bit)
SYNCDELAY;

OUTPKTEND = 0x82; // Arm both EP2 buffers to “prime the pump”
SYNCDELAY;
OUTPKTEND = 0x82;

   Rwuen = TRUE;            // Enable remote-wakeup
}
为什么我在SLOE和SLRD上分别加上时序信号后,用示波器测,
主机端还没输出数据,FD[8]:[0]有些引脚就有信号,有些没有。
主机端输出数据的时候,FD[x]上仍然没有变化呢?这时候应该是随输出数据有关系呀。
(比如我在FD[x]上0,1,0,1得输出,但结果是没什么变化)
请问是不是固件有问题,怎么改?谢谢!
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-11 08:30
怎样让主机输出数据
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
zhanggy_zju
驱动牛犊
驱动牛犊
  • 注册日期2003-10-04
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-11 10:10
怎样让主机输出数据

我直接用FX2的通用驱动往管道写数据啊。
zhanggy_zju
驱动牛犊
驱动牛犊
  • 注册日期2003-10-04
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-11 16:06
顶上来,哪位大侠看看。
谢谢!
jack0321
驱动牛犊
驱动牛犊
  • 注册日期2002-03-31
  • 最后登录2010-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-11-11 20:19
我也试过了,好像auto out用不起来,需要改成manual的方式,调用fx2的中断模式,在void ISR_Ep2inout(void) interrupt 0中加入如下代码:   SYNCDELAY;
OUTPKTEND = 0x02;
EZUSB_IRQ_CLEAR();
    EPIRQ = 0x10;
试一下!!
游客

返回顶部