I2C 总线为什么要接上拉电阻?

1分钟前阅读1回复0
kanwenda
kanwenda
  • 管理员
  • 注册排名1
  • 经验值174425
  • 级别管理员
  • 主题34885
  • 回复0
楼主

I2C汇流排为何要接下拉阻抗

1、按照I2C汇流排标准化,汇流排空余时两根线都要为高;

那是明白规定,动不了的,否则什么叫国际尺度呢?只不外所谓的那个神圣的国际尺度也并非多么圣热尔韦县,你想啊,只要是高的才气伏毛低的,莫非谁能把低的伏毛高的吗?所以那是之所以明白规定空余时要为高的一个原因,就算连结“低”否则,那是不成能将成为“多主”汇流排的。

2、下拉阻抗的难题;

只不外各个I2CUSB工做时只检测高、高阻抗,管你有没有什么下拉阻抗呢!

但难题是,你就算间接PT5716SB0的来同时实现高否则,一旦其他电子元件推高时岂不危险?

所以,那个下拉阻抗有为庇护感化。假设你确信间接PT5716SB0没难题(好比说有漏电为庇护等,呵呵),也能碰运气,难题的关键性是主电子元件要能准确的推高或置高,从电子元件要能明白地域分高、低就能了,那是难题的关键性,当然,还有排程难题,不克不及紊乱!

STM32f103的I2C解释器:

理论上,软件IIC能利用任何通用插口。

有人用PA2和PA3停止IIC通信。

3、阻抗大小纷歧的难题;

最间接的,牵扯两方面的难题,起首是耗电的难题,其次是速度的难题,二者是矛盾的!假设你想尽量进步速度,所以就牵扯汇流排电感的难题,只不外很容易理解,下拉阻抗与汇流排的电感构成了RC,高速时将间接影响通信!因为汇流排拉高时有个电池天数以及高阻抗的danger,假设还没有电池到足以包管从电子元件能识此外高阻抗的danger北莫伯电子元件就认为完成了一个汇流排动做否则,所以通信必定是不克不及停止的!

假设你想尽量将开关电源,所以就要尽量将减小阻抗以最小可能将的减小电路各部门的消耗电阻从而同时实现整体开关电源!但不成能将无限大,不然电池天数你会受不了的!

附注:

I2C的下拉阻抗能是1.5K,2.2K,4.7K, 阻抗的大小纷歧对排程有必然影响,对讯号的发射率和下降天数也有影响,凡是接1.5K或2.2K

I2C下拉阻抗确认有一个计算办法:

Rmin={Vdd(min)-0.4V}/3mA

Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz

C是Bus capacitance

Rp最小值由汇流排最小曲线拟合(Cbmax)下定决心,Rp最小值由Vio与下拉驱动电阻(最小取3mA)下定决心;

只好 Rpmin=5V/3mA≈1.7K(@Vio=5V)或者2.8V/3mA≈1K(@Vio=2.8V)

Rpmax的值域:参考周公的I2C汇流排标准化中文版P33图39与P35图44

国际尺度贸易形式,100Kbps汇流排的阻抗最小曲线拟合<=400pF;加速贸易形式,400Kbps汇流排的阻抗最小曲线拟合<=200pF,按照详细利用情况、目前的电子元件造造工艺、PCB的定线间隔等因素以及国际尺度的向下相容性,设想中以加速贸易形式为根据,即汇流排阻抗电感<200pF,也就是传输速度能上到400Kbps是不成难题的。只好Rpmax能取的范畴是1.8K~7K @ Vio=5V相联系关系50pF~200pF

下拉阻抗电阻值确实认

因为I2CUSB接纳Open Drain机造,电子元件自己底子无法输入高阻抗,无法主动输入高阻抗,底子无法透过外手下拉阻抗RP将传输线弹离高阻抗。因而I2C汇流排上的下拉阻抗是要的!

RP切忌过小,凡是不高于1KΩ

凡是IO路由器的驱动才能在2mA~4mA数量级。假设RP电阻值过小,VDD注满路由器的电阻将较大,那招致路由器输入的高阻抗值减小(I2C协议明白规定,路由器输入高阻抗的更高输入电阻为0.4V);假设注满路由器的电阻极重,还可能将损坏路由器。故凡是下拉阻抗应拔取不高于1KΩ的阻抗(当VDD=3V时,注满电阻不超越3mA)。

RP切忌极重,凡是不高于10KΩ

因为路由器输入高阻抗是透过RP同时实现的,线上阻抗从低到高变革时,电源透过RPED500上阻抗电感CL电池,那需要必然的天数,即发射率。路由器讯号的发射率可近似用电池丈量误差RPCL平方根暗示。

传输线阻抗电感(对地)由多方面构成,包罗电子元件插口、PCB传输线、插座等。假设传输线上挂有多个电子元件,阻抗电感也会减小。好比说汇流排明白规定,关于的400kbps速度应用,讯号发射率应小于300ns;假设线上CL为20PF,可计算出相联系关系的RP值为15KΩ。

假设RC电池丈量误差极重,将使得讯号上升沿变革迟缓,达不到数据传输的要求。

因而凡是应用中拔取的都是几KΩ数量级的下拉阻抗,好比说都拔取4K7的阻抗。

