--------用工程师的思路解决了部分USB-UART接USB集线器不识别的问题。---------
以前使用的好几批次USB-UART转换器,采用的是PL2303HX芯片,直接接电脑,或者接USB集线器,都可以识别和工作。
最近单位购买的一批USB-UART转换器,插电脑是可以识别的,插USB集线器,有些集线器可以识别,有些集线器无法识别,
或者部分端口勉强可以识别,有时候识别有时候不识别,不稳定。
以前可以识别的USB-UART,插入时,DM是3V左右直流电压,然后识**有脉冲。
不识别的USB-UART,插入时,DM一直是1.8V左右的直流电压。
显然这个新的USB-UART不符合规范,1.8V左右的电压,集线器也许不认为是高电平,无法触发插入检测。
考虑焊接方便,在USB接口的5V和DM之间接33K上拉电阻,即可识别。
分析一下老的USB-UART,3.3V和D-之间,有1.5K电阻上拉,新的,外围器件很少,没有外部上拉,只有内部上拉。
估计这个芯片内部上拉电阻阻值太大,或者上拉电源电压太低,显然,1.8V左右的高电平,部分USB集线器不认为是高电平。
在这里,介绍一下USB插入检测过程:
PC的每个USB端口,DP/DM有15K的下拉电阻,没有USB设备插入,DP/DM是低电平。
而在USB设备端,在DP或者DM上接了1.5K欧姆上拉电阻。
对于全速和高速设备,上拉电阻是接在DP上;而低速设备则是上拉电阻接在DM上。
当USB设备插入,5V上电后,内部VUSB上电,VUSB通过1.5K电阻接到DP或者DM,集线器发现DP或者DM高电平,
认为USB插入,开始识别流程。
看来,淘宝上的USB转UART,良莠不齐,也说明,没有技术的作坊式产品,质量是无法保证的。
一个连USB基本原理都不懂的企业,就敢生产USB相关产品,可能还是抄板的,可叹。
光叹息,也许有些初级工程师不理解,光给出结论没有分析过程也不行,那就给点实验测试数据呗。
准备一个USB数据线,找了一根手机一侧接触不良的数据线,剪断,黑色电线是GND,白色是DM,
白色上串联一个200欧姆电阻,暂时找不到1.5K的,这会导致测试误差,不影响结论分析。
黑色接稳压电源负极,200欧姆电阻一侧接电源正极。
插入到一个USB集线器,电压从1.6V开始慢慢往上调节,1.9V时PC显示有外设插入,再电压慢慢调低,
到1.65V,PC显示设备拔出,大约0.25V的回差。
去掉USB集线器,直接插PC的USB端口,继续测试,电压从1.2V开始慢慢往上调节,1.43V时PC显示有外设插入,
再电压慢慢调低,到1.25V,PC显示设备拔出,大约0.18V的回差。
这下,即使初级工程师,也会明白为何PC端口可以识别,而USB集线器无法识别,检测门限有差别。
在这里,我问一下那些钻研MCU和数字电路的工程师,有几个测试过斯密特输入的高低电平门限值和回差?
所谓的硬件兼容性不好,你认为会是什么原因?肯定是设计的原因,没有考虑不同设备、温度等因素。
|
有几个测试过斯密特输入的高低电平门限值和回差 深有体会,有问题才会测试