I2C总线上拉电阻计算

发布于:2024-06-03 ⋅ 阅读:(170) ⋅ 点赞:(0)

I2C 总线上拉电阻计算

I2C接口的上拉电阻计算是一个常见问题。本文介绍如何使用简单的方程式进行计算。

1 介绍

I2C通信标准是当今电子系统中应用最广泛的芯片间通信标准。它是一种漏极开路/集电极开路通信标准,这意味着可以连接具有不同电源轨的集成电路 (IC) 进行通信。上拉电阻需要从I2C线路连接到电源,以实现通信,如图1所示。上拉电阻器在漏极开路接口未将线路驱动至低电平时将线路拉高。上拉电阻的值是 I2C 系统的重要设计考虑因素,因为不正确的值会导致信号丢失。在本文中,我们将介绍上拉电阻计算的简单方程,系统设计人员可以使用这些方程对他们的设计进行快速计算。
不同IC之间以及I2C总线上拉电阻器之间的I2C通信

图 1.应用示例显示系统上不同IC之间以及I2C总线上拉电阻器之间的I2C通信

2 上拉电阻计算

强上拉(小电阻)可防止 IC 上的 I2C 引脚驱动至低电平。IC的输入缓冲器可读取为有效逻辑低电平的VOL电平决定了最小上拉电阻[RP(min)]。RP(min) 是 VCC、VOL (max) 和 IOL 的函数:

RP(min)=(VCC-VOL(max))/IOL

由于 I2C 标准上升时间规格,最大上拉电阻受总线电容 (Cb) 的限制。如果上拉电阻值过高,则 I2C 线在被拉低之前可能不会上升到逻辑高电平。从时间 t = 0 开始,RC 电路对幅度为 VCC 的电压阶跃的响应由时间常数 RC 表征。电压波形可以写成:

在这里插入图片描述

对于 VIH = 0.7 × VCC:
在这里插入图片描述

对于 VIL = 0.3 × VCC:
在这里插入图片描述

I2C 总线的上升时间可以写成:

tr = t2-t1 = 0.8473×Rp×Cb

最大上拉电阻是最大上升时间 (tr) 的函数:

Rp(max) = tr (0.8473xCb)

其中 I2C 规范的参数列在表 1 中。

表 1.来自 I2C 规范的参数

参数 标准模式(Max) 快速模式(Max) 快速模式增强(Max) 单位
tr SDA 和 SCL 信号的上升时间 1000 300 120 ns
cb 每条总线的容性负载 400 400 550 pF
Vol 低电平输出电压(3 mA电流吸收时,VCC > 2 V) 0.4 0.4 0.4 V
低电平输出电压(2 mA电流吸收时,VCC ≤ 2 V) 0.2 × VCC 0.2 × VCC V

RP (min) 在图 2 中绘制为 VCC 的函数。在图3中,标准模式和快速模式I2C的RP (max)绘制为Cb的函数。


最小上拉电阻 [RP (min)] 与上拉基准电压 (VCC) 的关系

VoL = 0.2 xVcc,loL = 2 mA when Vcc <= 2 V
VoL = 0.4 V,loL = 3 mA when Vcc > 2V
图2.最小上拉电阻 [RP (min)] 与上拉基准电压 (VCC) 的关系

最大上拉电阻 [RP (max)] 与总线电容 (Cb) 的关系

Standard-mode (fscL= 100 kHz, tr = 1 us)
Fast-mode (fscL= 400 KHz, tr= 300 ns)
图3.最大上拉电阻 [RP (max)] 与总线电容 (Cb) 的关系

3 速度与功耗的权衡

一旦选择了上拉电阻的最小值和最大值,就可以根据速度和功率预算之间的权衡来决定电阻值。由于RC延迟较小,较小的电阻器将提供更高的速度,而较大的电阻器将提供更低的功耗。

4 示例

对于具有以下参数的快速模式 I2C 通信,计算上拉电阻值。
Cb = 200 pF,VCC = 3.3 V
解:
取表 1 中的值:

I2C 通信上拉电阻计算
I2C 通信上拉电阻计算:

因此,我们可以在966.667 Ω和1.77 kΩ之间选择任何可用的电阻值。上拉电阻的值可以根据功耗和速度的权衡来选择。


网站公告

今日签到

点亮在社区的每一天
去签到