B-1.23 协议分析--I2C串联保护电阻和上拉电阻的选择

本文详细探讨了I2C接口设计中的关键要素——上拉电阻的选择原则及其对信号质量的影响,包括最小值与最大值的计算方法,以及不同应用场景下的合理取值建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 中断,GPIO,I2C等一般都是OC或者OD门,芯片内部无上拉电阻时,则外部必须加上拉电阻才能输出高电平。一般I/O端的驱动能力在2~4mA量级,OC或者OD门的导通电压为0.4V左右,手机中加在上拉电阻上的电压一般都是2.8V,上拉电阻的最小值不能低于800R(2.8-0.4V/3mA=0.8K),5V电压时,则不能低于1.5K(5-0.4V/3mA=1.5K)。中断和GPIO信号本身,只需要产生一个高电平即可,不需要驱动设备,上拉电阻可以取大点,减小功耗,但须注意上拉电阻不能太大,否则会和PCB走线,器件等负载电容影响信号上升时间。经验值一般在4.7~100K之间。

    I2C上拉电阻阻值计算:

    I2C的接口一般都是OD机制,同样需要加上拉电阻才能输出高电平。上拉电阻的最小值须符合上文。下面计算下上拉电阻的最大值。

    

 I2C总线图

    I2C总线的传输速率分为标准模式(100Kbit/s)和快速模式(400Kbit/s),负载的最大容限分别是400pF和200pF,根据I2C总线协议,上拉电阻的最大值被总线电容所限制。

    下面两个图可以看出上拉电阻的取值(Rs是I2C设备串联在I2C总线上的电阻,可以防止SDA和SCL的高电压毛刺波,例如电视的显像管击穿产生的高压毛刺)

  

    由上图可以看出,上拉电阻的最小值由上拉电源决定,最大值由总线电容决定。

    最大值网上有个计算公式,Rmax=T/0.874*C,C=200pF时,T=1us;C=400pF时,T=0.3us。但是根据这个公式计算出来的值都不怎么对,另外常数0.874怎么来的?请懂得人指教下。手机等低功耗设备一般选择4.7K。



