USB2514集线器调试总结
一般的MCU不会留有太多的USB口,但在实际项目中又会遇到需要很多个USB口的情况,这时就会用到USB集线器来扩展USB口了。USB2514这个芯片是我在工作中用的比较多的,但是问题很多,从来没有调稳定过,前几天抽空把这个芯片调了一下,终于调稳定了。现在就把我调试过程写下来。
首先在网上抄了一个电路,原理如下:

图中所有的红色标号全部用导线引出,下游的USB端口接了4个USB座。所有电路手工焊接,焊完后插上电脑一点反应都没有,测量各电压都正常,但是晶振没起振。网上搜了一下有人说这个芯片必须下级要连设备晶振才会起振,于是我插了一个U盘,但是晶振还是没有起振。
之后将芯片各脚重新过了一遍锡后将晶振旁边的18pf电容换成了22pf,插上电后提示“无法识别的USB设备”。
网上搜资料,大多数人说是焊接问题导致的,于是我又把芯片各引脚过了一遍锡,插上电脑提示“USB端口上的电涌”,“未知USB设备所需电量超出该端口所能提供的电量”,如图:

手摸芯片明显发热,我本以为还是用不了,结果用示波器量一下晶振竟然起振了(此时下级USB没有连接设备),插上一个U盘也识别到了,而且还能正常使用,不过接出的4个USB口有一个不能用,于是我又把各引脚过了一遍锡,现象和之前还是一样的。后来发现其实并不是每次都能识别到设备,测量电流在200mA左右。
虽然最后问题都没有解决,但我觉得就是焊接导致的。这版电路没有什么保护,我不想在上面耗费太多时间,因此直接换了另一版电路,如下:


第二版比第一版多了很多东西,有些地方还有差异,具体来看一下这些差异:
第一处是22,24,25这三个引脚,第一版是接了100K电阻到地,第二版直接悬空了,查看资料:

虽然没有完全理解是什么意思,但是发现这几个引脚还挺重要的,资料上并没找到这几个引脚悬空是什么状态,为了保险起见还是应该下拉到地。
第二处是第一版的27号引脚接的是3.3V,而第二版27号引脚接的是5V,查看资料:

必须连3.3V !!!
第二版原理图中新增的部分第一处是多了一个TPS2069,这是一个电流驱动芯片,输入电压4.5V~5.5V,输出电流1.5A。所以这里不知道接这个东西有什么意义。
另外加入了两个SRV05-4,这是USB接口常用的静电保护器件。
将有问题的地方修改后原理如下:


图中蓝色的圆都是焊盘。根据原理图设计PCB,如下:

拿到样板后进行焊接,第一个要焊的器件就是USB2514。根据上次调试的经验,这个芯片的焊接一定一定不能出问题。我的方法是先在USB2514底下的焊盘上放一些锡膏,然后将芯片压上去,注意锡膏不能放太多,不然压芯片的时候会把锡膏挤出来。调整好位置后将PCB板架高,用热风枪吹PCB的背面,感觉锡膏熔了就OK了。之后再用烙铁把引脚焊好。一点助焊剂都不要用。之后再焊接剩下的器件。我当时因为手头没有SRV05-4这个件,因此就没焊。
然后将集线器贴在一块开发板上(只是借助了开发板上的焊盘及公共的地线,仅仅是为了方便焊接而已)。再连一个5V转3.3V的芯片给USB2514供电。4个下级USB插座也焊上,连上USB插头,这样理论上来说它就和我们平时用的USB集线器一样了。焊接好后如下:

插上电脑后直接就识别成了一个通用USB集线器:

不接设备时测量电流只有6.5mA,4个USB口全部能正常使用。而且不接设备时测量晶振是没有起振的,接上设备时测量晶振才起振,附上示波器测量图:

