打印

新手求助,USB D+ D- 怎么配置?

[复制链接]
17593|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dengjiazhi|  楼主 | 2011-12-3 19:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
芯片上USB的D+和D-直接连在USB的插口上(中间没电阻),也没有第3个引脚控制。那我该如何配置D+,D-产生电压差?
沙发
香水城| | 2011-12-3 22:23 | 只看该作者
???:dizzy:

使用特权

评论回复
板凳
dengjiazhi|  楼主 | 2011-12-3 23:14 | 只看该作者
2# 香水城 \
在ST的例程中 有USB_DISCONNECT_PIN这个开关引脚,可是我用的stm32F103VCT6没有这个引脚,那怎么使D+ D-产生高低电平?

使用特权

评论回复
地板
lxyppc| | 2011-12-5 08:42 | 只看该作者
如果在硬件电路上不支持只有用非主流的方法
关闭USB时钟,配置D+,D-为普通IO,然后输出高低电平,再打开USB时钟
貌似后来的connective line可以自己产生一个复位信号了

使用特权

评论回复
5
auzxj| | 2011-12-5 13:04 | 只看该作者
USB_DISCONNECT_PIN这个引脚是为了程序控制USB连接是否启用的,和USB本身无关,可以去掉,此IO口置低,则USB启用,如果你的USB不需要这个功能,你完全可以把这个管脚控制的三极管集电极相连的那个电阻去掉

使用特权

评论回复
6
香水城| | 2011-12-5 13:34 | 只看该作者
2# 香水城  \
在ST的例程中 有USB_DISCONNECT_PIN这个开关引脚,可是我用的stm32F103VCT6没有这个引脚,那怎么使D+ D-产生高低电平?
dengjiazhi 发表于 2011-12-3 23:14


你可以用任何一个引脚实现这个功能,只要从定义一下USB_DISCONNECT_PIN就可以了。

使用特权

评论回复
7
dengjiazhi|  楼主 | 2011-12-5 16:11 | 只看该作者
4# lxyppc

意思把USB时钟使能放在复位处理函数里面?那D+,D-的频率要设置成48吗?
pc机检测是否有设备插入,是检测接口的电平变化,那这个变化又是多少?

使用特权

评论回复
8
dengjiazhi|  楼主 | 2011-12-5 16:12 | 只看该作者
5# auzxj

目前就是没有USB_DISCONNECT_PIN这个引脚,那D+,D-的电平怎么变化?

使用特权

评论回复
9
香水城| | 2011-12-5 17:52 | 只看该作者
5# auzxj  

目前就是没有USB_DISCONNECT_PIN这个引脚,那D+,D-的电平怎么变化?
dengjiazhi 发表于 2011-12-5 16:12


USB_DISCONNECT_PIN不是一个特定的引脚,是一个宏定义,你可以定义任何一个I/O引脚作为USB_DISCONNECT_PIN。

使用特权

评论回复
10
huanter| | 2011-12-5 18:20 | 只看该作者
我也想问这个相关问题,我手边只有一个103ZE的核心板,想做Custom_HID这个试验,我该怎么设置芯片的引脚呢,在程序里哪个地方是更改USB引脚的呢?

使用特权

评论回复
11
香水城| | 2011-12-5 18:30 | 只看该作者
12
baidudz| | 2011-12-5 18:43 | 只看该作者
学会自己先找找答案,然后再问,这样学得会快一点

使用特权

评论回复
13
dengjiazhi|  楼主 | 2011-12-5 21:26 | 只看该作者
11# 香水城

我明白USB_DISCONNECT_PIN是一个宏定义。但是这板子上并没有多余的引脚连在D+上。现在只有USBDM和USBDP 连在D+,D-上。我就先问问有什么解决办法。因为USB使能后,DM和DP 就不能配置了。改如何产生高低电平。

使用特权

评论回复
14
香水城| | 2011-12-5 22:09 | 只看该作者
11# 香水城  

我明白USB_DISCONNECT_PIN是一个宏定义。但是这板子上并没有多余的引脚连在D+上。现在只有USBDM和USBDP 连在D+,D-上。我就先问问有什么解决办法。因为USB使能后,DM和DP 就不能配置了。改如何产生高 ...
dengjiazhi 发表于 2011-12-5 21:26


我给你的旧帖中有电路图,但你根本不看!!

使用特权

评论回复
15
dengjiazhi|  楼主 | 2011-12-5 22:13 | 只看该作者
14# 香水城

我看了呀,那电路图DP上还多条线连到USB_DISCONNECT_PIN,我的板子现在就没那条线。

使用特权

评论回复
16
lxyppc| | 2011-12-6 08:34 | 只看该作者
楼主的需求是
现在只有D+,D-两个引脚可用,没有其余的引脚了,如何产生一个USB的复位信号。
我这样理解对不对?

使用特权

评论回复
17
dengjiazhi|  楼主 | 2011-12-6 10:57 | 只看该作者
16# lxyppc

对一半吧。现在现在只有D+,D-两个引脚可用,没有其余的引脚了。首先是如何让PC机检测有设备插入。
一般情况下在D+或者D-上拉一个电阻,把其中一条数据线的电平拉高,这样PC就知道有设备插入,然后进行枚举过程。但是我现在的板子D+,D-没有上拉电阻。这样PC根本就就不知道有设备插入,就不能产生复位信号。

使用特权

评论回复
18
香水城| | 2011-12-6 12:24 | 只看该作者
USB连接的基本要素就是:1)需要在D+或D-有一个1.5K的电阻上拉到3.3V;2)3.3V的上拉电压必须在需要连接的时刻提供,主机端以这个电压的出现为标志开始进行枚举,如果此时设备端没有准备好,则主机端就会超时退出,在撤出上拉电压一段时间,并再次提供上拉电压之后才会启动下一次枚举。

如果你找不到任何一个引脚去控制这个上拉电压的存在和撤销,则LZ的要求不能实现。

使用特权

评论回复
19
dengjiazhi|  楼主 | 2011-12-6 17:07 | 只看该作者
18# 香水城

按照香版的指导,在D+上拉了个1.5k电阻,现在问题解决了。感谢香版和各位网友的讲解。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

1

粉丝