网站导航:首页 > 论坛 > Easy Usb 51 Programer > 帖子浏览
   您正在浏览第 743 号帖子 收藏该帖

楼主 作者:鱼丫丫啊  发表时间:2010-9-29 10:49:46

我用at89s52和D12想做USB通讯,为什么插到电脑上没反应,goodLink灯是亮的?

如题,我是用的at89s52,D12,想实现和pc的USB通讯,电路图就是按照您所说的原理电路图焊接的,为什么插到电脑上不会提示发现新硬件,但是goodLink灯是亮的?


回复楼主
第1楼 作者:强强  发表时间:2010-9-29 22:28:01

那是因为驱动程序已经安装好了,所以不会再提示发现新硬件。可在硬件管理器里将这个设备删掉,再插入设备,就会出现提示了!


回复楼主    回复第1楼
第2楼 作者:鱼丫丫啊  发表时间:2010-9-30 8:57:37

不是啊,我第一次插也是这反应


回复楼主    回复第2楼
第3楼 作者:强强  发表时间:2010-9-30 13:58:59

灯闪几下就灭了吗?如果这样是的话是没有成功枚举,可用BUS HOUND抓一下枚举数据,看看枚举到哪一步失败的


回复楼主    回复第3楼
第4楼 作者:鱼丫丫啊  发表时间:2010-10-8 16:20:36

bushoud抓到的图

Bus Hound 5.00 capture. Complements of www.perisoft.net

Device - Device ID (followed by the endpoint for USB devices)
(7) SiS 7001 PCI to USB Open Host Controller
(8) USB Root Hub
(9) SiS 7001 PCI to USB Open Host Controller
(10) USB Root Hub
Phase - Phase Type
CTL USB control transfer
DI Data in
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data


Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- ------------------------------------------------------------------------------------------------------ ---------------- ------------------
8.0 DI 03 01 00 00 .... 92.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 94.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 95.1.0
8.0 DI 03 01 10 00 .... 95.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 96.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 97.1.0
8.0 DI 03 01 00 00 .... 97.2.0
8.0 CTL 23 01 01 00 03 00 00 00 CLEAR FEATURE 98.1.0
8.0 CTL a3 00 00 00 04 00 04 00 GET STATUS 99.1.0
8.0 DI 00 01 00 00 .... 99.2.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 100.1.0(2)
8.0 DI 00 01 01 00 .... 100.2.0
8.0 CTL 23 01 10 00 03 00 00 00 CLEAR FEATURE 102.1.0
8.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 103.1.0
8.0 DI 00 01 00 00 .... 103.2.0
8.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 104.1.0
8.0 DI 03 03 00 00 .... 104.2.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 105.1.0
8.0 DI 00 01 00 00 .... 105.2.0
8.0 CTL a3 00 00 00 04 00 04 00 GET STATUS 106.1.0
8.0 DI 00 01 00 00 .... 106.2.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 107.1.0(2)
8.0 DI 01 01 01 00 .... 107.2.0
8.0 CTL 23 01 10 00 03 00 00 00 CLEAR FEATURE 109.1.0
8.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 110.1.0
8.0 DI 00 01 00 00 .... 110.2.0
8.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 111.1.0
8.0 DI 03 03 00 00 .... 111.2.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 112.1.0(2)
8.0 DI 01 01 00 00 .... 112.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 114.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 115.1.0
8.0 DI 03 01 10 00 .... 115.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 116.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 117.1.0(2)
8.0 DI 03 01 00 00 .... 117.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 119.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 120.1.0
8.0 DI 03 01 10 00 .... 120.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 121.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 122.1.0(2)
8.0 DI 03 01 00 00 .... 122.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 124.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 125.1.0
8.0 DI 03 01 10 00 .... 125.2.0


回复楼主    回复第4楼
第5楼 作者:强强  发表时间:2010-10-10 22:38:44

您的是什么设备啊,上面的数据不全,没有看到请求设备描述符的部分,这部分在不停地SET FEATURE和GET STATUS,问题出在前面