如果上拉电阻值过小,VDD灌入端口的电流(Ic)将较大,这样会导致MOS管(三极管)不完全导通(Ib*β<Ic),有饱和状态变成放大状态,这样端口输出的低电平值增大(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 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

根据Rpmin与Rpmax的限制范围,一般取5.1K @ Vio=5V , 负载容限的环境要求也容易达到。在2.8V系统中,console设计选3.3K,portable/handset等低供耗的设计选4.7K牺牲速度换取电池使用时间

总的来说:电源电压限制了上拉电阻的最小值 ; 负载电容(总线电容)限制了上拉电阻的最大值

补充:在I2c总线可以串连300欧姆电阻RS可以用于防止SDA和SCL线的高电压毛刺

      : I2c从设备的数量受总线电容,<=400pF的限制

 

 

 

上拉电阻阻值的确定

由于I2C接口采用Open Drain机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻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,此时由于信号路径比较长,距离天线比较近,而且Open drain的输出级对地阻抗大,对干扰比较敏感,因此比较容易受到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模组不工作时,并不是进入Power Down模式,而是直接关闭模组供电VDDS。此时,处理器与模组相互连接的所有信号线都应该进入高阻态,否则就会有电流漏入模组;而对于此时的I2C控制信号线来说,由于上拉电阻的存在,必须关断上拉电阻电源VDDP。如果上拉电阻使用的是系统电源VDDM(VDDP=VDDM),无法关闭,就会有漏电流进入模组;因此这种情况下,应该使用VDDS作为上拉电阻电源(VDDP=VDDS),这样上拉电阻电源与Slave电源即可同时关闭,切断了漏电路径。

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

              


1. 电源管理 锂电池与LM2596降压模块 锂电池需配合保护电路(过充/过放)使用,LM2596输出端需添加滤波电容(如 100 μ F 100μF电解电容 + 0.1 μ F 0.1μF陶瓷电容),确保电源稳定性。若系统需多电压等级(如舵机5V、传感器3.3V),建议分路降压或独立供电1。 电源走线 电源主干线需加粗(建议≥1mm宽度),避免压降;数字与模拟部分电源需隔离,通过磁珠或0Ω电阻连接。 2. 数字与模拟信号隔离 传感器分类布局 模拟信号传感器(MQ4、MQ7、DHT11):靠近MCU的ADC引脚布局,信号线尽量短,避免与高频线路(如ESP32S3CAM的WiFi信号)平行走线2。 数字信号传感器(光电传感器、舵机):可布局在PCB边缘,舵机电源单独引线,避免PWM信号干扰其他模块。 地平面分割 采用“单点接地”策略,数字地与模拟地通过跳线或0Ω电阻在电源入口处连接,减少地环路干扰4。 3. 高频与敏感模块处理 ESP32S3CAM布局 摄像头模块需远离模拟传感器,其高频信号线(如SDIO、PCLK)应走差分对,长度匹配,并用地线包裹屏蔽干扰5。 OLED显示屏 I2C或SPI信号线需短且等长,上拉电阻靠近MCU放置,避免信号反射。 4. 抗干扰措施 去耦电容配置 每个IC电源引脚就近放置 0.1 μ F 0.1μF陶瓷电容,ESP32STM32的VDD引脚额外添加10μF 10μF钽电容。 PWM信号滤波 舵机控制线串联 100Ω 100Ω电阻并联 0.1μF0.1μF电容,抑制高频噪声。 5. PCB布线细节 线宽与间距 电源线≥0.5mm,信号线≥0.2mm;高压(如舵机5V)与低压(传感器3.3V)线路间距≥1mm。 过孔与散热 大电流路径(如舵机供电)使用多个过孔并联;LM2596降压模块下方铺铜并添加散热孔。 6. 调试与测试 预留测试点 关键信号(ADC输入、PWM输出)预留测试焊盘,方便示波器测量。 分阶段通电 先测试电源模块,再依次接入MCU、传感器、执行器,避免短路风险。
最新发布
04-03
<think>好的,我现在要处理用户关于嵌入式硬件设计中电源管理、信号隔离及抗干扰措施的问题。用户具体想了解嵌入式系统电源管理与信号完整性设计方案,包括锂电池保护电路、LM2596降压模块应用、数字与模拟信号隔离方法以及高频模块布局技巧。首先,我需要整理这些方面的知识点,并确保回答符合之前的系统级指令,比如使用正确的中文、LaTeX格式,引用站内资料,并生成相关问题。 首先,关于电源管理部分,用户提到了锂电池保护电路LM2596的应用。锂电池保护电路需要防止过充、过放过流,这可能需要参考引用中的内容,比如引用[1]提到的充电控制逻辑温度等因素,引用[3]提到的旁路电容布局。LM2596作为降压模块,设计时需要注意输入输出电容、电感选择以及布局,这可能涉及到引用[3]中的滤波电容布局建议。 接下来是数字与模拟信号隔离。这部分需要考虑布局分隔、地平面分割、磁耦或光耦隔离,以及电源隔离。引用[3]提到的旁路电容布局靠近引脚的建议可能适用,尤其是数字部分的高频噪声抑制。 高频模块布局技巧包括缩短走线、阻抗匹配、电源去耦分层布线。这里需要引用[3]中的电容布局电源设计实例,比如多电容并联靠近引脚的要求。 在抗干扰措施方面,屏蔽、滤波接地处理是关键。可能需要结合引用[2]中的电源设计实例,比如使用电阻分压VCVS构造电源,以及引用[3]的滤波电容应用。 现在需要将这些内容结构化,分点回答,并自然地插入引用标记。同时,生成相关问题时要覆盖各个子主题,确保问题有针对性。 检查是否所有数学表达式都用$...$,比如提到电压公式可能需要用LaTeX。例如,LM2596的输出电压公式:$$V_{out} = 1.23 \times (1 + \frac{R_2}{R_1})$$。同时确保独立公式使用$$...$$,如上述例子。 最后,验证引用是否正确,比如锂电池保护部分引用[1],LM2596的旁路电容引用[3],电源设计实例引用[2][3]。同时,生成的相关问题需要覆盖每个主要部分,比如锂电池保护、LM2596设计、信号隔离方法、高频布局抗干扰措施。</think>### 嵌入式系统电源管理与信号完整性设计方案 #### 一、锂电池保护电路设计 1. **基础保护功能** - 过充保护:通过电压检测芯片(如DW01)控制MOSFET断开充电回路,阈值通常为$4.25 \pm 0.05V$[^1] - 过放保护:放电截止电压一般为$2.5 \sim 3.0V$,需配合低功耗设计以延长待机时间 - 过流保护:采用电流采样电阻(如$R=10mΩ$)结合比较器实现短路检测 2. **充电管理优化** - 使用专用芯片(如TP4056)实现恒流-恒压(CC-CV)充电,引用[1]中提到的温度监控需通过NTC电阻实现 - 布局要点:保护电路靠近电池接口,功率路径走线宽度≥1mm --- #### 二、LM2596降压模块应用实践 1. **关键参数设计** - 输出电压公式: $$V_{out} = 1.23 \times \left(1 + \frac{R_2}{R_1}\right)$$ 通常选$R_1=1kΩ$,$R_2$根据需求计算 - 电感选择: $$L = \frac{(V_{in} - V_{out}) \times V_{out}}{V_{in} \times \Delta I_L \times f}$$ 典型值$f=150kHz$,$\Delta I_L$取负载电流的20%~30% 2. **稳定性优化** - 输入电容≥47μF电解电容+100nF陶瓷电容(引用[3]规则D) - 输出电容需满足ESR要求(通常<0.5Ω),建议使用POSCAP或钽电容 --- #### 三、数字与模拟信号隔离方法 1. **物理隔离技术** - 布局分隔:数字与模拟区域间距≥5mm,中间铺铜接地 - 磁耦隔离:使用ADuM系列芯片实现高速信号隔离(速率可达100Mbps) - 光耦隔离:低速场景选用TLP281系列,CTR值需匹配驱动需求 2. **电源隔离设计** - 模拟部分采用独立LDO供电(如AMS1117-3.3) - 地平面通过0Ω电阻单点连接,避免地环路干扰 --- #### 四、高频模块布局技巧 1. **PCB层叠设计** - 四层板推荐结构: ``` Top Layer(信号) GND Plane Power Plane Bottom Layer(低频信号) ``` - 关键信号(如时钟线)走内层带状线 2. **阻抗控制与滤波** - 50Ω阻抗匹配:微带线宽度根据板材计算(FR4典型值$W=0.3mm@1.6mm$板厚) - 电源引脚去耦:按引用[3]规则,100nF陶瓷电容+10μF钽电容组合,容值小的更靠近引脚 --- #### 五、抗干扰强化措施 1. **屏蔽与滤波** - 敏感电路加装金属屏蔽罩,接地点间距≤λ/20 - 信号线入口处增加π型滤波器(如$10Ω+100nF$) 2. **接地优化** - 大电流路径单独设置PGND,通过开槽与其他地隔离 - 晶振下方禁止走线,周围铺铜接地 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值