ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

深入理解 I²C:总线电容、上拉电阻、时钟拉伸与电平兼容性

深入理解 I²C:总线电容、上拉电阻、时钟拉伸与电平兼容性

在 I²C 硬件设计中,通信异常不一定是软件配置问题。总线电容过大、上拉电阻选择不合理、电平不兼容,都可能导致通信失败。

理解 I²C,不能只停留在通信时序,还需要从电气特性、RC 充放电、总线控制机制等方面分析。

本文重点讨论几个实际设计中容易遇到的问题。

一、为什么 I²C 的通信速率会受到总线电容限制?

I²C 的 SDA 和 SCL 通常采用开漏输出结构,并通过上拉电阻连接到电源。

这种结构有一个重要特点:

  • 输出低电平:器件主动将总线拉低。
  • 输出高电平:器件释放总线,由上拉电阻将总线拉高。

因此,I²C 总线的高电平不是由器件主动驱动产生的,而是通过上拉电阻对总线电容充电形成的。

1. 总线电容如何影响上升时间?

总线电容主要来自:

  • 芯片引脚的输入电容;
  • PCB 走线和过孔的寄生电容;
  • 连接器、线缆及其他器件带来的电容。

当器件释放总线后,上拉电阻开始给总线电容充电,其过程可以近似看作 RC 充电过程。

总线电压随时间变化:

V(t)=VDD(1−e−t/(RpCbus)) V(t)=V_{DD}\left(1-e^{-t/(R_pC_{bus})}\right)V(t)=VDD​(1−e−t/(Rp​Cbus​))

其中:

  • (R_p):上拉电阻;
  • (C_{bus}):总线等效电容;
  • (V_{DD}):上拉电源电压。

可以看出,上拉电阻越大、总线电容越大,电压上升越慢。

I²C 规范中的上升时间通常定义为总线电压从 30% 上升到 70% 所需的时间,可近似表示为:

tr≈0.8473RpCbus t_r \approx 0.8473R_pC_{bus}tr​≈

返回列表