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设计注意事项

时间: 2024-08-01 10:44:59

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.supervisor.mysql环境搭建搭建好了.net core linux的相关环境,今天就来说说ef core相关的配置及迁移: 简介: Entity Framework(以下简称EF) 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,EF Core是Entity

USB2.0学习笔记连载(三):通用USB驱动程序解析

对于USB驱动的开发,读者可以使用Windows DDK.DriverStudio等多种开发工具来实现USB的驱动,但是驱动程序的开发过程都比较复杂,而且很容易致使USB主机内存泄露而死机.那么对于笔者这样喜欢做硬件的研发对软件不是很感冒的孩纸,怎么快速上手开发出USB驱动.其实很多USB芯片公司已经给很多用户提供了开发包,譬如笔者使用的Cypress公司提供的开发包可以满足广大用户的要求,这一点还是值的称道的,关于后续怎么使用这些开发包进行USB2.0驱动的开发,笔者会在后续的博客中一一写出.

USB2.0学习笔记连载(二):USB基础知识简介

  USB接口分为USB A型.USB B型.USBmini型.USBmicro型.USB3.0其中每种都有相应的插座和插头. 图1 图2 上图是USBA型接口,图1为插座,图2为插头.插座指向下行方向,插头指向上行方向. USB中一般常用有4根线,两边两根线一般为VBUS(5V的接入或接出线,对应上图中的1引脚)和GND(对应上图中的4引脚).中间两根为D+(对应上图中的3引脚),D-(对应上图中的2引脚),还有外加一个屏蔽层. 图3 图4 USB B型所对应的各信号和USB A型一致.在各种

USB2.0学习笔记连载(九):USB设备驱动的安装

在第一次插入USB设备时(笔者用的是自己做的USB最小系统来测试),插入电脑后,在设备管理器中会显示 未知设备,如下图所示: 点击右键,选择属性,在详细信息中可以看到硬件ID以及PID等,如下图所示. 根据手册中的内容,和上述的描述是一致的,如下图所示: 那么先默认安装cypress官网上面的驱动,如下图所示: 打开cyusb3.inf文件,如下图所示: 文件中的各个内容的含义,请参考之前的博客<通用USB驱动程序解析>.保持文中的值,即是安装官方提供默认的驱动文件.   由于CY7C6801

USB2.0学习笔记连载(十):关于WIN8及以上系统哈希值问题

笔者上一篇博客讲解了关于驱动的安装,笔者使用的系统是win8.1系统,那么对于win8系统及以上系统,会对外部设备,没有在windows系统中进行签名过的,都是不允许在windows系统中进行安装的,以保证windows系统安全.如下图所示: 出现这个问题是由于cypress的芯片未经过签名,显示安装不成功.那么解决上述的办法,需要关闭win8及以上系统的禁用强制驱动签名.如下图所示: 链接:http://zhidao.baidu.com/question/1366740923411875539

.net core 2.0学习笔记(六):Remoting核心类库RealProxy迁移

在学习.net core的过程中,我们已经明确被告知,Remoting将不会被支持.官方的解释是,.net framework 类型包含了太多的Runtime的内容,是一个非常重量级的服务实现,已被确定为一项有问题的体系结构.说白了就是迁移的难度很大,.net core中直接不提供了.微软的建议是,如果是进程内或跨进程通讯,建议我们使用 Pipes或者内存映射文件(Memory Mapped Files).如果是机器间的调用,建议我们采用网络通讯的方案,比如HTTP.WCF等. 好吧,既然微软官

Flume-1.6.0学习笔记(六)sink到hbase

欢迎访问:鲁春利的工作笔记,学习是一种信仰,让时间考验坚持的力量. 本文出自 "闷葫芦的世界" 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1715281

Hadoop2.6.0学习笔记(六)TextOutputFormat及RecordWriter解析

鲁春利的工作笔记,谁说程序员不能有文艺范? MapReduce提供了许多默认的输出格式,如TextOutputFormat.KeyValueOutputFormat等.MapReduce中输出文件的个数与Reduce的个数一致,默认情况下有一个Reduce,输出只有一个文件,文件名为part-r-00000,文件内容的行数与map输出中不同key的个数一致.如果有两个Reduce,输出的结果就有两个文件,第一个为part-r-00000,第二个为part-r-00001,依次类推. MapRed

Kinect for Windows SDK v2.0 开发笔记 (十六) SDK2.0正式发布 与 自带工具

(转载请注明出处) 使用SDK: Kinect for Windows SDK v2.0 1409 来了,微软于10月22日正式发布了SDK v2.0,前兆是发现了API文档正常了... 话说为什么是1409而不是1410 于是从这节开始,开始附上API的超链接.正式版的体积也是可观,整整(比7月版)大了一倍 这节说说自带的软件,本打算录下来,但是太懒了 先附上微软自己的地址,Part1,Part2,这是手势的,虽然是使用C#,不过工具使用是完全一样的. 先看看SDK中自带的工具: 0. Kin