USB2.0学习笔记连载(六):USB2.0硬件设计需要注意事项

笔者在设计USB2.0时找到了一个官方给的硬件设计正确设计指南,其中有些内容还挺nice的。不单单只是USB的设计,其中有些思想可以应用到其他的场合中。
对于USB2.0而言,全速状态下可以达到480Mbps,带宽相比USB1.0提高了不少。USB2.0的供电大功率供电可以达到500mA,实际上加上USB自身消耗,也就是在450~480mA左右。
1.USB供电
对于外部器件的供电选择,可以使用USB进行供电,也可以自供电。关于USB集线器的介绍参看另外一篇关于USB集线器的介绍。


USB进行供电系统架构如下图所示:

外部器件自行供电USB系统架构如下图所示:

上面两个图是关于VBUS供电的典型应用图,根据手册中的介绍,如果使用了wakeup功能,那么需要使用USB control寄存器来检测VBUS的状态。
笔者设计的时候,并未采用图上接入1.5K电阻形式,只是让USB提供5V/500mA的电源,电源配置需要在USB固件时进行配置,硬件电路如下图所示:

2.WAKEUP引脚设置
笔者设计的电路中,并未提供在无数据传输时进行睡眠,有数据传输时进行唤醒功能,而是一直在唤醒状态。

3.USB复位电路



上面几张图手册中提及到对于简单的RC电路进行复位的不足之处。当 USB 器件断开时,芯片被断电,但电容仍持续被充电到芯片的电源电压,然后它通过电阻缓慢放电。如果立即重新插入 USB 器件,会怎么样呢?如果电容放电,但其电压尚未低于复位阈值,那么复位引脚将为芯片供电,但该引脚的电压过高,所以无法在 t2 时复位芯片。暂时可以通过在图 7中添加二极管来解决该问题,从而可以加快掉电时电容电压的放电速度,但只能缩短从断开到重新连接的重要时间。RC 放电方法取决于当 LDO 输入被断连时它的输出电压是否降低到 0 V,而这种情况又取决于特定 LDO 及其外部组件(如大容量电容)。最重要的问题是该电路无法保证芯片
在任何情况下都能可靠地复位,尤其是在 USB 快速断连/连接情况下。
手册中给出了下面理想的复位解决方案,这样当然是最后的结果。


在实际中,笔者测试的情况对于常用的RC电路可以满足本设计的要求,如下图所示:

4.晶振要求


5.USB差分阻抗控制
关于差分阻抗的控制,笔者之前的博客已经说明,可以去查看相关内容,这里简要提及一下。


6.PCB设计注意事项





USB2.0学习笔记连载(六):USB2.0硬件设计需要注意事项的更多相关文章
- 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移
不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...
- USB2.0学习笔记连载(五):EZ-USB重要寄存器的配置
本篇博客主要讲解EZ-USB一些重要寄存器的配置,首先对于本篇博客所讲的内容,读者应该到官网上去下载相关的手册,其中包括<EZ-USB Technical Reference Manual> ...
- USB2.0学习笔记连载(十八):keil实现寄存器的配置及相关函数讲解(二)
其实之前也有提及过,Cypress公司提供的官方文件和应用手册真的可以解决很多问题.做的也很人性化,操作也及其简单,几乎只要在 TD_int()里面配置一些常用的参数即可,其他都可以不用操作. 作为一 ...
- USB2.0学习笔记连载(一):CY7C68013特性简介
上一篇博客已经给出了整个视频板卡架构,那么对于USB接口部分需要着重理解和学习. 对于目前来说,若是利用FPGA去模拟USB2.0内核,难度还是挺大的,整个状态的收发都不好控制.现在目前都在使用桥接芯 ...
- USB2.0学习笔记连载(十九):EZ-USB TRM手册重要部分介绍
TRM手册中给出了所有的寄存器配置,在 slave fifo模式或者 GPIF模式等,所以对于用到的各种寄存器配置需要查看此手册,当然还可以配合着应用手册<AN61345>. ...
- USB2.0学习笔记连载(十七):keil实现寄存器的配置及相关函数讲解(一)
首先要实现对寄存器的配置,可以参考手册<Development kit User Guide>,如下图所示: 此文件包含在 文件中.上述的应用文档详细介绍了如何利用KEIL实现对固件程序 ...
- USB2.0学习笔记连载(三):通用USB驱动程序解析
对于USB驱动的开发,读者可以使用Windows DDK.DriverStudio等多种开发工具来实现USB的驱动,但是驱动程序的开发过程都比较复杂,而且很容易致使USB主机内存泄露而死机.那么对于笔 ...
- USB2.0学习笔记连载(二):USB基础知识简介
USB接口分为USB A型.USB B型.USBmini型.USBmicro型.USB3.0其中每种都有相应的插座和插头. 图1 图2 上图是USBA型接口,图1为插座,图2为插头.插座指向下行方向, ...
- USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写
在之前的博客中已经讲过,驱动程序最核心的两个文件,一个是xxx.sys文件,一个是xxx.inf文件,主机是寻找xxx.inf文件. 在下面的文件中有相关关于USB驱动的说明.对于用户来说,xxx.s ...
随机推荐
- SQL Server 的动态语句(SQLServer 的String.format用法)(SQLServer的调用SQL占位符的使用)
直接上代码好了: --建表语句if exists(select 1 from [你的测试数据库名字].sys.tables where name='TDepartment') BEGIN print ...
- Android TextView 支持的HTML标签
* <a href="..."> * <b> * <big> * <blockquote> * <br ...
- MSSQL分组取后每一组的最新一条记录
数据库中二张表,用户表和奖金记录表,奖金记录表中一个用户有多条信息,有一个生效时间,现在要查询: 奖金生效时间在三天前,每个用户取最新一条奖金记录,且用户末锁定 以前用的方法是直接写在C#代码中的: ...
- ios 关于屏幕旋转和屏幕晃动
内置加速计是智能手机最酷的特性之一,ios可以通过这个小设备知道用户握持手机的方式,以及用户是否移动了手机,ios使用加速计处理自动旋转,并且许多游戏都是用它作为控制机制,它还可以用于检测摇动和其他突 ...
- ios日期格式转换
转自:http://blog.csdn.net/l_ch_g/article/details/8217725 1.如何如何将一个字符串如“ 20110826134106”装化为任意的日期时间格式,下面 ...
- HTML杂记
1.URL uniform resource locator 遵循格式: scheme://host.domain:port/path/filename scheme - 定义因特网服务的类型.最常 ...
- android笔记--与服务器交互更改简历状态
private AsyncHttpClient asyncHttpClient; private Dialog dialog; /** * 改变简历状态 */ private void postcha ...
- Why do people integrate Spark with TensorFlow even if there is a distributed TensorFlow framework?
https://www.quora.com/Why-do-people-integrate-Spark-with-TensorFlow-even-if-there-is-a-distributed-T ...
- (原创)c++11改进我们的模式之改进代理模式,实现通用的AOP框架
c++11 boost技术交流群:296561497,欢迎大家来交流技术. 本次要讲的时候如何改进代理模式,具体来说是动态代理模式,动态代理模式一般实现AOP框架,不懂AOP的童鞋看这里.我前面的博文 ...
- git命令(9): 常见问题cover
转载地址: https://blog.csdn.net/kkkkkxiaofei/article/details/41483039 情景1:多人协作之如何建立本地分支? 假若你已经clone了别人的仓 ...
