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 上拉电阻

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/37853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot实现图片添加水印

提示&#xff1a;今日完成图片添加水印功能 后续可能还会继续完善这个功能 文章目录 目录 文章目录 前端部分 后端 Xml Controller层 Sercive层 Service实现层 Config配置层 application.properties 文件后缀名获取 常量定义 前端部分 <!DOCTYPE html> <htm…

WIN11,如何同时连接有线网络与WLAN无线网络

之前写了两篇文章&#xff0c;一篇是双网卡多网卡时win11如何设置网卡优先级_多网卡设置网卡优先级-CSDN博客 另一篇是win11 以太网和WLAN冲突 连接网线时导致WiFi掉线 解决_win11 以太网和wifi不能同时生效-CSDN博客 这篇是对上面两篇的补充&#xff1a;主要解决电脑重启后&…

语音芯片TD5580,USB小音响芯片—拓达半导体

有时候电脑的声卡会出现损坏的问题&#xff0c;给我们的生活带来了很多麻烦。这时候&#xff0c;我们就需要一款方便易用的产品来解决声卡问题。USB声卡小音响就是为了解决这个问题而设计的一款便捷的产品。它不仅可以作为一个小音响&#xff0c;让您在工作和娱乐的时候享受高品…

docker-compose搭建minio对象存储服务器

docker-compose搭建minio对象存储服务器 最近想使用oss对象存储进行用户图片上传的管理&#xff0c;了解了一下例如aliyun或者腾讯云的oss对象存储服务&#xff0c;但是呢涉及到对象存储以及经费有限的缘故&#xff0c;决定自己手动搭建一个oss对象存储服务器&#xff1b; 首先…

创建XCOM窗体和跳转连接

Xcom 窗体&#xff1a; (groupBox组合框&#xff0c;comboBox下拉框) xcom代码&#xff1a; namespace _01_作业 {// 1kb 1024B 1200B// 1MB public partial class Form1 : Form{public List<string> botelv new List<string> { "600","1200&…

如何使用 SPM 插件从 Pkl 配置文件生成 Swift 接口

文章目录 前言示例展示 Pkl 配置生成 Swift 绑定手动安装和使用 pkl-gen-swift创建 SPM 命令插件加载 Pkl 配置总结前言 Pkl(全称为 Pickle)是苹果推出的一种全新的专用于配置的编程语言。它允许开发人员通过类型和内置验证安全、直观地设计数据模型。 作为苹果语言,Pkl 有…

Python容器 之 列表--下标和切片

列表的切片 得到是 新的列表字符串的切片 得到是 新的字符串 如果下标 不存在会报错 list1 [1, 3.14, "hello", False] print(list1)# 获取 列表中 第一个数据 print(list1[0]) # 1# 获取列表中的最后一个数据 print(list1[-1]) # [False]# 获取中间两个数 即 3.1…

3.2ui功能讲解之graph页面

本节重点介绍 : graph页面target页面flags页面status页面tsdb-status页面 访问地址 $ip:9090 graph页面 autocomplete 可以补全metrics tag信息或者 内置的关键字 &#xff0c;如sum聚合函数table查询 instante查询&#xff0c; 一个点的查询graph查询调整分辨率 resolutio…

Study--Oracle-05-Oracler体系结构

一、oracle 体系概览 Oracle数据库的体系结构通常包括以下主要组件&#xff1a; 1、实例&#xff08;Instance&#xff09;&#xff1a;运行数据库的软件环境&#xff0c;包括内存结构&#xff08;SGA&#xff09;和进程结构&#xff08;Background Processes and User Proces…

Django 一对多关系

1&#xff0c;创建 Django 应用 Test/app9 django-admin startapp app9 2&#xff0c;注册应用 Test/Test/settings.py 3&#xff0c;添加应用路由 Test/Test/urls.py from django.contrib import admin from django.urls import path, includeurlpatterns [path(admin/,…

数据资产安全策略的定制化之道:深入了解各企业独特需求,量身打造个性化的数据资产保护方案,确保数据安全无虞,助力企业稳健发展

