异步slave FIFO out的固件的问题
文章发表于:2009-08-29 17:06
我设置EP2为Slave out端点,下载程序后,用usb console发送数据老是不成功,不知道是哪里出问题了
void TD_Init(void) // CalLED once at startup
{
BREAKPT &= ~bmBPEN; // to see BKPT LED go out TGE
OED="0xFF"; // 置端口PD为输出端口;为0x00时,置端口PD为输入端口
// set the CPU clock to 48MHz
CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;// CPU控制与状态寄存器
//置PA0、PA1为输出状态,并输出高电平
OEA="OEA|0x03";
IOA="IOA|0x03";
//设置cy7c68013a工作于slave FIFO模式
REVCTL="0X03";
SYNCDELAY;
SYNCDELAY;
IFCONFIG = 0xCB; //内部时钟、48M、三态、不翻转、slave异步模式、0 、FIFO模式SYNCDELAY;
EP2CFG = 0xA2; //输出端点,块传输、512字节,双重缓冲
SYNCDELAY;
// out endpoints do not come up armed
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 = 0x08; // reset, FIFO 8
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;
OUTPKTEND = 0x84;
SYNCDELAY;
OUTPKTEND = 0x84;
SYNCDELAY;
PINFLAGSAB = 0x00; // FLAGA - fixed EP6PF, FLAGB - fixed EP6FF SYNCDELAY;
PINFLAGSCD = 0x00; // FLAGC - fixed EP2EF, FLAGD - reserved SYNCDELAY;
FIFOPINPOLAR = 0x00; // all signals active low,
SYNCDELAY;
EP2FIFOCFG = 0x10; // AUTOOUT="1", WORDWIDE="0" SYNCDELAY;
EP2AUTOINLENH=0x02; //端点2自动包长度为512
SYNCDELAY;
EP2AUTOINLENL=0x00;
SYNCDELAY;
AUTOPTRSETUP |= 0x01; // 自动指针设置寄存器
}