漏极开路上拉电阻取值为何不能很大或很小?
假如上拉电阻值过小,Vcc灌入端口的电流(Ic)将较大,这样会导致MOS管V2(三极管)不完全导通(Ib*β
,有饱和状况变成扩大状况,这样端口输出的低电平值增大(i2c协议规则,端口输出低电平的最高答应值为0.4v)。
假如上拉电阻过大,加上线上的总线电容,因为RC影响,会带来上升时刻的增大(下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢),并且上拉电阻过大,即引起输出阻抗的增大,当输出阻抗和负载的阻抗能够比较的时,则输出的高电平会分压而削减。
I2C的上拉电阻能够是1.5K,2.2K,4.7K, 电阻的巨细对时序有必定影响,对信号的上升时刻和下降时刻也有影响,一般接1.5K或2.2K。
(试验:接入200K上拉电阻,成果观察到信号上升时刻增大,方波变成三角波)
I2C上拉电阻确认有一个计算公式:
Rmin={Vdd(min)-o.4V}/3mA
Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz
C是Bus capacitanceRp最大值由总线最大容限(Cbmax)决议,Rp最小值由Vio与上拉驱动电流(最大取3mA)决议;所以 Rpmin=5V/3mA≈1.7K(@Vio=5V)或许2.8V/3mA≈1K(@Vio=2.8V)。
Rpmax的取值:100Kbps总线的负载最大容限<=400pF;快速形式,400Kbps总线的负载最大容限<=200pF,依据详细运用状况、现在的器材制作工艺、PCB的走线间隔等要素以及标准的向下兼容性,规划中以快速形式为根底,即总线负载电容<200pF,也便是传输速度能够上到400Kbps是不成问题的。所以Rpmax能够取的规模是1.8K~7K @ Vio=5V对应50pF~200pF依据Rpmin与Rpmax的约束规模,一般取5.1K @ Vio=5V , 负载容限的环境要求也简单到达。在2.8V体系中,console规划选3.3K,portable/handset等低供耗的规划选4.7K献身速度交换电池运用时刻。
总的来说:电源电压约束了上拉电阻的最小值 ; 负载电容(总线电容)约束了上拉电阻的最大值。
弥补:在I2c总线能够串连300欧姆电阻RS能够用于防止SDA和SCL线的高电压毛刺: I2c从设备的数量受总线电容,<=400pF的约束。
上拉电阻阻值的确认
因为I2C接口选用OpenDrain机制,器材自身只能输出低电平,无法自动输出高电平,只能经过外部上拉电阻RP将信号线拉至高电平。因而I2C总线上的上拉电阻是有必要的!
RP不宜过小,一般不低于1KΩ
一般IO 端口的驱动才能在2mA~4mA量级。假如RP阻值过小,VDD灌入端口的电流将较大,这样会导致MOS管不完全导通,有饱和状况变成扩大状况,这样端口输出的低电平值增大(I2C协议规则,端口输出低电平的最高答应值为0.4V);假如灌入端口的电流过大,还或许损坏端口。故一般上拉电阻应选取不低于1KΩ的电阻(当VDD=3V时,灌入电流不超越3mA)。
RP不宜过大,一般不高于10KΩ
因为端口输出高电平是经过RP完结的,线上电平从低到高改变时,电源经过RP对线上负载电容CL充电,这需求必定的时刻,即上升时刻。端口信号的上升时刻可近似用充电时刻常数RPCL乘积表明。
信号线负载电容(对地)由多方面组成,包含器材引脚、PCB信号线、连接器等。假如信号线上挂有多个器材,负载电容也会增大。比方总线规则,关于的400kbps速率运用,信号上升时刻应小于300ns;假定线上CL为20PF,可计算出对应的RP值为15KΩ。
假如RC充电时刻常数过大,将使得信号上升沿改变缓慢,达不到数据传输的要求。因而一般运用中选取的都是几KΩ量级的上拉电阻,比方都选取4K7的电阻。小阻值的RP电阻增大了端口Sink电流,故在或许的状况下,RP取值应稍大一点,以削减耗电。别的,通产状况下,SDA,SCL两条线上的上拉电阻取值是共同的,并上拉到同一电源上。
PCB布局布线与抗搅扰规划
I2C信号线归于低速操控线,在手机PCB规划时,按一般的操控IO对待即可,无需做特别的维护规划,一般不必忧虑遭到噪声源搅扰。
但在一些特定的状况下,比方折叠、滑盖机型中,I2C的两根信号线需求经过转轴或滑轨处的FPC,此刻因为信号途径比较长,间隔天线比较近,并且Opendrain的输出级对地阻抗大,对搅扰比较灵敏,因而比较简单遭到RF信号源的搅扰。在这种状况下,就应恰当留意对I2C信号线的维护。比方I2C两条信号线(SDA,SCL)等长度地平行走线,两头加地线进行维护,防止接近层呈现高速信号线等。
上拉电阻应安顿在OD输出端邻近。当I2C总线上主从器材(Master &
Slave)两头均为OD输出时,电阻放置在信号途径的中心方位。当主设备端是软件模仿时序,而从设备是OD输出时,应将电阻安顿在接近从设备的方位。
I2C协议还界说了串联在SDA、SCL线上电阻Rs。该电阻的作用是,有用按捺总线上的搅扰脉冲进入从设备,进步可靠性。这个电阻的挑选一般在100~200ohm左右。当然,这个电阻并不是有必要的,在恶劣噪声环境中,能够选用。
比方常用的FM
接纳模块或许Capsense接触感应功能块,都是经过I2C接口操控的。I2C接口信号从处理器动身,经过PCB上的信号途径,进入上述电路单元。I2C信号线上载有必定搅扰,这种搅扰尽管起伏并不很大,但仍是会影响灵敏的FM接纳模块或Capsense接触感应功能块。此刻,能够经过在接近FM模块或接触感应模块的I2C信号线上串接Rs电阻,即可有用下降搅扰的影响。此外,上拉电阻端的电源也要进行退耦处理。
软件模仿I2C时序
因为一般的I2C运用速率并不高(400kbps),运用处理器的IO口模仿I2C波形,完全能够担任(处理器一般担任Master,占有I2C通讯的操控权,无需忧虑随机的I2C通讯服务中止其他使命的履行)。
处理器分配给I2C使命的IO口,要求能够输出凹凸电平,还能装备为输入端口。处理器依据总线标准以及从设备的时序要求,运用2条IO信号线,模仿I2C接口时序波形,进行I2C通讯。
处理器发送数据时,经过IO口输出高电平,上升时刻根本与外部上来电阻阻值无关,且比用外部上拉电阻上拉到高电平快许多。处理器在承受数据时,即使上拉电阻阻值选的大一些,从设备输出数据的波形上升沿缓慢,但因为处理器运用软件采样的而非硬件采样,因而,对数据传输的成果并不影响。也便是说,运用IO口模仿I2C时序时,上拉电阻阻值能够恰中选的大一些。
需求指出的是,运用软件模仿最多只能完结单Master的运用,关于多Master运用,因为需求进行总线操控权的裁定办理,运用软件模仿的办法很难完结。
I2C总线闲暇的时分,两条信号线应该保持高电平。不然,上拉电阻上会有耗电。特别是在上电过程中,IO线上电平也应保持在高电平状况。也便是说:当Master的I2C运用的是IO软件模仿时,必定要确保该两个IO上电默许均为输入(或高阻)或许输出高电平,切不可默许为输出低电平。IO默许为输入时,能够经过外部上拉电阻将I2C信号线拉至高电平。
I2C运用中上拉电阻电源问题
在部平分运用中,还存在主从设备以及上拉电阻电源不共同的状况,比方Camera模组。在许多规划方案中,Camera模组不作业时,并不是进入PowerDown形式,而是直接封闭模组供电VDDS。此刻,处理器与模组相互连接的一切信号线都应该进入高阻态,不然就会有电流漏入模组;而关于此刻的I2C操控信号线来说,因为上拉电阻的存在,有必要关断上拉电阻电源VDDP。假如上拉电阻运用的是体系电源VDDM(VDDP=VDDM),无法封闭,就会有漏电流进入模组;因而这种状况下,应该运用VDDS作为上拉电阻电源(VDDP=VDDS),这样上拉电阻电源与Slave电源即可一起封闭,切断了漏电途径。
别的需求留意的是,在上述运用实例中挑选的IO,应该选取上电默许为输入(或高阻)才行。