RK3568驱动指南|第十五篇 I2C-第167章 I2C上拉电阻

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。


【公众号】迅为电子

【粉丝群】258811263(加群获取驱动文档+例程)

【视频观看】嵌入式学习之Linux驱动(第十五篇 I2C_全新升级)_基于RK3568

【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板


第167章 I2C上拉电阻

I2C的硬件连接如下图所示:

可以看到在SDA数据线和SCL时钟线上都需要接一个上拉电阻,在本章中将会讲解为什么这里要接一个上拉电阻,以及上拉电阻如何计算。

167.1 接上拉电阻的作用

SDA数据线和SCL时钟线上接一个上拉电阻的作用如下所示:

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

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

(2)实现线与功能

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

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

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

167.2 I2C上拉电阻阻值计算 

上拉电阻的最小值计算

(1)公式:

Rp(min) = (VDD - VOL(max)) / IOL

(2)各参数解释:

VDD: 通常为 5V 或 3.3V 等常用的供电电压,在iTOP-RK3568 开发板上为3.3V

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

 

IOL: 器件在低电平时的最大灌入电流,具体数值表格如下所示,通过VOL值为0.4,可以得到IOL在常规模式下和快速模式下的值为3ma。 

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

(3)计算步骤:

确定 VDD、VOL(max) 和 IOL 的值:

在RK3568中VDD为3.3V,所以VOL(max) =0.4V,对应的IOL为3mA

代入公式 Rp(min) = (VDD - VOL(max)) / IOL 计算得到上拉电阻的最小值。

Rp(min) = (3V - 0.4V) / 3mA = 966Ω

上拉电阻的最大值计算

  1. 公式

Rp(max) = 0.8473 * Cb / tr

(2)各参数解释:

Rp(max) 是上拉电阻的最大值

Cb 是总线电容

tr 是高电平上升时间,一般上升时间是从0.3VDD到0.7VDD,具体可以从数据手册获得,具体如下所示:

 

根据上图可以得到在标准模式下tr的取值为 ≤ 1000ns。

在快速模式下tr的取值为 ≤ 300ns。

在超快速模式下tr的取值为≤ 120ns。

(3)计算步骤:

I2C 工作在标准模式下,上拉电压是 3.3V,引脚电容是 10pF,连接电容是 30pF,高电平上升时间 tr = 1000ns,计算上拉电阻的最大值

总线电容 Cb = 10pF + 30pF = 40pF,然后将对应值代入公式: Rp(max) = 0.8473 * Cb / tr Rp(max) = 0.8473 * 40pF / 1000ns Rp(max) = 33.89 kΩ

具体选择

一般来说,I2C 总线速度越快,所需的上拉电阻值越小,具体选择如下所示:

400kbps: 一般选择 4.7k 上拉电阻

100kbps: 一般选择 10k 上拉电阻

1Mbps: 一般选择 2.2k 上拉电阻

当然上述选择未必正确,需要根据实际测试结果进行调整。在实际使用中,可以先根据经验选择一个上拉电阻值试用,无需过于纠结于计算公式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值