打印

USB的上拉电阻

[复制链接]
13126|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
McuPlayer|  楼主 | 2008-1-9 00:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为考虑电路的简化,把1.5K的上拉电阻直接连到D+,可以很好运行。
但是调试的时候,MCU更新了Firmwar,PC居然不知道重新枚举,如果手工拔插USB插头,ULINK几乎是立马**。
最后还是决定用三极管来开关上拉电阻,按照常理,PNP的8050,E接3.3V,C经过1.5K到D+,B用10K的限流电阻到STM32的IO口(ST的sample用的是PD9,我用的STM32F103R8T6没有,用了PB的一个IO),一切OK。
这时候去看ST的参考原理图,居然用了2个NPN,还用了5V电源上拉,比我多用一个三极管和3个电阻,不知道是什么考量。这个电路一般用于低压控制高压(比如3.3控制12V,这个案子正好也用了),3.3V控制3.3V为何要搞如此烦琐,应该不会是故意迷惑我们这些菜鸟吧。
沙发
computer00| | 2008-1-9 00:27 | 只看该作者

哈哈~~~协议里面是规定上拉到3.3V的~~~

使用特权

评论回复
板凳
zhangqibo| | 2008-1-9 00:31 | 只看该作者

用mos管就好了,三级管导通压降太大了

使用特权

评论回复
地板
computer00| | 2008-1-9 00:57 | 只看该作者

不会啊,三极管饱和压降在电流小时,不到0.3V。

使用特权

评论回复
5
zhangqibo| | 2008-1-9 01:00 | 只看该作者

是吗?没注意,谢谢!我平时量都达到了0.7v,估计电流大了

使用特权

评论回复
6
hotpower| | 2008-1-9 01:10 | 只看该作者

俺也觉得用mos管好...

使用特权

评论回复
7
McuPlayer|  楼主 | 2008-1-9 10:35 | 只看该作者

照着¥的面子,三极管比MOS管好

ST提供的原理图,假如系统只有3.3V,难道还要DCDC出来一个5V不成

使用特权

评论回复
8
ijk| | 2008-1-9 10:56 | 只看该作者

USB的上拉电阻直接接到某个IO上

  我觉得,USB的上拉电阻直接接到STM32某个IO上(PD9或者PBx)应该也可以,省掉1个三极管。
  STM32的官方DEMO板使用2个NPN三极管,其道理是:给第2个NPN三极管的基极施加比3.3V高的电压,从而保证它处于饱和状态。
  另外,也可以用1个PNP三极管,比如9012,给PNP三极管的基极串联的电阻加上低电平,也可以让PNP三极管进入饱和状态。

使用特权

评论回复
9
zhangqibo| | 2008-1-9 10:59 | 只看该作者

7楼,不是阿,usb电压就是3.3v

你说的是这个图吧。

用了三级管,因为压降大所以需要5v来支援,如果用mos管的话就不需要了,直接用就可以。

看图,这个电路很好分析,如果控制端接高电平,T2 c级电压不到0.7v,这样t1不会导通,那么t1 E级与3.3v就没接,上拉电阻就不存在。

如果是接低点平,那么t2不导通,那么t2 e级就是t1 b级的电压为两个电阻分压,39/(39+10)*5  大概是4v,经过t2 be结的压降,到e级的电压大概就是4-0.7 = 3.3v。

之所以这么拐弯抹角的用两个三级管,还用了5v电压,就是为了能达到3.3v,因为用一个三级管去控制本来电压就达不到规范。但是如果用mos管的话那就好了,一个就搞定了,电路也简单。

使用特权

评论回复
10
computer00| | 2008-1-9 11:25 | 只看该作者

看看USB协议吧,那个识别电压不需要那么高的。好象是2V

使用特权

评论回复
11
zhangqibo| | 2008-1-9 11:40 | 只看该作者

不是吧,我看到的是3.0~3.3v

使用特权

评论回复
12
香水城| | 2008-1-9 11:43 | 只看该作者

USB协议规定,识别电压为3.0V - 3.6V


7.1.5 Device Speed Identification
The following sections specify the speed identification mechanisms for low-speed, full-speed, and high-speed.

