通过SlaveFIFO模式把主机数据通过EZ-USB传输给外部其它的MCU

[复制链接]
633|11
手机看帖
扫描二维码
随时随地手机跟帖
dingy|  楼主 | 2017-9-26 22:16 | 显示全部楼层 |阅读模式
外部MCU的数据通过SlaveFIFO模式已经用CYpress Console软件不断的读出来了!
  可是我把端点2设为OUT端点用CYpress Console软件确发不出来,提示Bulk OUT failed
pengf| | 2017-9-26 22:17 | 显示全部楼层
你把设置端点的固件程序发上来看看

使用特权

评论回复
dingy|  楼主 | 2017-9-26 22:18 | 显示全部楼层
BREAKPT &= ~bmBPEN;      // to see BKPT LED go out TGE
   Rwuen = TRUE;            // Enable remote-wakeup
   OEE=0xFF;
   IOE=0x00;
   // set the CPU clock to 48MHz
   CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
   // set the slave FIFO interface to 48MHz
   //IFCONFIG |= 0x40;
   IFCONFIG=0xcb;
   SYNCDELAY;
   REVCTL=0x03;
   SYNCDELAY;

   EP1OUTCFG = 0xA0;
  EP1INCFG = 0xA0;
  SYNCDELAY;                    // see TRM section 15.14
  EP2CFG = 0xA2;
  SYNCDELAY;                    
  EP4CFG = 0xA0;
  SYNCDELAY;                    
  EP6CFG = 0xE2;
  SYNCDELAY;                    
  EP8CFG = 0xE0;
  SYNCDELAY;
  FIFORESET=0x80;
  SYNCDELAY;
  FIFORESET=0x08;
  SYNCDELAY;
  FIFORESET=0x00;
  SYNCDELAY;
  EP6FIFOCFG=0x0C;
  SYNCDELAY;
  EP2FIFOCFG=0x10;
  
  SYNCDELAY;
  EP2AUTOINLENH=0x02;
  SYNCDELAY;
  EP2AUTOINLENL=0x00;

SYNCDELAY;                    
  EP2BCL = 0x80;                // arm EP2OUT by writing byte count w/skip.
  SYNCDELAY;                    
  EP2BCL = 0x80;
  SYNCDELAY;                    
  EP4BCL = 0x80;                // arm EP4OUT by writing byte count w/skip.
  SYNCDELAY;                    
  EP4BCL = 0x80;   

  FIFORESET=0x80;
  SYNCDELAY;
  FIFORESET=0x02;
  SYNCDELAY;
  FIFORESET=0x04;
  SYNCDELAY;
  FIFORESET=0x06;
  SYNCDELAY;
  FIFORESET=0x08;
  SYNCDELAY;
  FIFORESET=0x00;
  SYNCDELAY;
  // enable dual autopointer feature
  AUTOPTRSETUP |= 0x01;

使用特权

评论回复
dingy|  楼主 | 2017-9-26 22:22 | 显示全部楼层

现在可以PC机数据输出给EZ-USB了,但是有时候明明FIFO是空的,从空标志FLAGC判断出,但是从PC就是不能发数据给EZ-USB,一定要重新下载程序到EZ-USB后,重新开始。

使用特权

评论回复
renyaq| | 2017-9-26 22:23 | 显示全部楼层

你的Slave FIFO OUT传输速度太慢了吧?

使用特权

评论回复
dingy|  楼主 | 2017-9-26 22:24 | 显示全部楼层

只有300KB/S
我PC不断的发数据,EZ-USB接收,外面的AVR-单片机就从FIFO读出数据SLRD=0;
    SLRD=1;没有其它的处理。
怎么只有这么点速度?

使用特权

评论回复
supernan| | 2017-9-26 22:26 | 显示全部楼层
USB的传输速度用软件可以精确测量吧

使用特权

评论回复
dingy|  楼主 | 2017-9-26 22:27 | 显示全部楼层
我是在Bus Hound软件的Devices下看到的,这个速度是否正确?

使用特权

评论回复
xxrs| | 2017-9-26 22:29 | 显示全部楼层


这个应该是上位机程序的问题。

使用特权

评论回复
houcs| | 2017-9-26 22:30 | 显示全部楼层

PC发送数据到OUT端点,如果外部的MCU能及时把OUT端点的数据读出来,PC那端就不会出现BULK OUT FAILED问题.
建议看看MCU与FX2LP的之间的读写通讯.

使用特权

评论回复
houcs| | 2017-9-26 22:39 | 显示全部楼层
楼主,你好,我的外部MCU的数据在SlaveFIFO模式下写入了EP6IN端点,但在上位机的EP6IN中看不到?怎么回事

使用特权

评论回复
冰山一角dxh| | 2017-11-30 08:50 | 显示全部楼层
houcs 发表于 2017-9-26 22:39
楼主,你好,我的外部MCU的数据在SlaveFIFO模式下写入了EP6IN端点,但在上位机的EP6IN中看不到?怎么回事
...

你好,你有用stm32和EZ-USB进行通信吗?如果有的话,能否分享stm32部分的程序,谢谢啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

745

主题

10920

帖子

6

粉丝