lotuslzj
驱动牛犊
驱动牛犊
  • 注册日期2003-08-08
  • 最后登录2003-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2409回复:16

usb2.0的固件程序要怎么改才能适应usb1.1接口?

楼主#
更多 发布于:2003-08-08 22:09
我使用的芯片是cypress68013,和Keil uVision2开发工具。开发包中提供了一些固件程序例子:bulkloop(在FX2目录下)等,它们是按usb2.0设计的。可是我的电脑接口只支持usb1.1,各位仁兄可知道如何将bulkloop固件程序中改那些设置,才能在usb1.1中跑起来?本人是新手,请大家指教。
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-18 15:53
原来又是低级错误。 :D 还不赶紧放分感谢各位?
lotuslzj
驱动牛犊
驱动牛犊
  • 注册日期2003-08-08
  • 最后登录2003-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-18 15:52
谢谢啊!可以读入数据了!因为外部没有输入信号,所以读入的是随机数。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-13 12:41
里面没数据你读什么????????
你先用ep2传一批数据到设备里,然后再把数据转移到ep8里,再试试能不能读到,读不到的话那就见鬼了啦!!!
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-12 20:43
使用EZ-USB Control Panel面板上的Bulk Trans来验证Endpoint 8 IN的数据读取啊。好像数据读取不了?!


你的数据线上有信号么?
lotuslzj
驱动牛犊
驱动牛犊
  • 注册日期2003-08-08
  • 最后登录2003-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-12 20:33
使用EZ-USB Control Panel面板上的Bulk Trans来验证Endpoint 8 IN的数据读取啊。好像数据读取不了?!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-12 18:42
你首先的保证ep8里有数据,否则读什么?
lotuslzj
驱动牛犊
驱动牛犊
  • 注册日期2003-08-08
  • 最后登录2003-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-12 17:03
我使用EP8作为IN slave FIFO,从AD片子读取数据到主机,12位的AD数据口连在68013的FD11~FD0口上,FD12~FD15接低电平。
以下是固件初始化程序:
void TD_Init(void)             // Called once at startup
{
   // set the CPU clock to 48MHz
   CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
   IfCongfigureState=0;
   IFCONFIG=0XDB; //48MHz,IFCLK tri-state,invert clock,no clock suply in IFCLK,slave FIFO.

   EP8FIFOCFG=0x01; //autoin=0,WORDWIDE
   EP8CFG=0XD2;//EP8,Valid,in,bulk,512,double

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

   REVCTL = 0X03;//DYN_OUT=1,ENH_PKT=1
   SYNCDELAY;
   SYNCDELAY;
   FIFORESET=0X80;
   SYNCDELAY;    
   FIFORESET = 0X08;
   SYNCDELAY;    
   FIFORESET = 0X02;
   SYNCDELAY;    
   FIFORESET = 0X00;
   SYNCDELAY;
 
   PORTACFG=00;
   SYNCDELAY;
   FIFOPINPOLAR=00;

   SYNCDELAY;
   EP8AUTOINLENH = 0X00;//0X02;
   SYNCDELAY;
   EP8AUTOINLENL= 0X40;//0X00;
   SYNCDELAY;
//   EP8FIFOPFH=0X00;
 //  SYNCDELAY;
//   EP8FIFOPFL=0X05;
//////////////////////////////////////////////////////////////
   OED=0XFF;//ENABLE
   IOD=0x00;//PORTD IN

//   OEB=0XFF;//ENABLE
//   IOB=0x00;//PORTB IN

   OEA=0X8B;
   IOA=0X8B;//10001101,PA[7,3,1,0]=OUT
  
// enable dual autopointer feature
   WAKEUPCS&=~bmWU2EN;
   AUTOPTRSETUP |= 0x01;
   Rwuen = TRUE;                 // Enable remote-wakeup  
///////////////////////////////////////////////////////////////////
             FIFORESET=0X80;
  SYNCDELAY;    
  FIFORESET = 0X08;
  SYNCDELAY;    
  FIFORESET = 0X00;
  SYNCDELAY;
}

可是下载固件后,无法从EP8中读取数据。各位大侠可否知道问题在哪里呢?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-08-11 21:03
再问一个可能是愚蠢的问题:
那68013的外围晶振24M要不要换成12M的?

这个是不行的吧,换了之后内部usb收发器的时钟就达不到480mbit/s了,这样就出问题的!68013内部的收发器的时钟是通过外部24m晶体在内部通过倍频得来的,你要是换了就不符合协议的规定了,那么电缆上传输数据的编解码肯定会出问题的!
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-08-11 16:49
为什么要换啊?说说理由和目的。
lotuslzj
驱动牛犊
驱动牛犊
  • 注册日期2003-08-08
  • 最后登录2003-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-08-10 23:38
再问一个可能是愚蠢的问题:
那68013的外围晶振24M要不要换成12M的?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-08-10 11:17
不用该的,描述符的设置是在main函数的开始一段,它可以自动区分1.1和2.0,不信的话你可以把你的开发板拿到1.1的机子上试试,下载相同的固件。
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-08-10 09:01
你直接作实验就行了,CY可以自动按照USB1.1的协议来传输的。
lotuslzj
驱动牛犊
驱动牛犊
  • 注册日期2003-08-08
  • 最后登录2003-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-08-09 23:31
那在void TD_Init(void)初始化中不改些设置吗?
比如说EPX的数据长度设置(EP8AUTOINLENH,EP8AUTOINLENL),还有CPU的时钟设置(IFCONFIG)等等,这些不用改吗?还有其它设置怎么改啊?我的疑惑好多。
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-08-09 22:50
不用改,直接就可以用,只是包的大小不是512而是64而已。
lotuslzj
驱动牛犊
驱动牛犊
  • 注册日期2003-08-08
  • 最后登录2003-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-08-09 15:36
楼上的maxipeiz,你好!能发给我看看吗?真是碰到救星了!我现在正着急呢。
我的email是:lotuslzj@yahoo.com.cn
maxipeiz
驱动小牛
驱动小牛
  • 注册日期2003-01-28
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-08-09 12:41
我这儿有现成的 usb1.1固件程序源代码,为什么要非走弯路。
需要的话联系 maxipeiz@163.com
天高任鸟飞
游客

返回顶部