阅读:1590回复:3
求助 !!! CY7C68013的Slave FIFO模式,始终无法正确接收EP6IN的数据
我用的是Cypress的CY7C68013开发板,Slave FIFO模式,端点EP6 BULK IN方式连续读取8位数据总线PB7~PB0,内部48M同步IFCLK,512×2,AUTOIN=1,ZEROLENIN=1,WORDWIDE=0 。但用ControlPanel(Interface=0 Alt Setting=1),始终无法正确接收EP6IN的数据,
困扰多日请高手指点。十分感谢! 由于EP6只是读总线,故我的外围电路连接如下: OE#=1 ,RD#=1 ,WR#=0 ,CS#=0 ,PA4(FIFOADR0)=0 ,PA5(FIFOADR1)=1 ,PA6(PKTEND)=1 我的固件关键代码如下: void TD_Init( void ) { CPUCS = 0x10; // CLKSPD[1:0]=10, for 48MHz operation SYNCDELAY; REVCTL=0x03; SYNCDELAY; SYNCDELAY; IFCONFIG = 0xC3; // IFCLKSRC=1 , FIFOs executes on internal clk source // xMHz=1 , 48MHz internal clk rate // IFCLKOE=0 , Don\'t drive IFCLK pin signal at 48MHz // IFCLKPOL=0 , Don\'t invert IFCLK pin signal from internal clk // ASYNC=0 , master samples synchronous // GSTATE=0 , Don\'t drive GPIF states out on PORTE[2:0], debug WF // IFCFG[1:0]=11, FX2 in slave FIFO mode EP6CFG = 0xE2; // DIR=IN ,BULK , 512*2 SYNCDELAY; FIFORESET = 0x80; SYNCDELAY; FIFORESET = 0x06; // reset, FIFO 6 SYNCDELAY; FIFORESET = 0x00; SYNCDELAY; EP6FIFOCFG = 0x0C; // AUTOIN=1, ZEROLENIN=1, WORDWIDE=0 SYNCDELAY; EP6AUTOINLENH=0x02; SYNCDELAY; EP6AUTOINLENL=0x00; SYNCDELAY; } void TD_Poll( void ) { // if EP6 IN is available, re-arm it if(EP8CS&&0x04) { SYNCDELAY; // EP6BCH = 0x02; SYNCDELAY; // EP6BCL = 0x00; } } [编辑 - 3/8/05 by reading8] |
|
最新喜欢:![]() |
沙发#
发布于:2005-03-08 09:16
if(EP8CS&********)
为什么是EP8 |
|
板凳#
发布于:2005-03-08 19:03
我帮朋友发的,我也不知道,等他自己上网了,他会回复的
|
|
地板#
发布于:2005-03-09 10:11
写错了,是 EP6
|
|