USB2.0学习笔记连载(六):USB2.0硬件设计需要注意事项
2015-12-27 17:33
260 查看
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173238577-117158001.png)
笔者在设计USB2.0时找到了一个官方给的硬件设计正确设计指南,其中有些内容还挺nice的。不单单只是USB的设计,其中有些思想可以应用到其他的场合中。
对于USB2.0而言,全速状态下可以达到480Mbps,带宽相比USB1.0提高了不少。USB2.0的供电大功率供电可以达到500mA,实际上加上USB自身消耗,也就是在450~480mA左右。
1.USB供电
对于外部器件的供电选择,可以使用USB进行供电,也可以自供电。关于USB集线器的介绍参看另外一篇关于USB集线器的介绍。
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173240124-232337984.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173241577-672315885.png)
USB进行供电系统架构如下图所示:
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173242843-716938375.png)
外部器件自行供电USB系统架构如下图所示:
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173243937-1288938427.png)
上面两个图是关于VBUS供电的典型应用图,根据手册中的介绍,如果使用了wakeup功能,那么需要使用USB control寄存器来检测VBUS的状态。
笔者设计的时候,并未采用图上接入1.5K电阻形式,只是让USB提供5V/500mA的电源,电源配置需要在USB固件时进行配置,硬件电路如下图所示:
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173245077-1130726363.png)
2.WAKEUP引脚设置
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173247734-37427893.png)
笔者设计的电路中,并未提供在无数据传输时进行睡眠,有数据传输时进行唤醒功能,而是一直在唤醒状态。
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173248734-852307755.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173249624-1510815831.png)
3.USB复位电路
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173250781-338465993.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173251859-1474522747.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173253031-565738572.png)
上面几张图手册中提及到对于简单的RC电路进行复位的不足之处。当 USB 器件断开时,芯片被断电,但电容仍持续被充电到芯片的电源电压,然后它通过电阻缓慢放电。如果立即重新插入 USB 器件,会怎么样呢?如果电容放电,但其电压尚未低于复位阈值,那么复位引脚将为芯片供电,但该引脚的电压过高,所以无法在 t2 时复位芯片。暂时可以通过在图 7中添加二极管来解决该问题,从而可以加快掉电时电容电压的放电速度,但只能缩短从断开到重新连接的重要时间。RC 放电方法取决于当 LDO 输入被断连时它的输出电压是否降低到 0 V,而这种情况又取决于特定 LDO 及其外部组件(如大容量电容)。最重要的问题是该电路无法保证芯片
在任何情况下都能可靠地复位,尤其是在 USB 快速断连/连接情况下。
手册中给出了下面理想的复位解决方案,这样当然是最后的结果。
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173254109-1091982633.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173255234-1118145747.png)
在实际中,笔者测试的情况对于常用的RC电路可以满足本设计的要求,如下图所示:
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173256218-1418288510.png)
4.晶振要求
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173257546-965620400.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173258734-676737843.png)
5.USB差分阻抗控制
关于差分阻抗的控制,笔者之前的博客已经说明,可以去查看相关内容,这里简要提及一下。
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173259952-613934145.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173301249-1731411233.png)
6.PCB设计注意事项
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173302624-1714268608.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173303890-1821443532.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173305218-1468186289.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173306531-522617199.png)
![](http://images2015.cnblogs.com/blog/836224/201512/836224-20151227173308046-1186408293.png)
相关文章推荐
- CentOS程序包管理工具浅析
- cf #308 D. Vanya and Triangles (几何)
- AVFoundation学习Demo--拍摄照片
- Android自动化工具的选型对比
- 网络传输层TCP协议中InputStream的read方法是否返回-1
- STM32 USB数据发送完成的识别方法
- 高级for循环
- jmeter 与 json
- 一、storm基础概念
- web项目中界面(jsp或者js)之间参数的传递
- 灰来灰去-设计的那些事儿
- 跳转界面传递数据
- android studio 下载地址
- 深度学习(二十二)Dropout浅层理解与实现
- iOS 删除NSString中特定字符
- 单件模式(heade first设计模式读书笔记)
- 23种设计模式(19)_行为型_解释器模式(Interpreter Pattern)
- 重学Java之环境变量(path和classpath)
- 学习笔记_堆
- C++模板学习