阅读:1865回复:3
请教关于68013 Asynchronous Slave FIFO IN 的问题
各位,
我现在用68013 (56管脚)单芯片,想实现从外围设备异步读入16bits数据。目前我想通过将SLWR置高或置低来实现异步读入。SLWR由外围设备给出。 我已经按照技术手册写了firmware,但是无法通过控制SLWR来读入,目前的情况是可以用control panel 读入数据,但是一旦将SLWR拉低,PC就无法识别USB。 我想问是否可以单用68013实现异步读入?如果可以,firmware需要注意什么? 谢谢。 |
|
沙发#
发布于:2007-10-02 00:36
结贴了。
改用了GPIF模式slave-FIFO AUTO IN. 现在读入数据和外围设备写信号同步。可以设置GPIF波形,使得每次只读入一个,并可以达到很高的速度。因为没有使用8051的single read, 而是slave-FIFO(这是达到高速并不丢速据的关键)。现在取样频率到2MHz (16bits)没有任何问题。 |
|
板凳#
发布于:2007-09-30 01:53
Hi, wjt810907,
谢谢你的回答。 我付上我的firmware初始化的部分,其中已经按照技术手册将其置成了slave FIFO AUTO IN 模式了。但不知为什么还是SLWR一旦接低,PC就不能识别USB void TD_Init(void) // Called once at startup { // set the CPU clock to 48MHz SYNCDELAY; CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1); //CPUCS = 0x10; SYNCDELAY; REVCTL = 0x03; IFCONFIG = 0xCB; // slave FIFO AUTO IN SYNCDELAY; EP2CFG = 0xA0; // EP2OUT, bulk, size 512, 4x buffered SYNCDELAY; EP4CFG = 0x00; // EP4 not valid SYNCDELAY; EP6CFG = 0xE0; // EP6IN, bulk, size 512, 4x buffered SYNCDELAY; EP8CFG = 0x00; // EP8 not valid SYNCDELAY; SYNCDELAY; PINFLAGSAB = 0x00; SYNCDELAY; PINFLAGSCD = 0x00; SYNCDELAY; PORTACFG = 0x00;//need further confirm,now IFCFG[1:0] = 11; SYNCDELAY; FIFOPINPOLAR = 0x00; SYNCDELAY; EP6AUTOINLENH = 0x02; SYNCDELAY; EP6AUTOINLENL = 0x00; SYNCDELAY; SYNCDELAY; EP2FIFOCFG = 0x11; // EP2 is AUTOUT=1,AUTOIN=0,ZEROLEN=0,WORDWIDE=1,auto out mode, disable PKTEND zero length send, word ops SYNCDELAY; EP6FIFOCFG = 0x09; // EP6 is AUTOOUT=0,AUTOIN=1,ZEROLEN=1,WORDWIDE=1, auto in mode, disable PKTEND zero length send, word ops SYNCDELAY; SYNCDELAY; INPKTEND = 0x86; SYNCDELAY; INPKTEND = 0x86; SYNCDELAY; INPKTEND = 0x86; SYNCDELAY; INPKTEND = 0x86; SYNCDELAY; OUTPKTEND = 0x82; SYNCDELAY; OUTPKTEND = 0x82; SYNCDELAY; OUTPKTEND = 0x82; SYNCDELAY; OUTPKTEND = 0x82; FIFORESET = 0x80; // set NAKALL bit to NAK all transfers from host SYNCDELAY; FIFORESET = 0x02; // reset EP2 FIFO SYNCDELAY; FIFORESET = 0x06; // reset EP6 FIFO SYNCDELAY; FIFORESET = 0x00; // clear NAKALL bit to resume normal operation SYNCDELAY; } 也请各位给个建议,谢谢。 |
|
地板#
发布于:2007-09-29 12:37
可以的,前提是你得设置 slave fifo mode
|
|
|