【干货】IIC通讯协议上拉电阻的选择与计算
发布网友
发布时间:2024-09-28 11:20
我来回答
共1个回答
热心网友
时间:2024-09-29 21:48
I2C总线为何需接上拉电阻
I2C总线在空闲时要求两根线都必须为高电平。这是I2C标准的一部分,确保总线具备“多主”能力。上拉电阻的存在提供了一种安全机制,防止直接连接电源导致的危险,确保信号稳定。如需测试,确保主器件能正确拉低或置高,从器件能明确区分高、低电平,同时注意时序问题,避免混乱。
电阻大小的考量
上拉电阻大小直接影响功耗与速度。提高速度需考虑总线电容,大电阻减小功耗,但过大会影响充电时间。一般推荐使用1.5K或2.2K的电阻。
I2C上拉电阻的计算公式
最小电阻值计算公式:Rmin = (Vdd(min) - 0.4V) / 3mA,最大电阻值计算公式:Rpmax = (T / 0.874) * C。具体值根据总线负载电容及工作频率确定,范围在50pF到200pF之间。
上拉电阻阻值的确定
考虑到I2C接口采用Open Drain机制,上拉电阻确保信号线在空闲时保持高电平。一般推荐阻值不低于1KΩ以平衡功耗与电流*。同时,阻值不宜过大,约10KΩ为上限,以保证信号线在高电平转换时的响应速度。
PCB布局与抗干扰设计
在手机PCB设计中,I2C信号线通常按控制IO对待,但折叠或滑盖机型中,由于信号路径长且与天线接近,容易受到干扰,因此需要适当保护信号线,如平行走线并加地线。
上拉电阻的安置位置
上拉电阻应靠近Open Drain输出端。当主从器件均为OD输出时,电阻应置于信号路径中间。若主设备端为软件模拟,从设备为OD输出,则应将电阻靠近从设备。
串联电阻Rs
I2C总线上的串联电阻Rs用于抑制干扰,提高可靠性。推荐值在100~200ohm之间。在噪声环境下,可适当增大以降低干扰影响。
软件模拟I2C时序
处理器通过IO口模拟I2C时序,可满足一般应用需求,上拉电阻阻值可适当大一些,而无需担心数据传输结果。对于多Master应用,软件模拟方法难以实现总线控制权管理。
I2C空闲状态与电源问题
I2C总线空闲时应维持高电平,避免上拉电阻耗电。上电过程中,保证I2C控制信号线为高电平状态。在某些应用中,需确保主从设备与上拉电阻电源一致,选择上电默认为输入的IO,以避免电流泄漏。
电源电压与负载电容*
电源电压决定了最小电阻值,负载电容*了最大电阻值。I2C总线允许串连不超过300欧姆的电阻RS,防止SDA和SCL线产生高电压毛刺。从设备数量受总线电容*,不超过400pF。