阅读:2378回复:9
已经下载了固件程序了,BULK传输失败?
下载了固件程序,用CONTROL PANEL察看管道和配置如下,可是,无法传输数据,为什么呢?每次点BULK/INT没有一点反应,急
Config Descriptor: bLength: 0x9 bDescriptorType: 2 wTotalLength: 171 (0xab) bNumInterfaces: 1 bConfigurationValue: 1 iConfiguration: 0 bmAttributes: 0x80 MaxPower: 50 ********************************* Interface Descriptor: -------------------------------- bLength: 0x9 bDescriptorType: 4 bInterfaceNumber: 0 bAlternateSetting: 0 bNumEndpoints: 0 bInterfaceClass: 255 (0xff) bInterfaceSubClass: 255 (0xff) bInterfaceProtocol: 255 (0xff) iInterface: 0 ********************************* Interface Descriptor: -------------------------------- bLength: 0x9 bDescriptorType: 4 bInterfaceNumber: 0 bAlternateSetting: 1 bNumEndpoints: 6 bInterfaceClass: 255 (0xff) bInterfaceSubClass: 255 (0xff) bInterfaceProtocol: 255 (0xff) iInterface: 0 ********************************* Endpoint Descriptor 0 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x1 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Endpoint Descriptor 1 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x81 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Endpoint Descriptor 2 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x2 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Endpoint Descriptor 3 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x4 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Endpoint Descriptor 4 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x86 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Endpoint Descriptor 5 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x88 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Interface Descriptor: -------------------------------- bLength: 0x9 bDescriptorType: 4 bInterfaceNumber: 0 bAlternateSetting: 2 bNumEndpoints: 6 bInterfaceClass: 255 (0xff) bInterfaceSubClass: 255 (0xff) bInterfaceProtocol: 255 (0xff) iInterface: 0 ********************************* Endpoint Descriptor 0 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x1 bmAttributes: 0x3 wMaxPacketSize: 64 bInterval: 1 ********************************* Endpoint Descriptor 1 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x81 bmAttributes: 0x3 wMaxPacketSize: 64 bInterval: 1 ********************************* Endpoint Descriptor 2 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x2 bmAttributes: 0x3 wMaxPacketSize: 512 bInterval: 1 ********************************* Endpoint Descriptor 3 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x4 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Endpoint Descriptor 4 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x86 bmAttributes: 0x3 wMaxPacketSize: 512 bInterval: 1 ********************************* Endpoint Descriptor 5 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x88 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Interface Descriptor: -------------------------------- bLength: 0x9 bDescriptorType: 4 bInterfaceNumber: 0 bAlternateSetting: 3 bNumEndpoints: 6 bInterfaceClass: 255 (0xff) bInterfaceSubClass: 255 (0xff) bInterfaceProtocol: 255 (0xff) iInterface: 0 ********************************* Endpoint Descriptor 0 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x1 bmAttributes: 0x3 wMaxPacketSize: 64 bInterval: 1 ********************************* Endpoint Descriptor 1 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x81 bmAttributes: 0x3 wMaxPacketSize: 64 bInterval: 1 ********************************* Endpoint Descriptor 2 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x2 bmAttributes: 0x1 wMaxPacketSize: 512 bInterval: 1 ********************************* Endpoint Descriptor 3 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x4 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Endpoint Descriptor 4 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x86 bmAttributes: 0x1 wMaxPacketSize: 512 bInterval: 1 ********************************* Endpoint Descriptor 5 -------------------------------- bLength: 0x7 bDescriptorType: 5 bEndpointAddress: 0x88 bmAttributes: 0x2 wMaxPacketSize: 512 bInterval: 0 ********************************* Get PipeInfo Interface Size 136 Pipe: 0 Type: BLK Endpoint: 1 OUT MaxPktSize: 0x200 Pipe: 1 Type: BLK Endpoint: 1 IN MaxPktSize: 0x200 Pipe: 2 Type: BLK Endpoint: 2 OUT MaxPktSize: 0x200 Pipe: 3 Type: BLK Endpoint: 4 OUT MaxPktSize: 0x200 Pipe: 4 Type: BLK Endpoint: 6 IN MaxPktSize: 0x200 Pipe: 5 Type: BLK Endpoint: 8 IN MaxPktSize: 0x200 |
|
沙发#
发布于:2005-06-13 12:17
因为你的IN ENPOINT 没有被ARMED。
:D 这个ARMED可以8051完成或者外部硬件实现(FIFO MASTER OR GPIF)。 |
|
板凳#
发布于:2005-06-13 12:52
首先,真的很感谢你,这几天弄这块板子,你给了我很大的帮助。
我是个新手,所以我有些不明白你说的是什么意思。 刚才我一直在怀疑是不是我的固件根本没有下进去,不知道这个怀疑是不是有道理? 我的qq:7442084,希望可以与你交流 |
|
地板#
发布于:2005-06-13 14:00
如果下载后提示8051 reset成功,一般来说应该固件已经下载成功并且8051已经重启,你的USB外设已经是可用状态。如果怀疑固件是否已经成功下载,可以用你上面用CONTROL PANEL看到的信息跟你的固件源文件中DSCR.A51中定义的列表信息比较,看是否一致,甚至修改一些特殊信息,重新下载再读回来看看。比如把EP6的原始定义0X86改为0X06,即把EP6从原来的IN缓存改为OUT缓存。如果修改编译下载之后能够读回EP6的配置信息为0X06,说明固件已经下载成功了。如果你修改了PRODUCTID,可能导致下载固件后你的设备系统无法识别,除非你做了专用驱动程序。
|
|
地下室#
发布于:2005-06-13 14:08
我也认为是固件已经下载进去了,但是为什么传输不成呢?很奇怪,我刚才看了很多很多帖子,似乎没有人遇到我这样的问题,就是得到了管道信息,选择endpoint 2 out,endpoint 6 in,点bulkint,然后就没有任何反映了,百思不得解阿,苦恼中……还望大虾指教,这是什么原因呢?
|
|
5楼#
发布于:2005-06-13 14:18
end point 2 out,endpoint 6 in的模式下,需要外围的电路提供读或者写的时序信号吗?我的外围接的fpga
|
|
6楼#
发布于:2005-06-13 17:45
写个简单的程序,在固件中接收到你的EP2数据或者其它类型的自定义请求的时候,往EP6写数据,指定EP6BCH,EP6BCL的值为数据包大小。参考cypress\\usb\\examples\\fx2lp\\bulkloop例子。
|
|
7楼#
发布于:2005-06-17 18:02
我也遇到同样的问题,你解决了告我一声
|
|
8楼#
发布于:2005-06-20 10:55
下面是引用mablejy0731于2005-06-13 14:18发表的: 如果你用Slave FIFO模式,当然需要,不过你可以写小于端点容量的数据量,但不能读 比如你设置双缓冲512,你可以下传两个512字节的数据包,然后就pending了 因为端点已经满了 |
|
9楼#
发布于:2005-07-07 11:33
我解决了,Cypress给的DEMO有问题,自己写了一个固件就可以了
|
|