目录 一、引言 二、企业数据资产安全现状分析 &#xff08;一&#xff09;数据安全风险多样化 &#xff08;二&#xff09;传统安全措施难以满足需求 &#xff08;三&#xff09;企业数据资产安全意识亟待提高 三、定制化数据资产安全策略的重要性 &#xff08;一&#…

natvicat为什么连不上linux上的mysql?

老规矩&#xff0c;废话不多说&#xff0c;直接上教程。 号外&#xff0c;数据库管理工具领域的知名品牌Navicat&#xff0c;推出其免费版本——Navicat Premium Lite&#xff0c;用户可从Navicat官网下载体验这款软件。 https://www.navicat.com.cn/download/navicat-premium-…

【HALCON】如何实现hw窗口自适应相机拍照成像的大小

前言 在开发一个喷码检测软件的时候碰到相机成像和hw窗体的大小不一致&#xff0c;hw太小显示不完全成像的图片&#xff0c;这使得成像不均匀&#xff0c;现场辨别起来比较不直观&#xff0c;因此需要对其进行一个调整。 解决 省略掉读取图片的环节&#xff0c;我们只需要将…

ruoyi—cloud 新建模块+生成代码

1.复制一个模块——修改名字 2.打开模块下的yml文件&#xff0c;修改端口号和名字 &#xff08;1&#xff09;修改一个名字 &#xff08;2&#xff09;打开yml文件 &#xff08;3&#xff09;修改端口号&#xff0c;不要重复 &#xff08;4&#xff09;改名字和模块一致 3.…

41、web基础和http协议

web基础与http协议 一、web web&#xff1a;就是我们所说得页面&#xff0c;打开网页展示得页面。&#xff08;全球广域网&#xff0c;万维网&#xff09; world wide webwww 分布式图形信息系统 http&#xff1a;超文本传输协议 https&#xff1a;加密的超文本传输协议…

猫冻干可以天天喂吗?喂冻干前要了解的必入主食冻干榜单

近年来&#xff0c;冻干猫粮因其高品质而备受喜爱&#xff0c;吸引了无数猫主人的目光&#xff0c;对于像我这样的养猫达人来说&#xff0c;早已尝试并认可了冻干喂养。然而&#xff0c;对于初入养猫行列的新手们来说&#xff0c;可能会有疑问&#xff1a;什么是冻干猫粮&#…

Qt——界面优化

目录 QSS 基本语法 QSS 设置方式 指定控件样式设置 全局样式设置 文件加载样式表 Qt Designer 编辑样式 选择器 子控件选择器 伪类选择器 样式属性 盒模型 控件样式 按钮 复选框 单选框 输入框 列表 菜单栏 登录界面 绘图 概念 绘制形状 绘制线段 绘制…

微信换手机号了怎么绑定新手机号?

微信换手机号了怎么绑定新手机号&#xff1f; 1、在手机上找到并打开微信&#xff1b; 2、打开微信后&#xff0c;点击底部我的&#xff0c;并进入微信设置&#xff1b; 3、在微信设置账号与安全内&#xff0c;找到手机号并点击进入&#xff1b; 4、选择更换手机号&#xff0c…

淘系-万相台无界实操运营课:淘系 付费工具课(40节课)

课程目录 01_万相台无界系统性忖费推广思维.mp4 02_万相台无界七大推广场景详解.mp4 03关键词推广计划之标准计划搭建技巧.mp4 04_关键词推广之智能计划推广技巧.mp4 05_关键词推广之趋势选品计划推广技巧.mp4 06关键词推广之智能选品计划推广技巧.mp4 07_非标品的关键词…

待办工作如何在桌面分区显示

在现代快节奏的工作环境中&#xff0c;我们每天都要处理大量的待办事项。面对这些繁多的事项&#xff0c;很多人常常感到无从下手&#xff0c;导致工作任务堆积&#xff0c;影响工作效率。那么&#xff0c;如何在繁杂的事项中保持清晰&#xff0c;让工作更有条理呢&#xff1f;…