回复楼主    回复第5楼
第6楼 作者:鱼丫丫啊  发表时间:2010-10-11 11:01:05

上面的数据是全的,确实是收不到请求设备描述符的部分

后来我又把电路修改了一下,A0接高电平,ALE接At89s52的ALE,然后把outportb和inportb又改回为ZLG的程序,结果能抓到GET DESCRIPTOR,但后面还是说是无法识别的设备
设备描述符为:
code USB_DEVICE_DESCRIPTOR DeviceDescr =
{
sizeof(USB_DEVICE_DESCRIPTOR), //设备描述符长度,= 12H
USB_DEVICE_DESCRIPTOR_TYPE, //设备描述符类型,= 01H
// 0x10,0x01, //协议版本,= 1.10
0x00,0x01,
USB_CLASS_CODE_TEST_CLASS_DEVICE, //测试设备类型, = 0DCH
// 0,
0, 0, //设备子类,设备协议
EP0_PACKET_SIZE, //端点0最大数据包大小,= 10H
0x71,0x04, //PHILIPS公司的设备ID
0x66,0x01, //设备制造商定的产品ID
0x00,0x01, //设备系列号
0, 0, 0, //索引
1 //可能的配置数
};





Bus Hound 5.00 capture. Complements of www.perisoft.net

