在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3108|回复: 1

[求助] C8051F120+CY7C68013A输出数据正常输入数据全是0

[复制链接]
发表于 2014-8-25 16:51:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
C8051F120+CY7C68013A,遇到的问题是从计算机输出数据到单片机的时候正常,从单片机输出数据到计算机的时候不正常,数据全为0。表现为单片机无法拉高数据总线,但是当把USB的数据总线脚挑起来之后,数据线的信号能改变了。这说明USB芯片这端始终把单片机引脚拉低了。但是在总线中间接个245总线芯片,其他信号不变,之后就能正常使用,IN正常OUT也正常。现在感觉可能出现的问题是:1,USB芯片本身有缺陷,同时买的两片,都有类似问题,其他批次的以前买的也有类似问题,所以这个不太成立;2,配置问题,也就是在初始化的是时候没有配置好,但是问题在哪里没有找到;3,在IN和OUT方向通过A0A1切换时,USB芯片应该自动切换总线方向,所以第二点可能 不会有结果。现在该问题还没解决,请各位大侠帮帮忙看看。
初始化代码如下:
void TD_Init(void)             // Called once at startup
{

    // set the CPU clock to 48MHz
  CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
   // set the slave FIFO interface to 48MHz
  IFCONFIG = 0xcb;
  REVCTL=0x03;                                        // REVCTL.0 and REVCTL.1 to set to 1
  SYNCDELAY;
  SYNCDELAY;                    // see TRM section 15.14
  EP2CFG = 0xA2;
  SYNCDELAY;                    
  EP4CFG = 0xA0;
  SYNCDELAY;                    
  EP6CFG = 0xE2;
  SYNCDELAY;                    
  EP8CFG = 0xE0;

  SYNCDELAY;
  FIFORESET = 0x80;             // activate NAK-ALL to avoid race conditions
  SYNCDELAY;                    // see TRM section 15.14
  FIFORESET = 0x02;             // reset, FIFO 2
  SYNCDELAY;                    //
  FIFORESET = 0x04;             // reset, FIFO 4
  SYNCDELAY;                    //
  FIFORESET = 0x06;             // reset, FIFO 6
  SYNCDELAY;                    //
  FIFORESET = 0x08;             // reset, FIFO 8
  SYNCDELAY;                    //
  FIFORESET = 0x00;             // deactivate NAK-ALL


  SYNCDELAY;
  OUTPKTEND = 0x82;                                // Arm both EP2 buffers to “prime th
  SYNCDELAY;                    //
  OUTPKTEND = 0x82;                                // Arm both EP2 buffers to “prime th
  SYNCDELAY;
  OUTPKTEND = 0x82;                                // Arm both EP2 buffers to “prime th
  SYNCDELAY;                    //
  OUTPKTEND = 0x82;                                // Arm both EP2 buffers to “prime th
  SYNCDELAY;

  // out endpoints do not come up armed
  
  // since the defaults are double buffered we must write dummy byte counts twice
  SYNCDELAY;                    
  EP2BCL = 0x80;                // arm EP2OUT by writing byte count w/skip.
  SYNCDELAY;                    
  EP2BCL = 0x80;
  SYNCDELAY;         
    // since the defaults are double buffered we must write dummy byte counts twice
  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;   
  SYNCDELAY;
  //EP6BCL = 0x80;                // arm EP4OUT by writing byte count w/skip.
  SYNCDELAY;                    
// EP6BCL = 0x80;   
  SYNCDELAY;  
  PINFLAGSAB = 0xc8;                                                        //FLAGB->EP2 FF ,FLAGA->EP2 EF。0时是空,1时是非空
  SYNCDELAY;                               
  PINFLAGSCD = 0xEA;                                                //FLAGD->EP6 FF,,\FLAGC->EP6 EF,                                       
  PORTACFG |= 0X80;
  SYNCDELAY;
  PORTACFG |= 0X40;
  EP2FIFOCFG = 0x14;           //AUTOOUT=1, WORDWIDE=0,8bits
  SYNCDELAY;  
  EP2FIFOCFG = 0x14;            //AUTOOUT=1, WORDWIDE=0,8bits
  SYNCDELAY;
  EP4FIFOCFG = 0x04;           //AUTOOUT=0, WORDWIDE=0,8bits
  SYNCDELAY;  
  EP4FIFOCFG = 0x04;            //AUTOOUT=0, WORDWIDE=0,8bits
  SYNCDELAY;
  FIFOPINPOLAR = 0x00;          // all signals active low
  SYNCDELAY;
  EP6FIFOCFG = 0x4C;           //AUTOIN=1, WORDWIDE=0,8bits
  SYNCDELAY;  
  EP6FIFOCFG = 0x4C;            //AUTOIN=1, WORDWIDE=0,8bits
  SYNCDELAY;
  EP8FIFOCFG = 0x04;           //AUTOOUT=0, WORDWIDE=0,8bits
  SYNCDELAY;  
  EP8FIFOCFG = 0x04;            //AUTOOUT=0, WORDWIDE=0,8bits
  SYNCDELAY;

}
QQ图片20140825152005.jpg
QQ图片20140825152044.jpg
发表于 2015-3-10 20:21:28 | 显示全部楼层
USB芯片端口配置有三种状态,一种开漏,一种三态,一种准双向。若果没配置好,就会出现你的描述。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-24 01:27 , Processed in 0.016567 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表