7.1.5.1 Low-/Full-speed Device Speed Identification
The USB is terminated at the hub and function ends as shown in Figure 7-20 and Figure 7-21. Full-speed and low-speed devices are differentiated by the position of the pull-up resistor on the downstream end of the cable:
  - Full-speed devices are terminated as shown in Figure 7-20 with the pull-up resistor on the D+ line.
  - Low-speed devices are terminated as shown in Figure 7-21 with the pull-up resistor on the D- line.
  - The pull-down terminators on downstream facing ports are resistors of 15 kΩ ±5% connected to ground.

The design of the pull-up resistor must ensure that the signal levels satisfy the requirements specified in Table 7-2. In order to facilitate bus state evaluation that may be performed at the end of a reset, the design must be able to pull-up D+ or D- from 0 V to VIH (min) within the minimum reset relaxation time of 2.5 μs. A device that has a detachable cable must use a 1.5 kΩ ±5% resistor tied to a voltage source between 3.0 V and 3.6 V (VTERM) to satisfy these requirements. Devices with captive cables may use alternative termination means. However, the Thevenin resistance of any termination must be no less than 900 Ω.

Note: Thevenin resistance of termination does not include the 15 kΩ ±5% resistor on host/hub.

The voltage source on the pull-up resistor must be derived from or controlled by the power supplied on the USB cable such that when VBUS is removed, the pull-up resistor does not supply current on the data line to which it is attached.

使用特权

评论回复
13
McuPlayer|  楼主 | 2008-1-9 12:07 | 只看该作者

用PNP的电路最简单

一个三极管就OK了,低电平导通,高电平截止。
另外,估计参与讨论都是对USB了然于胸的,至少这个上拉电阻。
因为很多设计是单3.3V系统,感觉ST的参考设计有些误导人。
我是飞线修改电路才发现此问题的,先前没有仔细研究过ST的原理图。

使用特权

评论回复
14
ijk| | 2008-1-9 13:56 | 只看该作者

识别电压不需要那么高

  没错,实际电路的识别电压可能不需要那么高,但是如果要严格遵循USB规范,还是给3.0~3.6V好。
  另外,取巧的做法就是什么也不要,用1个STM32的IO来直接提供3.3V。

使用特权

评论回复
15
computer00| | 2008-1-9 14:52 | 只看该作者

香版,你所说的那个不是识别电压,而是上拉电源电压

识别电压是USB HOST的SIE的单线绝对高电平最小值,协议里面规定这个电压VIH (min)是2V。

用三极管做这个开关时,压降应该不到0.2V,我手头没板子,你们可以实测一下。

使用特权

评论回复
16
McuPlayer|  楼主 | 2008-1-9 15:03 | 只看该作者

即使是ST的参考电路,仍然有三极管的CE压降的问题

即使是ST的参考电路,仍然有三极管的CE压降的问题
其实这个压降,看规格书,有几百个mV,但是你得看测试条件(Ic),这里其实电流很小的,一般的管子应该可以做到100mV以下

另外,用IO直接驱动,也是可以的,MCU内部的PMOS管的压降也足以满足要求

使用特权

评论回复
17
香水城| | 2008-1-9 15:15 | 只看该作者

谢谢computer00,这个电压VIH (min)我要好好研究研究

嗨,又要看那个厚厚的文本~~~~~

使用特权

评论回复
18
戈卫东| | 2013-10-24 09:42 | 只看该作者
不要迷信ST之类的大公司, 他们也会有给出不好的电路的时候.

使用特权

评论回复
19
IJK| | 2013-10-24 11:39 | 只看该作者
632069383 发表于 2013-10-23 21:05
这方法有实际试验过吗?

有人这么试过,看到过这样的电路。

使用特权

评论回复
20
zzfei90| | 2014-1-6 16:00 | 只看该作者
我们做的产品,大部分电脑都可以,就是不一定哪台电脑的某个USB口不行,搞了大半年了,一直找不到问题,偶然发现了这篇帖子,发现我们的产品竟然是上拉到5V的!改到3.3后,再拿去不能识别的电脑,OK了!!!谢谢大家!!哈哈哈哈

使用特权

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

本版积分规则

338

主题

7307

帖子

26

粉丝