最后总结一下
连接电脑后没反应;连接电脑后提示USB端口上的电涌;下级没有连接设备但是晶振起振了,存在用不了的下级USB口;这些都是焊接导致的。
USB2514是3.3V供电,下级不接设备时晶振是不起振的。
USB2514集线器调试总结的更多相关文章
- 调试技巧--Windows端口号是否被占用
调试技巧--Windows端口号是否被占用 一.端口概念 10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168. ...
- Linux网络应用编程之集线器(Packet Tracer仿真)
Packet Tracer入门 一,集线器概况 对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上. 工作于OSI(开放式系统互联参考模型)的最底层(物理层) ...
- 钉钉开发笔记(6)使用Google浏览器做真机页面调试
注: 参考文献:https://developers.google.com/web/ 部分字段为翻译文献,水平有限,如有错误敬请指正 步骤1: 从Windows,Mac或Linux计算机远程调试And ...
- android:如何通过chrome远程调试APP中的webView的h5代码
今天出现一个问题,在老板的Mate9 Pro上,我们APP的所有H5页面都是一片空白,但是在其他手机上都是好的,那么我们就怀疑是h5报错了,但是到底是什么错,无法得知,所以就想要可以像在pc的chro ...
- 混合式应用真机调试(Android Studio + Chrome)
如何在chrome上调试混合式APP https://developers.google.com/web/tools/chrome-devtools/remote-debugging/ Get Sta ...
- [转] 在安卓设备上使用 Chrome 远程调试功能
你的网页内容在移动设备上的体验可能和电脑上完全不同.Chrome DevTools 提供了远程调试功能,这让你可以在安卓设备上实时调试开发的内容. 安卓远程调试支持: 在浏览器选项卡中调试网站. 在原 ...
- 钉钉开发笔记(六)使用Google浏览器做真机页面调试
注: 参考文献:https://developers.google.com/web/ 部分字段为翻译文献,水平有限,如有错误敬请指正 步骤1: 从Windows,Mac或Linux计算机远程调试And ...
- 使用Google浏览器做真机页面调试
步骤1: 从Windows,Mac或Linux计算机远程调试Android设备上的实时内容.本教程将教您如何: 设置您的Android设备进行远程调试,并从开发机器中发现它.从您的开发机器检查和调试A ...
- 远程调试 Android 设备使用入门(谷歌翻译版)
移动前端调试方案(Android + Chrome 实现远程调试) 目录 要求 第 1 步:发现您的 Android 设备 第 2 步:从您的开发计算机调试 Android 设备上的内容. 更多操作: ...
随机推荐
- Python将word文档批量转PDF
前面有一篇<Python批量创建word文档(2)- 加图片和表格>的文章,利用这篇文章创建的word文档来批量转PDF文档.代码: 1 ''' 2 #python批量将word文档转换成 ...
- C# 托管与非托管类型 堆和栈 值类型与引用类型 装箱与拆箱
一.托管类型与非托管类型 1.托管类型 托管类型包括 引用类型 以及 包含有引用类型或托管类型成员的结构. 引用类型 含引用类型或托管类型成员(字段.自动实现 get 访问器的属性)的结构 // 托管 ...
- C# 数据结构与算法 操作系统原理 计算机网络原理 数据库开发学习
https://www.cnblogs.com/edisonchou/p/3843287.html PDF https://files.cnblogs.com/files/netlock/%E6%95 ...
- NET 5 Session、Cookie和Cache的使用
1.Cookie public IConfiguration Configuration { get; } // This method gets called by the runtime. Use ...
- PPT技术干货1(下)——数据图表分析、逻辑梳理、高效办公
数据分析 让数据指导决策,帮你获得业绩增长 数据展示是PPT必备的基础技能, 有些人是简单粗暴的将数据直接堆在页面上: 这样的汇报缺乏重点,不具有针对性. 图表该如何设计呢? 1.数据可视化,内容交互 ...
- 什么是可变参数?如何创建不可变集合?Steam三类方法是什么?获取流方法特点?流中间方法特点?终结流方法特点?
==知识梳理== ==重难点梳理== ==今日目标== 1.能够了解什么是可变参数 2.能够了解如何去创建不可变集合 3.能够掌握Stream流的使用 ==知识点== 1.可变参数 2.Stream流 ...
- C# ——获取各国时间
DateTime dt = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local); DateTime dt1 = TimeZo ...
- Redis学习笔记之数据库(一)
说句实话,redis这个软件要学习的东西实在多,多到,看的多了就容易迷失,而且还记不住.个人觉得靠记忆去学习一个知识肯定是比较糟糕的,所以还是要带着理解的,最终变成自己的东西,那这个东西才是自己的. ...
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- Ubuntu18.04换源
引用:https://blog.csdn.net/u012308586/article/details/102953882 第一步.sudo cp /etc/apt/sources.list ...