|
楼主 |
发表于 2012-5-10 14:10:11
|
显示全部楼层
feiwa 发表于 2012-5-9 01:04
好,把我配置的文件传给你看看。
我主要是配置EP6为bulk, asynchronous, auto-in, 512, double buffer.
...
我还是贴下我的代码吧,我仔细看了下你得配置文件,因为我的是读写双向的,除了在这方面的差别觉得都差不多,难道又是FPGA的问题?
void TD_Init( void )
{ // Called once at startup
//时钟设置
CPUCS = 0x12; //48MHZ CLKOUT ENALBE
IFCONFIG =0x03;//使用外部时钟,IFCLK输入不反向
SYNCDELAY;
REVCTL=0x03;
SYNCDELAY;
EP2CFG=0xA2; //需要设定为双缓冲,每个缓冲区大小为512字节
SYNCDELAY;
EP4CFG=0x00;
SYNCDELAY;
EP6CFG=0xE2;
SYNCDELAY;
EP8CFG=0x00;
SYNCDELAY;
FIFORESET = 0x80; // activate NAK-ALL to avoid race conditions
SYNCDELAY; // see TRM section 15.14
FIFORESET = 0x02; // reset, FIFO 2
SYNCDELAY; //
FIFORESET = 0x06; // reset, FIFO 6
SYNCDELAY; //
FIFORESET = 0x00; // deactivate NAK-ALL
SYNCDELAY;
PINFLAGSAB = 0xE6; // FLAGA - fixed EP6PF, FLAGB - fixed EP6FF
SYNCDELAY;
PINFLAGSCD = 0xF8; // FLAGC - fixed EP2EF, FLAGD - reserved
SYNCDELAY;
PORTACFG |= 0x00; //0x40; // SLCS, set alt. func. of PA7 pin
SYNCDELAY;
FIFOPINPOLAR = 0x00; // all signals active low,
SYNCDELAY;
OEA|=0x0F; //这是当时56pin时i/o不够用 吧pa0,1,3,7配置成普通io了
//congfig endpoint 2,6
SYNCDELAY;
EP2FIFOCFG = 0x11; // AUTOOUT=1, WORDWIDE=1
SYNCDELAY;
EP6FIFOCFG = 0x0D; // AUTOIN=1, ZEROLENIN=1, WORDWIDE=1
SYNCDELAY;
SYNCDELAY;
EP6AUTOINLENH = 0x02;
SYNCDELAY;
EP6AUTOINLENL = 0x00;
SYNCDELAY;
SYNCDELAY;
OUTPKTEND = 0x82;
SYNCDELAY;
OUTPKTEND = 0x82;
SYNCDELAY;
//IO设置
PORTCCFG=0x00;
SYNCDELAY;
PORTECFG=0x00;
SYNCDELAY;
OEC=0x00;
SYNCDELAY;
OEE=0xff;
// PA3=0;
PA0=1;
enum_high_speed=FALSE;
} |
|