USB论坛-百合电子工作室USB专题站

 找回密码
 我要注册
搜索
热搜: USB学习板
查看: 4264|回复: 7
打印 上一主题 下一主题

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

[复制链接]

1

主题

0

好友

19

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2012-6-10 10:49:37 |只看该作者 |倒序浏览
如题,我是用的at89s52,D12,想实现和pc的USB通讯,电路图就是按照您所说的原理电路图焊接的,为什么插到电脑上不会提示发现新硬件,但是goodLink灯是亮的?
回复

使用道具 举报

6

主题

0

好友

1158

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2012-7-12 19:52:43 |只看该作者
如果goodlink灯是常亮,证明设备已经枚举成功,没有提示发现新硬件,是因为之前已经在同一个USB接口插过设备并成功枚举并安装了驱动,再次在同一个USB插上同一个设备就不会再提示发现新硬件了。可以在插上设备的情况下在设备管理器里删除这个设备,然后再重新插,或者换一个USB插口也会提示发现新硬件的。

如果不确定设备是否枚举成功,可以打开设备管理器看,还可以用bushound监视一下枚举过程(不过要求对协议比较熟才行)
回复

使用道具 举报

1

主题

0

好友

19

积分

新手上路

Rank: 1

板凳
发表于 2012-7-13 21:47:27 |只看该作者
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
回复

使用道具 举报

6

主题

0

好友

1158

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2012-7-13 22:49:21 |只看该作者
鱼丫丫啊 发表于 2012-7-13 21:47
bushoud抓到的数据

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

上面的数据不全,没有看到请求设备描述符的部分,这部分在不停地SET FEATURE和GET STATUS,设备枚举有问题。
回复

使用道具 举报

1

主题

0

好友

19

积分

新手上路

Rank: 1

5#
发表于 2012-7-14 22:50:38 |只看该作者
后来我又把电路修改了一下,A0接高电平,ALE接At89s52的ALE,然后把outportb和inportb又改回为ZLG的程序,结果能抓到GET DESCRIPTOR,但后面还是说是无法识别的设备
设备描述符为:

[code=cpp]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 //可能的配置数
};[/code]


Bus Hound 5.00 capture.

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

主题

0

好友

1158

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2012-7-15 10:53:17 |只看该作者
鱼丫丫啊 发表于 2012-7-14 22:50
后来我又把电路修改了一下,A0接高电平,ALE接At89s52的ALE,然后把outportb和inportb又改回为ZLG的程序,结 ...

ZLG提供的程序是DMA模式的,与本站实例不一样,注意它们的区别。另外,看了您的设备描述符,这是测试类,Windows系统没有提供这类设备的驱动,需要另外提供,那您的驱动是自己写的还是用的别人的?注意驱动里的PID和VID要和固件一致,端口配置也要和固件一致!
回复

使用道具 举报

1

主题

0

好友

19

积分

新手上路

Rank: 1

7#
发表于 2012-7-16 10:58:03 |只看该作者
还真是PID的问题,固件的PID和驱动的PID不一致,改了过后就可以正常枚举,驱动也装成功了。

不过还有人问题需要麻烦版主,我做了一下通信实验,怎么用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
回复

使用道具 举报

6

主题

0

好友

1158

积分

管理员

Rank: 9Rank: 9Rank: 9

8#
发表于 2012-7-16 11:59:54 |只看该作者
鱼丫丫啊 发表于 2012-7-16 10:58
还真是PID的问题,固件的PID和驱动的PID不一致,改了过后就可以正常枚举,驱动也装成功了。

不过还有人问 ...

我想很有可能是驱动里的端点配置与固件不一致造成的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

USB开发网 (渝ICP备09006681号-4)

GMT+8, 2024-4-24 21:58 , Processed in 0.057788 second(s), 18 queries .

百合电子工作室版权所有
回顶部