• USB线上/串口/I2C引脚串联电阻的作用


    对引脚的保护。

    第一是阻抗匹配。因为信号源的阻抗很低,跟信号线之间阻抗不匹配,串上一个电阻后,可改善匹配情况,以减少反射,避免振荡等。

    第二是可以减少信号边沿的陡峭程度,从而减少高频噪声以及过冲等。因为串联的电阻,跟信号线的分布电容以及负载的输入电容等形成一个RC 电路,这样就会降低信号边沿的陡峭程度。大家知道,如果一个信号的边沿非常陡峭,含有大量的高频成分,将会辐射干扰,另外,也容易产生过冲。

    问一:看原理图时,经常会看到串一些小电阻,如22/27/33/100欧姆,但也不是一定要串。同样场合有的串,有的不串。请哪位高人指点一下吧?  
    A答:若是高速信号线上串小电阻,即为终端阻抗匹配。如果是GPIO口上串了小电阻(/100 欧姆 ),可能是抗小能量电压脉冲的。


    简单的例子:一个串口通讯的提示信号,当接上串口时,因为瞬间的插拔产生了一个很窄的电压脉冲,如果这个脉冲直接打到GPIO口,很可能打坏芯片,但是串了一个小电阻,很容易把能力给消耗掉。如果脉冲是5mA 5.1V,那么过了30ohm后就是5v左右了...(这里我不是很理解了,如果脉冲是1KV,如何?这个小电阻能行么?望高手指点.)


    B继续:严格来讲,当高速电路中,阻抗匹配,信号在传输介质上的传输时间大于信号上升沿或者下降沿的1/4时,该传输介质就需要阻抗匹配。防止电压脉冲对芯片的影响!


    一般当PCB走线的长度大于其传输信号的波长的1/10时,我们就就需要考虑阻抗匹配。(也不懂,不过听说,应该是电磁学里面讲的,我没学电磁学....以后学习)
    100MHz以上的高速数字电路就可以考虑阻抗匹配了


    C答:主要是基于阻抗匹配方面的考虑,以达到时序统一,延迟时间,走线电容等不会超过范围!原因在于LAYOUT时可能走线方面不是很匹配!


    问二:在高速信号中经常可以看到在信号线上串小电阻,请问在LAYOUT时应该把它放在CPU端还是放在信号的终端好些呢?看过一些centrality GPS公版方案中是放在CPU端,但也看到其他的原理图是放在信号的终端,请求理论支持!


    A答:一般的做法是在信号源端串小电阻,在信号终端并一个小电阻。在信号源端串一个小电阻,没有公式的理论:一般传输线的特征阻抗为50欧姆左右,而TTL电路输出电阻大概为13欧姆左右,在源端串一个33欧姆的电阻,13+33=46大致和50相当,这样就可以抑制从终端反射回来的信号再次反射。(传输线的特征阻抗,得查查...)。在信号接收终端并一个小电阻,没有公式的理论:若信号接收端的输入阻抗很大,所以并接一个51欧姆的电阻,电阻另一端接参考地,以抑制信号终端反射。信号接收终端串接电阻,从抑制信号反射的角度考虑,只有终端输入的电阻小于50欧姆。但IC设计时,考虑到接收能量,不会将接收端的输入电阻设计得小。(这个反射,到底是如何理解?能量反射,有了解的朋友解答一下)。在信号线上串一个电阻,可能还有一个用途:ESD。如在USB接口上,靠USB PORT端的D+和D-上串一个小电阻,如10欧姆。就是因为USB PORT端的ESD过不了。


    B答:一般高速数字信号传输线上会串电阻,目的是解决阻抗匹配问题,阻抗不匹配会导致信号反射,电磁波类似光一样在同一种介质中传播方向和能量不会衰减,但如果光从一种介质发射到另外一种介质的时候会发生反射和折射现象,那么光到达终端的能量会衰减很多吧。同理高速数字信号从源端向终端传输过程中由于连接线或者PCB LAYOUT的原因导致部分阻抗不连续(比如要求传输线阻抗为100欧,但是PCB有的部分是100欧,但是中途打过孔或者线宽发生变化就会引起阻抗的不连续)就会导致信号反射,反射的信号在传输线中又会与原信号叠加,信号被干扰了,终端接收这样的信号解码会出错。USB接口上串的电阻就是此用途,一般来说,如果LAYOUT比较好此电阻贴0欧没问题的,而且如果USB只是传输低速信号也不会有问题,阻抗要求也没那么严格。但是如果传输的是高速USB信号且LAYOUT有问题那么串个小电阻可能会解决误码的问题。ESD器件一般都是通过一定的路径或者方式将静电尽可能的导入地或者电源而避免对芯片的影响,所以ESD器件有一端肯定是接地的,而不是串在电路中。

  • 相关阅读:
    Python随笔之字典Dict
    Python随笔之列表List
    Python基础整理,懒得分类了,大家对付看看吧
    shell批量推送公钥脚本
    Xcode 切换target 之后打包失败
    百度导航sdk错误日志
    前端项目中去掉替换双引号
    taro3.x项目中引用taro-ui以及taro-iconfont-cli
    taro
    JS中some() every() forEach() map() filter()的区别
  • 原文地址:https://www.cnblogs.com/duwenqidu/p/11046619.html
Copyright © 2020-2023  润新知