有碰到类似情况的吗?

[复制链接]
 楼主| pengf 发表于 2018-1-1 18:15 | 显示全部楼层 |阅读模式
FPGA产生10个16位的数,发送给68013的EP6(IN),配置为AUTOIN模式,当发送10个数时,上位机EZ-USB Console读得时候,提示 Bulk IN Transfer failed.但如果将FIFO发满,上位机会读到,但数据不完全正确,请问有碰到类似情况的吗?
 楼主| pengf 发表于 2018-1-1 18:18 | 显示全部楼层
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| pengf 发表于 2018-1-1 18:21 | 显示全部楼层

void TD_Init(void)             // Called once at startup
{
   // set the CPU clock to 48MHz
//   CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1);//0X10;48MHZ

   IFCONFIG |= 0xCB;//异步,从FIFO模式.11001011   
   SYNCDELAY;
  
   REVCTL = 0x03;    // enable the external master   
   SYNCDELAY;
  // config the endpoints direction
  EP1OUTCFG = 0xA0;//enable and bulk type
  SYNCDELAY;
  EP1INCFG = 0xA0;
  SYNCDELAY;                    // see TRM section 15.14
  EP2CFG = 0xA0;//out,bulk,512,double
  SYNCDELAY;                    
  EP4CFG &= 0x7F;
  SYNCDELAY;                    
  EP6CFG = 0xE0;//enable IN bulk 512 double buffer
  SYNCDELAY;
  EP8CFG &= 0x7F;
  SYNCDELAY;                 

  //reset the fifos
  FIFORESET = 0x80;
  SYNCDELAY;
  FIFORESET = 0x82;
  SYNCDELAY;  
  FIFORESET = 0x86;
  SYNCDELAY;
  FIFORESET = 0x00;
  SYNCDELAY;
///////////////////////////////////////////////////////////////////
  OUTPKTEND = 0x82; // Arm both EP2 buffers to “prime the pump”
  SYNCDELAY;
  OUTPKTEND = 0x82;
  SYNCDELAY;
  OUTPKTEND = 0x82;
  SYNCDELAY;
  OUTPKTEND = 0x82;
  SYNCDELAY;
   
  //config the endpoint6
  EP2FIFOCFG = 0x11;//EP2 IS AUTOOUT=1  ZEROLEN=1 WORDIDE=1 配置EP2自动方式16位总
  SYNCDELAY;//添加EP2
  
  EP6FIFOCFG = 0x0D;//EP6 IS AUTOIN =1 ZEROLEN=1 WORDIDE=1 配置EP6自动方式16位总
  SYNCDELAY;

  //-------------------------
  INPKTEND = 0x06;
  SYNCDELAY;
  INPKTEND = 0x06;
  SYNCDELAY;
  INPKTEND = 0x06;
  SYNCDELAY;
  INPKTEND = 0x06;
  SYNCDELAY;


  //-------------------tiao ji IN depth_1204---------------------
  EP6AUTOINLENH = 0x02;   //set the packet size 512
  SYNCDELAY;
  EP6AUTOINLENL = 0x00;//EP6 recevie 10 num (16bit)LYF
  SYNCDELAY;

  PINFLAGSAB = 0xe8;  //F,FLAGA IS THE FIFO2 EF,FLAGb IS THE FIFO6 FULL FLAG
  SYNCDELAY;

  PORTACFG = 0x00;//PA7 pin as a port pin,not as a fifo flag;
  SYNCDELAY;
  FIFOPINPOLAR = 0x00; // set all slave FIFO interface pins as active low PKTEND OR SLOE SLWR LOW AVTIVE
  SYNCDELAY;

  }
renyaq 发表于 2018-1-1 18:29 | 显示全部楼层

楼主可以在CY官网建个case
supernan 发表于 2018-1-1 18:47 | 显示全部楼层
试一试参考代码bulkloop传输,如果在系统上没有什么问题,怀疑是FPGA端没有设计好
xxrs 发表于 2018-1-1 18:49 | 显示全部楼层
嗯,看看时序是否有问题。
yinxiangh 发表于 2018-1-1 18:51 | 显示全部楼层
可以把完整的程序分享一下么?
 楼主| pengf 发表于 2018-1-1 18:54 | 显示全部楼层
结贴了,多谢大家讨论这么多哈,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部

718

主题

10129

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部