请教各位大牛,我现在用单片机向68013写数据,68013设为同步slaveFIFO,单片机提供时钟。SLWR给低电平,然后时钟拉低,延时,再拉高。这样应该就OK了吧。可是无论如何写不进数据。
硬件连接应该是没问题的,如果设为68013提供时钟,其它硬件连接和固件代码都不变,就可以写入数据。
有没有这样用过的大牛,指点一下,哪里可能会出现问题。
我把固件程序贴出来。
void TD_Init(void) // Called once at startup
{
testmode=FALSE; //³õʼ»¯
CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ; //ÉèÖÃCPUʱÖÓΪ48MHz, clkoutÊä³ö
SYNCDELAY;
IFCONFIG=0x03; //Òì²½
SYNCDELAY; //ͬ²½ÑÓʱ
EP2CFG = 0xA0; //4ÖØbuffer£¬Ã¿´Î512×Ö½Ú£¬Host->Device
SYNCDELAY;
EP6CFG = 0xE0; //4ÖØbuffer£¬Ã¿´Î512×Ö½Ú£¬Device->Host
SYNCDELAY;
FIFORESET = 0x80; //¸´Î»FIFO
SYNCDELAY;
FIFORESET = 0x02;
SYNCDELAY;
FIFORESET = 0x06;
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;
EP2BCL = 0x80; //4ÖØbuffer£¬Òò´ËÐèҪʹÓÃ4¸ö´ËÓï¾äÀ´Ç¿ÖÆEP2OUT
SYNCDELAY;
EP2BCL = 0x80;
SYNCDELAY;
EP2BCL = 0x80;
SYNCDELAY;
EP2BCL = 0x80;
SYNCDELAY;
EP2FIFOCFG=0x11; //OUT¶Ëµã£¬AutoOut£¬16λÊý¾ÝÏß
SYNCDELAY;
EP6FIFOCFG=0x09; //IN¶Ëµã£¬AutoIn£¬16λÊý¾ÝÏß
SYNCDELAY;
EP6AUTOINLENH=0x02; //EZ-USB×Ô¶¯´¦Àí512×Ö½ÚµÄÊý¾Ý°ü
SYNCDELAY;
EP6AUTOINLENL=0x00;
SYNCDELAY;
AUTOPTRSETUP |= 0x01; //ʹÄÜË«×Ô¶¯Ö¸Õë
}
|