wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
阅读:2225回复:21

为什么用controlpannel读的getpipes怎么不一样呢?(68013)

楼主#
更多 发布于:2004-06-20 21:51
我用controlpannel读的getpipes显示不出来啊,其余的也不一样。就是那个管道设置怎么个设法?
本来设的是2out,6in结果读出来就是1in,1out了。
EZ-USB Control Panel - built 18:27:25 Nov 28 2001
Get PipeInfo
Interface Size 56
Pipe:  0   Type: BLK Endpoint:  1 OUT  MaxPktSize: 0x40
Pipe:  1   Type: BLK Endpoint:  1 IN   MaxPktSize: 0x40
或干脆不显示出来了。
Get PipeInfo
Interface Size 16
我的初始化如下:
void TD_Init( void )
{
  CPUCS = 0x10;      
  GpifInit( );          
  // EP2 512 BULK OUT 4x
  SYNCDELAY;                
  EP2CFG = 0xA0;          
  // EP6 512 BULK IN 4x
  SYNCDELAY;                
  EP6CFG = 0xE0;
 // BUF[1:0]=00 for 4x buffering    
  SYNCDELAY;                    //
  // activate NAK-ALL to avoid race conditions
  FIFORESET = 0x80;
  SYNCDELAY;                    //
  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

  // 8-bit bus (WORDWIDE=0)...
  SYNCDELAY;                    //
  EP2FIFOCFG = 0x00;
  SYNCDELAY;                    //
  EP6FIFOCFG = 0x04;
    
  SYNCDELAY;                    //
  EP2BCL = 0x80;                // arm first buffer
  SYNCDELAY;                    //
  EP2BCL = 0x80;                // arm second buffer
  SYNCDELAY;                    //
  EP2BCL = 0x80;                // arm third buffer
  SYNCDELAY;                    //
  EP2BCL = 0x80;                // arm fourth buffer
  
  INTSETUP |= 0x03;   // Enable INT4 FIFO/GPIF Autovectoring
  SYNCDELAY;          // used here as "delay"
  EXIF &=  ~0x40;     // just in case one was pending...
  SYNCDELAY;          // used here as "delay"
  GPIFIRQ = 0x02;
  SYNCDELAY;          //
  GPIFIE = 0x02;      // Enable GPIFWF interrupt
  SYNCDELAY;          //
  EIE |= 0x04;        // Enable INT4 ISR, EIE.2(EIEX4=1)
 }
 :(

最新喜欢:

brightfengbright...
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-21 07:09
你要在dscr.a51里面设定,这段程序不是设定管道的,
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-21 22:11
那为什么这又不一样呢?
两个程序的描述符相同,如下:  
DeviceDscr:  
      db   DSCR_DEVICE_LEN      ;; Descriptor length
      db   DSCR_DEVICE          ;; Decriptor type
      dw   0002H                ;; Specification VersionBCD)
      db   00H                  ;; Device class
      db   00H                  ;; Device sub-class
      db   00H                  ;; Device sub-sub-class
      db   64                   ;; Maximum packet size
      dw   4705H                ;; Vendor ID
      dw   0210H                ;; Product ID (SampleDevice)
      dw   0000H                ;; Product version ID
      db   1                    ;; Manufacturer string index
      db   2                    ;; Product string index
      db   0                    ;; Serial number stringindex
      db   1                    ;; Number of configurations
结果读出来就不同了:
Device Descriptor:  
bLength:  18
bDescriptorType:  1
bcdUSB:  512
bDeviceClass:  0xff
bDeviceSubClass:  0xff
bDeviceProtocol:  0xff
bMaxPacketSize0:  0x40
idVendor:  0x4b4
idProduct:  0x8613
bcdDevice:  0x4
iManufacturer:  0x0
iProduct:  0x0
iSerialNumber:  0x0
bNumConfigurations:  0x1

