RK3568平台(平台总线篇)I2C上拉电阻

一.I2C 硬件连接

I2C 总线在硬件上的连接非常简单,由 SDA、SCL 和上拉电阻构成, 在空闲状态下,SDA 和 SCL 一般被上拉电阻拉高,保持高电平状态,在需要进行数据传输 的时候,通过 SCL 和 SDA 的高低电平来产生 I2C 总线所需要的信号进行数据传递。

二.接上拉电阻的作用

(1)保证总线空闲时保持高电平

I2C 总线采用开漏/开集电极输出,当没有设备驱动总线时,总线会处于高阻态。如果不接上 拉电阻,总线电平将不确定,很容易受到噪声干扰。接上拉电阻可以确保总线空闲时保持稳定的 高电平。

(2)实现线与功能

I2C 总线允许多个设备挂载在同一总线上。当一个设备拉低总线时,其他设备的输出也会被 拉低。这就是线与功能,实现总线仲裁。如果不接上拉电阻,当总线空闲时电平不确定,一个设备 拉低总线时其他设备无法感知到总线电平变化,无法实现线与功能。

而这里的上拉电阻也并不能随意进行取值,需要考虑总线电容的影响。I2C 总线上存在各种 寄生电容,可以等效成一个 RC 充电电路。

当总线从低电平转为高电平时,需要通过上拉电阻为总线供电,充电总线电容,如果上拉电阻 取值过大,充电时间过长,会导致上升沿过慢,可能影响通信,如果上拉电阻取值过小,则无法产生 低电平,所以在 I2C 规范中要求总线电容不能超过 400PF,通常建议在 1k 至 10k 欧姆之间选择, 能够既保证上升沿速度,又能够可靠拉低总线电平。

三.I2C 上拉电阻阻值计算

上拉电阻的最小值计算:

(1)公式: Rp(min) = (VDD - VOL(max)) / IOL

(2)各参数解释: VDD: 通常为 5V 或 3.3V 等常用的供电电压,在RK3568开发板上为 3.3V.

VOL(max): 表示器件在低电平时的最大输出电压, 由于 VDD 为 3.3V,所以 VOL 的最大值为 0.4

IOL: 器件在低电平时的最大灌入电流.

Rp(min) 为上拉电阻的最小值.

上拉电阻的最大值计算:

(1)公式 Rp(max) = 0.8473 * Cb / tr

(2)各参数解释: Rp(max) 是上拉电阻的最大值 Cb 是总线电容.

tr 是高电平上升时间,一般上升时间是从 0.3VDD 到 0.7VDD.

相关推荐

  1. RK3568平台开发系列讲解(网络)netfilter框架

    2024-07-19 06:26:02       19 阅读
  2. RK3566 Android 11平台适配YT8512C 100M PHY

    2024-07-19 06:26:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 06:26:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 06:26:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 06:26:02       58 阅读
  4. Python语言-面向对象

    2024-07-19 06:26:02       69 阅读

热门阅读

  1. [web]-反序列化-绕过__wakeup(转)

    2024-07-19 06:26:02       20 阅读
  2. Golang 创建 Excel 文件

    2024-07-19 06:26:02       21 阅读
  3. 讲解js的call、apply和bind区别?

    2024-07-19 06:26:02       18 阅读