Device - Device ID (followed by the endpoint for USB devices)
(7) SiS 7001 PCI to USB Open Host Controller
(8) USB Root Hub
Phase - Phase Type
CTL USB control transfer
DI Data in
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data


Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- ------------------------------------------------------------------------------------------------------ ---------------- ------------------
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 1.1.0(2)
8.0 DI 01 01 01 00 .... 1.2.0
8.0 CTL 23 01 10 00 03 00 00 00 CLEAR FEATURE 3.1.0
8.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 4.1.0
8.0 DI 00 01 00 00 .... 4.2.0
8.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 5.1.0
8.0 DI 03 03 00 00 .... 5.2.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 6.1.0(2)
8.0 DI 01 01 00 00 .... 6.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 8.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 9.1.0
8.0 DI 03 01 10 00 .... 9.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 10.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 11.1.0(2)
8.0 DI 03 01 00 00 .... 11.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 13.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 14.1.0
8.0 DI 03 01 10 00 .... 14.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 15.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 16.1.0
8.0 DI 03 01 00 00 .... 16.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 17.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 18.1.0
8.0 DI 03 01 10 00 .... 18.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 19.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 20.1.0(2)
8.0 DI 03 01 00 00 .... 20.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 22.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 23.1.0
8.0 DI 03 01 10 00 .... 23.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 24.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 25.1.0
8.0 DI 03 01 00 00 .... 25.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 26.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 27.1.0
8.0 DI 03 01 10 00 .... 27.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 28.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 29.1.0(2)
8.0 DI 03 01 00 00 .... 29.2.0
8.0 CTL 23 03 04 00 03 00 00 00 SET FEATURE 31.1.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 32.1.0
8.0 DI 03 01 10 00 .... 32.2.0
8.0 CTL 23 01 14 00 03 00 00 00 CLEAR FEATURE 33.1.0
8.0 CTL 80 06 00 02 00 00 ff 00 GET DESCRIPTOR 34.1.0
8.0 DI 09 02 2e 00 01 01 00 60 32 09 04 00 00 04 dc a0 .......`2....... 34.2.0
8.0 CTL 23 01 01 00 03 00 00 00 CLEAR FEATURE 35.1.0
8.0 CTL a3 00 00 00 04 00 04 00 GET STATUS 36.1.0
8.0 DI 00 01 00 00 .... 36.2.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 37.1.0(2)
8.0 DI 00 01 01 00 .... 37.2.0
8.0 CTL 23 01 10 00 03 00 00 00 CLEAR FEATURE 39.1.0
8.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 40.1.0
8.0 DI 00 01 00 00 .... 40.2.0
8.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 41.1.0
8.0 DI 03 03 00 00 .... 41.2.0
8.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 42.1.0
8.0 DI 00 01 00 00 .... 42.2.0
8.0 CTL a3 00 00 00 04 00 04 00 GET STATUS 43.1.0
8.0 DI 00 01 00 00 .... 43.2.0


回复楼主    回复第6楼
第7楼 作者:强强  发表时间:2010-10-11 18:45:40

ZLG提供的程序是DMA模式的,与本站实例不一样,注意它们的区别,是不这方面的问题?


回复楼主    回复第7楼
第8楼 作者:鱼丫丫啊  发表时间:2010-10-12 8:46:29

小小的成功了

我用的就是本站的实例,后来发现好像PID跟驱动不符,又修改了一下,可以装驱动了,最后枚举成功了。可为什么我删除硬件之后再重新插入,还会说是无法识别的设备呢?

回复楼主    回复第8楼
第9楼 作者:鱼丫丫啊  发表时间:2010-10-12 11:15:57

哈哈,换了台机器就成功了,可能是主机USB接口的问题

不过可能又要麻烦强哥了。我按照本站 如何与HID设备通讯(一)中的实例做了一下实验,怎么用busHound抓包,只能抓到DO呢?


Bus Hound 5.00 capture. Complements of www.perisoft.net

Device - Device ID (followed by the endpoint for USB devices)
(7) USB Root Hub
(23) Easy USB 51 Programer
Phase - Phase Type
CTL USB control transfer
DI Data in
DO Data out
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data


Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- -------------------------------------------------- ---------------- ------------------
23.2  DO      01 02 03 04 05 06 07 08 09 a0 b0 c0 d0 e0 f0 10 ................ 44.1.0 
                     11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 ............... 44.1.16
 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 !"#$%&'()*+,-./0 44.1.32
31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 123456789:;<=>?@ 44.1.48


回复楼主    回复第9楼
第10楼 作者:强强  发表时间:2010-10-12 22:23:54

可能选择的设备不正确,您可能选的是挂EASY USB 51 PROGRAMER的 USB Root Hub


回复楼主    回复第10楼
第11楼 作者:鱼丫丫啊  发表时间:2010-10-13 8:58:55

还是不行啊

我又重新试了一下,还是不行啊。下面是第一次执行RUN后busHound抓到的数据。我再执行RUN后DO也抓不到了,是不是因为第一次根本没把数据发出去,缓冲区是满的,所以第二次根本就抓不到数据?
Bus Hound 5.00 capture. Complements of www.perisoft.net

Device - Device ID (followed by the endpoint for USB devices)
(21) Easy USB 51 Programer
Phase - Phase Type
CTL USB control transfer
DI Data in
DO Data out
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data


Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- -------------------------------------------------- ---------------- ------------------
21.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 1.1.0
21.0 DI 12 01 10 01 00 00 00 10 71 04 66 06 00 01 00 00 ........q.f..... 1.2.0
00 01 .. 1.2.16
21.0 CTL 80 06 00 02 00 00 00 04 GET DESCRIPTOR 2.1.0
21.0 DI 09 02 29 00 01 01 00 80 32 09 04 00 00 02 03 00 ..).....2....... 2.2.0
00 00 09 21 10 01 21 01 22 1d 00 07 05 82 03 40 ...!..!."......@ 2.2.16
00 01 07 05 02 03 40 00 01 ......@.. 2.2.32
21.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 3.1.0
21.2 DO 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 4.1.0(2)
02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 4.1.16
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 4.1.32
04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 4.1.48


回复楼主    回复第11楼
第12楼 作者:强强  发表时间:2010-10-13 20:23:34

缓冲区长度设的多少嘛。不过看抓到的数据来看应该已经枚举成功了嘛


回复楼主    回复第12楼
第13楼 作者:鱼丫丫啊  发表时间:2010-10-14 9:55:16

缓存设的是64啊


回复楼主    回复第13楼
第14楼 作者:鱼丫丫啊  发表时间:2010-10-12 11:21:14

不知道怎么回事,一下子回了这么多帖子


回复楼主    回复第14楼
第15楼 作者:强强  发表时间:2010-10-12 21:50:14

呵呵,我来删


回复楼主    回复第15楼

 
 
本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4