小电阻值的RP阻抗减小了路由器Sink电阻,故在可能将的情况下,RP值域应稍大一点,以削减耗电。别的,通产情况下,SDA,SCL两条线上的下拉阻抗值域是一致的,并下拉到统一电源上。

PCB规划布线与抗干扰设想

I2C传输线属于低速控造线,在手机PCB设想时,按凡是的控造IO看待即可,无需做出格的为庇护设想,凡是不消担忧遭到噪声源干扰。

但在一些特定的情况下,好比说折叠、滑盖机型中,I2C的两根传输线需要透过转轴或滑轨处的FPC,此时因为讯号途径比力长,间隔天线比力近,并且Open drain的输入级对地阻抗大,对干扰比力敏感,因而比力容易遭到RF讯号源的干扰。在那种情况下,就应恰当留意对I2C传输线的为庇护。好比说I2C两条传输线(SDA,SCL)等长度地平行定线,两边加地线停止为庇护,制止临近层呈现高速传输线等。

下拉阻抗应安设在OD输入端附近。当I2C汇流排上主从电子元件(Master& Slave)两头均为OD输入时,阻抗放置在讯号途径的中间位置。当主设备端是软件模仿排程,而从设备是OD输入时,应将阻抗安设在靠近从设备的位置。

I2C协议还定义了串联在SDA、SCL线上阻抗Rs。该阻抗的感化是,有效按捺汇流排上的干扰脉冲进入从设备,进步可靠性。那个阻抗的选择凡是在100~200ohm摆布。当然,那个阻抗并非要的,在恶劣噪声情况中,能选用。

好比说常用的FM领受模块或者Capsense触摸感应功用块,都是透过I2CUSB控造的。I2CUSB讯号从处置器动身,颠末PCB上的讯号途径,进入上述电路单位。I2C传输线上载有必然干扰,那种干扰固然幅度其实不很大,但仍是会影响敏感的FM领受模块或Capsense触摸感应功用块。此时,能透过在靠近FM模块或触摸感应模块的I2C传输线上串接Rs阻抗,即可有效降低干扰的影响。此外,下拉阻抗端的电源也要停止退耦处置。

软件模仿I2C排程

因为凡是的I2C应用速度其实不高(400kbps),利用处置器的IO口模仿I2C波形,完万能胜任(处置器凡是担任Master,占有I2C通信的控造权,无需担忧随机的I2C通信办事中断其他使命的施行)。

处置器分配给I2C使命的IO口,要求能输入高高阻抗,还能设置装备摆设为输入路由器。处置器按照汇流排标准化以及从设备的排程要求,操纵2条IO传输线,模仿I2CUSB排程波形,停止I2C通信。

处置器发送数据时,透过IO口输入高阻抗,发射率根本与外部上来阻抗电阻值无关,且比用外手下拉阻抗下拉到高阻抗快良多。处置器在承受数据时,即使下拉阻抗电阻值选的大一些,从设备输入数据的波形上升沿迟缓,但因为处置器利用软件采样的而非硬件采样,因而,对数据传输的成果其实不影响。也就是说,利用IO口模仿I2C排程时,下拉阻抗电阻值能恰当选的大一些。

需要指出的是,利用软件模仿最多底子无法完成单Master的应用,关于多Master应用,因为需要停止汇流排控造权的仲裁办理,利用软件模仿的办法很难完成。

I2C汇流排空余的时候,两条传输线应该维持高阻抗。不然,下拉阻抗上会有耗电。出格是在上电过程中,IO线上阻抗也应连结在高阻抗形态。也就是说:当Master的I2C利用的是IO软件模仿时,必然要包管该两个IO上电默认均为输入(或高阻)或者输入高阻抗,切不成默认为输入高阻抗。IO默认为输入时,能透过外手下拉阻抗将I2C传输线弹离高阻抗。

I2C应用中下拉阻抗电源难题

在部平分应用中,还存在主从设备以及下拉阻抗电源纷歧致的情况,好比说Camera模组。在良多设想计划中,Camera模组不工做时,并非进入Power Down贸易形式,而是间接封闭模组供电VDDS。此时,处置器与模组彼此毗连的所有传输线都应该进入高组态,不然就会有电阻漏入模组;而关于此时的I2C控造传输线来说,因为下拉阻抗的存在,要关断下拉阻抗电源VDDP。假设下拉阻抗利用的是系统电源VDDM(VDDP=VDDM),无法封闭,就会有漏电阻进入模组;因而那种情况下,应该利用VDDS做为下拉阻抗电源(VDDP=VDDS),如许下拉阻抗电源与Slave电源即可同时封闭,割断了漏电途径。

别的需要留意的是,在上述应用实例中选择的IO,应该拔取上电默认为输入(或高阻)才行。

总的来说:电源电压限造了下拉阻抗的最小值 ;阻抗电感(汇流排电感)限造了下拉阻抗的最小值

弥补: 在I2c汇流排能串连300欧姆阻抗RS能用于避免SDA和SCL线的高电压毛刺: I2c从设备的数量受汇流排电感,<=400pF的限造

做过I2C碰着过各类难题,多半是下拉阻抗或者控造器时钟的难题。没下拉阻抗或者下拉阻抗极重,城市招致不不变而呈现寻址不到的难题。

0
回帖 返回数码

I2C 总线为什么要接上拉电阻? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息