阅读:1270回复:4
请问关于FX2 slave FIFO固件设计的问题
如果只开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得输出,但结果是没什么变化) 请问是不是固件有问题,怎么改?谢谢! |
|
沙发#
发布于:2003-11-11 08:30
怎样让主机输出数据
|
|
|
板凳#
发布于:2003-11-11 10:10
怎样让主机输出数据 我直接用FX2的通用驱动往管道写数据啊。 |
|
地板#
发布于:2003-11-11 16:06
顶上来,哪位大侠看看。
谢谢! |
|
地下室#
发布于:2003-11-11 20:19
我也试过了,好像auto out用不起来,需要改成manual的方式,调用fx2的中断模式,在void ISR_Ep2inout(void) interrupt 0中加入如下代码: SYNCDELAY;
OUTPKTEND = 0x02; EZUSB_IRQ_CLEAR(); EPIRQ = 0x10; 试一下!! |
|