Device Descriptor:  
bLength:  18
bDescriptorType:  1
bcdUSB:  512
bDeviceClass:  0x0
bDeviceSubClass:  0x0
bDeviceProtocol:  0x0
bMaxPacketSize0:  0x40
idVendor:  0x547
idProduct:  0x1002
bcdDevice:  0x0
iManufacturer:  0x1
iProduct:  0x2
iSerialNumber:  0x0
bNumConfigurations:  0x1
 :(
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-21 22:33
问题是你改了哪里才出现的不一样啊?
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-22 07:39
我就是把原来的那几个文件(gpifburst8,gpif,fw等)都完全复制到自己的项目中,结果用c51编译出来就不同了的。
只有把自己写好的程序(如gpif***)复制到那个(gpifburst8)中,并在原来的项目中编译才能通得过。
附件中:gpifburst8中就找得到正确的管道,描述符等
        gpif-wq中就找不到了。
请高手们指点一下。
附件名称/大小 下载次数 最后更新
2004-06-22_usb.rar (154KB)  4
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-22 08:02
能说一下你的项目是干什么的吗?另外你的gpif.c文件是如何产生的?是不是通过gpif designer实现的?
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-22 14:50
我建议你采用一下FX2_to_extsyncFIFO这个文件,到cypress.com网站可以下载
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-22 22:17
我的gpif是用那个产生的。具体就是用以调试fiforead,fifowrite,signelread等,
请你调试了下载到芯片中是否不一样呢?
FX2_to_extsyncFIFO是做什么用的啊?
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-23 07:46
这是很实用化的一个例子,可以在它的基础上加以修改,便可以实现自己所需的数据收发功能了。
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-06-23 07:54
我找不到啊,你能把他放到网站上来吗?
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-06-23 08:00
现在那个网站上不去,cypress.com
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-23 08:20
http://www.cypress.com/support/app_note.cfm?objectID=9E0E78D3-313A-4B0B-B693A93CC8B03C8C&fname=USB%20High%2DSpeed%20Peripherals&tid=A47EC41D-A212-4D8B-B3AA620F3AEB2978
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-23 14:24
在楼上说的这个文件(FX2_to_extsyncFIFO GPIF FIFO Transactions Auto mode)中,只要把gpif.c文件中的内容完全删除,及不要gpif这个文件就读取完全正确了。是什么原因呢?
其他的范例也相同!
附件名称/大小 下载次数 最后更新
2004-06-23_FX2_to_extsyncFIFO GPIF FIFO Transactions Auto mode.rar (51KB)  8
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-06-23 16:21
不会吧,你把gpif.c删除了还能编译通过?
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-06-23 16:24
你还是先把例子看懂再问吧
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-06-23 19:36
通不过就不会问大侠了。
肯定通得过。不信的话你就把它下载去试试看!
反正把gpif文件中的都删去,只流下gpifinit()这个空函数就行了。
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-06-23 20:48
可是没有他你能实现什么功能呢?能通信吗?恐怕不会
这样编译是能通过,可是这样这个函数就不起作用了
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-06-23 21:32
关键是能读出来正确的什么描述符,管道,字符串等。这样有了管道才能做下一步的事情啊。
而却没那个文件,Vender REQ也能正确发出,
有了哪个文件就不行了。读出来的描述符等都 不正确了。
lzg0000
驱动牛犊
驱动牛犊
  • 注册日期2003-07-27
  • 最后登录2004-07-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-06-24 13:26
我也遇到类似的问题,用自己写的固件通过控制面板下载后,得到的设备描述符与下载前一样,管道信息也一样。我也将那个例子重新编译后,将得到的*.hex文件下进去,得到的结果还是一样,伤透了脑筋。哥们,你的问题解决了吗?

[编辑 -  6/24/04 by  lzg0000]
刘治国
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-06-24 13:30
估计你把程序下载到外部Sram里运行了,例子代码都是为开发办设计的,有一部分是把程序下载到外部的64K Sram里运行,而你的设备没有Sram,所以程序根本没有执行。

验证的办法是在程序开始或者主程序中加上让某个IO口输出固定波形,如果能输出说明你的程序运行了,问题可能出在初始化上,如果没有,说明固件下错地方了。

改的地方应该在Target的设置选项卡里,里面有个Code range 和Xdata range,前面那个填0x80 - 0x0FFF, 后面那个填0x1000-0x1FFF,这两个范围你可以自己选择分配,其中80前的是为中断向量表留的地址,总长度不要大于8K,也就是到0x2000为止。

由于手头上没有这个软件,所以不能抓个图出来,否则一目了然,实在遗憾。不过以前好像有过类似的问题讨论
上一页
游客

返回顶部