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

news2024/12/29 13:43:54

瑞芯微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.coloradmin.cn/o/1883244.html

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

相关文章

HTML如何在图片上添加文字

HTML如何在图片上添加文字 当我们开发一个页面,插入图片时,需要有一组文字对图片进行描述。那么HTML中如何在图片上添加文字呢?这篇文章告诉你。 先让我们来看下效果图: 句子“这是一张夜空图片”被放置在了图片的左下角。 那么…

SpringBoot整合Solr进行搜索(简单)

SpringBoot整合Solr进行搜索 创建SpringBoot项目pom中加入Solr依赖配置 Solr创建实体编写一个简单的ID查询打印结果 参考文章 创建SpringBoot项目 这里基于aliyun提供的快速构建一个项目。我们这主要是整合Solr。 pom中加入Solr依赖 maven下载地址 pom中加入以下内容&#x…

Redis分布式集群部署

目录 一. 原理简述 二. 集群配置​​​​​​​ 2.1 环境准备 2.2 编译安装一个redis 2.3 创建集群 2.4 写入数据测试 实验一: 实验二: 实验三: 实验四: 添加节点 自动分配槽位 提升节点为master: 实验…

如果使用Outlook 2024出现问题

大家好,才是真的好。 很多企业使用Domino服务器当作POP/IMAP邮箱服务器来使用,虽然这不能发挥Domino最佳效能,但也不失为一种简单用法。 另一种企业则使用Domino仅作为应用app平台,邮箱早已迁移至O365或其他平台,他们…

安装和微调大模型(基于LLaMA-Factory)

打开终端(在Unix或macOS上)或命令提示符/Anaconda Prompt(在Windows上)。 创建一个名为lora的虚拟环境并指定Python版本为3.9。 https://github.com/echonoshy/cgft-llm/blob/master/llama-factory/README.mdGitHub - hiyouga/…

.net8 Syncfusion生成pdf/doc/xls/ppt最新版本

新建控制台程序 添加包Syncfusion.Pdf.Net.Core包&#xff0c;当前官方的版本号为26.1.39 直接上代码 Syncfusion.Pdf.PdfDocument pdfDocument new Syncfusion.Pdf.PdfDocument(); for (int i 1; i < 10; i) {var page pdfDocument.Pages.Add();PdfGraphics graphics…

学习笔记(linux高级编程)9

void pthread_cleanup_push(void (*routine)(void *)&#xff0c; void *arg); 功能&#xff1a;注册一个线程清理函数 参数&#xff0c;routine&#xff0c;线程清理函数的入口 arg&#xff0c;清理函数的参数。 返回值&#xff0c;无 void pthread_cleanup_pop(int execute)…

Open3D 点云的旋转与平移

目录 一、概述 1.1旋转 1.2平移 二、代码实现 2.1实现旋转 2.2实现平移 2.3组合变换 三、实现效果 3.1原始点云 3.2变换后点云 一、概述 在Open3D中&#xff0c;点云的旋转和平移是通过几何变换来实现的。几何变换可以应用于点云对象&#xff0c;使其在空间中移动或旋…

navicat Lite 版

navicat Lite 版&#xff1a; Navicat 出了一个 Navicat Premium 的Lite版。 官方现在链接&#xff1a;https://www.navicat.com.cn/download/navicat-premium-lite#windows 从官网可以看到现在能够下载最新版本 17&#xff0c;支持各种平台

HSP_11章 Python面向对象编程oop_进阶部分

文章目录 P118_119 Python_封装1. 面向对象编程特征2. 封装介绍3. 封装的细节和好处4. 私有成员5. 代码演示5. 注意事项和使用细节5.1伪私有属性 P120 Python_继承快速入门1. 为什么需要继承2. 继承的基本介绍3. 继承的示意图 4. 继承的基本语法 P121 Python_继承的注意事项和细…

1.5 Canal 数据同步工具详细教程

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法

线性二次调节器&#xff08;Linear Quadratic Regulator&#xff0c;LQR&#xff09;是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下&#xff0c;线性系统在LQR 控制方法中用状态空间方程描…

工程化:Commitlint / 规范化Git提交消息格式

一、理解Commitlint Commitlint是一个用于规范化Git提交消息格式的工具。它基于Node.js&#xff0c;通过一系列的规则来检查Git提交信息的格式&#xff0c;确保它们遵循预定义的标准。 1.1、Commitlint的核心功能 代码规则检查&#xff1a;Commitlint基于代码规则进行检查&a…

16_C语言编程基础

目录 C语言入门 程序段和代码段 C语言入门实例 英文分号(;) 注释 标识符 保留字 C中的空格 C数据类型 基本类型 sizeof获取存储字节 void类型 变量 C数组 C枚举 C中的左值(lvalue)和右值(rvalue) C常量 变量存储类型 C常用关键字(保留字) 宏定义#define co…

视频孪生助力智慧工厂:可视化安防管理与报警告警

在当今快速迭代的工业4.0时代&#xff0c;智慧工厂已成为提升生产效率、优化资源配置的关键所在。面对日益复杂的生产环境和多元化的业务需求&#xff0c;如何构建一个高效、智能且具备强大适应能力的智慧工厂也成为了众多厂商关注的焦点。为了满足工业制造的转型需求&#xff…

element el-table表格切换分页保留分页数据+限制多选数量

el-table表格并没有相关的方法来禁用表头里面的多选按钮 那么我们可以另辟蹊径&#xff0c;来实现相同的多选切换分页&#xff08;保留分页数据&#xff09; 限制多选数量的效果 <el-table:data"tableData"style"width: 100%">// 不使用el-talbe自带…

DX-11A信号继电器 0.5A 柜内板前接线 约瑟JOSEF

DX-11,11A,11B,11C型信号继电器 DX-11信号继电器 DX-11B信号继电器 DX-11A信号继电器 DX-11C信号继电器 1 用途 该继电器用于直流操作的保护线路中&#xff0c;作为信号指示器。 2 结构和原理 该继电器具有电磁铁和带公共点的三付动合触点及一个信号牌&#xff0c;为电…

什么是原始权益人?

摘要&#xff1a;每天学习一点金融小知识 原始权益人&#xff0c;在资产证券化&#xff08;ABS&#xff09;和公募REITs等金融产品中&#xff0c;指的是证券化基础资产的原始所有者&#xff0c;即金融产品的真正融资方。他们是按照相关规定及约定向资产支持专项计划转移其合法拥…

Victor CMS v1.0 SQL 注入漏洞(CVE-2022-28060)

前言 CVE-2022-28060 是 Victor CMS v1.0 中的一个SQL注入漏洞。该漏洞存在于 /includes/login.php 文件中的 user_name 参数。攻击者可以通过发送特制的 SQL 语句&#xff0c;利用这个漏洞执行未授权的数据库操作&#xff0c;从而访问或修改数据库中的敏感信息。 漏洞详细信…

武汉星起航:跨境电商流量红利爆发,2023年出海企业迎突破增长

在数字时代的浪潮中&#xff0c;中国跨境电商以惊人的爆发力崭露头角&#xff0c;成为全球贸易的璀璨新星。2023年数据显示&#xff0c;跨境电商出口额高达1.83万亿元&#xff0c;同比增长19.6%&#xff0c;这一显著增速不仅刷新纪录&#xff0c;更为众多出海企业带来了前所未有…