打印

CY7C68013A GPIF通信读数据的问题

[复制链接]
7353|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xlu0706|  楼主 | 2012-5-9 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FPGA循环16进制数向CY7C68013A 发送数据,在MASTER端以GPIF方式读取数据,其读数据函数是:
void GPIF_SingleWordRead( WORD xdata *gdata )
{
  static BYTE g_data = 0x00;     // dummy variable
  while( !( GPIFTRIG & 0x80 ) )  // poll GPIFTRIG.7 Done bit
  {
     ;
  }
  // using register in XDATA space
  g_data = XGPIFSGLDATLX;        // dummy read to trigger GPIF
                                 // Single Word Read transaction
  while( !( GPIFTRIG & 0x80 ) )  // poll GPIFTRIG.7 Done bit
  {
     ;
  }
  // using register(s) in XDATA space, retrieve word just read from ext. FIFO
  *gdata = ( ( WORD )XGPIFSGLDATLNOX << 8 ) | ( WORD )XGPIFSGLDATH;
  //*gdata = ( ( WORD )XGPIFSGLDATH << 8 ) | ( WORD )XGPIFSGLDATLNOX;

}
在poll函数中循环取数据:
if(in_enable) // if IN transfers are enabled,
  {
    if(!(EP2468STAT & bmEP6FULL) && (EXTFIFONOTEMPTY))
    {
      // if EP6IN is not full AND there is data in the external FIFO,
      
      Destination = (WORD *)(&EP6FIFOBUF);
      for( i = 0x0000; i < Tcount; i++ )
      {
        // transfer data from external FIFO to EP6IN buffer
        GPIF_SingleWordRead (Destination);
        Destination++;
      }
   Tcount *= 2;          // multiply by 2 to obtain byte count value   
      EP6BCH = MSB(Tcount);  
      SYNCDELAY;  
      EP6BCL = LSB(Tcount); // arm EP6IN to send data to the host
      SYNCDELAY;   
   
               
    }
自己写了个应用程序从pc端读取usb数据,发现读取的数据全都是0,那位大侠能给我分析一下,万分感谢!
沙发
xlu0706|  楼主 | 2012-5-10 09:51 | 只看该作者
求人不如求己呀,还好经过痛苦的历程还是有办法了

使用特权

评论回复
板凳
szjlj168| | 2012-11-19 16:39 | 只看该作者
:D 有道理哟 2# xlu0706

使用特权

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

本版积分规则

0

主题

7

帖子

0

粉丝