教你精确计算 I2C 上拉电阻阻值

I2C 总线能挂多少设备?

理论上:

7-bit address :2 的 7 次方,能挂 128 个设备。

10-bit address :2 的 10 次方,能挂 1024 个设备。

当然,要把预留设备地址去除,7 bit 协议规定了 8个预留地址,普通厂商不可以使用。保留地址如下:

0a061e6e4b6d97ee6554c18b24a59e89.png

但是 I2C 协议规定,总线上的电容不可以超过 400pF。管脚都是有输入电容的,PCB 上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过 8 个器件。

总线之所以规定电容大小是因为,I2C 使用的 GPIO 为开漏结构,开漏结构无法输出高电平,要求外部有上拉电阻拉高。电阻和总线电容产生了一个 RC 延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险。

传输速度越快,信号的窗口就越小,上升沿下降沿时间要求更短更陡峭,所以 RC 乘积必须更小。

I2C 架构

c3c13d601f13ad911f43aef6d030a0de.png

我们知道 I2C 有不同的速度模式,标准(100KHz)、快速(400KHz)、快速plus(1MHz)、高速(3.4MHz)。

Vdd 可以采用 5V、3.3V、1.8V 等,电源电压不同,上拉电阻阻值也不同。

一般总线上认为,低于 0.3Vdd 为低电平,高于 0.7Vdd 为高电平。

上拉电阻计算

1、上拉电阻过小,总线上电流增大,端口输出低电平增大。

2、上拉电阻过大,上升沿时间增大,方波可能会变成三角波。

因此计算出一个精确的上拉电阻阻值是非常重要的。

计算上拉电阻的阻值,是有明确计算公式的:

028f6c2b2fdc58c14bdfd21d1219e07b.png9cca87d86ef84c19c58a10b7444813f1.png

最大电阻和上升沿时间 tr 、总线电容 Cb 、标准上升沿时间 0.8473 有关。

最小电阻和电源 Vdd 电压、GPIO 口自己最大输出电压 Vol、 GPIO口自己最大电流 Vol 有关。

查《I2C-bus specification and user manual.pdf》7.1节:

a5576a90242691cb23c3f1773df6829d.png1be68a9bb9391ec1e6fe2535681bb830.png

查《I2C-bus specification and user manual.pdf》表10:

a23e2872c922190ad61f627c296abd89.png

由上表可知:

1、标准模式:0~100KHz,上升沿时间 tr = 1us

2、快速模式:100~400KHz,上升沿时间 tr = 0.3us

3、高速模式:up to 3.4MHz,上升沿时间 tr = 0.12us

由此公式,假设 Vdd 是 1.8V 供电,Cb 总线电容是200pF(虽然协议规定负载电容最大 400pF,实际上超过 200pF 波形就很不好,我们以 200pF 来计算)

标准模式 :

cc1333f18895864467962c9b52b33008.png

快速模式:

fe674d8b95ea67c65c2b391cde81acbe.png

高速模式:

9e6e3948291c9a13e706015e313f90ae.png

最小电阻(Vdd越大,上拉电阻就要越大):

3908463f8a5c5d9b07050327928191c0.png

note:高速模式下,电源电压一般采用 1.8 V,不会采用 3.3V,因为如果用 3.3V 计算你会发现最小电阻比最大电阻大。

大家在不同速率采用的电阻一般有以下几种:1.5K、2.2K、4.7K。

一般大家采用 I2C 使用标准模式即可 ,也就是 100KHz,推荐上拉电阻是 4.7K,当然大家可以用示波器看传输波形,适当调整。

结论:I2C 上拉电阻阻值和电源电压、传输速度、总线电容(负载因素)都有关系,大家根据自己的板子计算一下即可,选取最优电阻阻值,从而获得最优传输波形。

最大电阻 Rp 和总线电容 Cb 关系图:

038d67cd07e54ef074e3e16cc8d1076e.png

note:建议总线电容维持在 100pF 以下。

关于 I2C 的方方面面,我写在了我的博客上,有 10 篇,包括 I2C 的传输协议和Linux 下 I2C 的软件驱动框架,大家可以去查看,网址如下:

http://www.linuxer.vip/i2c-bus-spec/

也可以在左下角点击阅读原文,电脑端阅读更方便。

·················· END ··················

点击关注公众号,免费领学习资料

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

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

相关文章

原型设计+用户规格说明书

用户规格说明书 作业链接:https://edu.cnblogs.com/campus/fzzcxy/2016SE/homework/2180 原型模型设计工具: 墨刀 原型模型链接:https://modao.cc/app/6a5fcc03e409ffe37cfcdb9cb06914271744f131 学号1:362 何永康 学号2&#xff…

什么集成mysql_mysql集成部署

经常听说mysql数据库是集成在系统中,也一直不太明白集成的概念。今天才明白集成的概念就是将mysql所有的文件放到一个文件夹下放到系统中,也就是将mysql采用目录迁移部署的方式进行安装。在上一篇研究了mysql的数据存储结构之后,也研究了mysq…

一文让你了解RT-Thread

前言要学习一项新知识或新的技能,首先要对其有个初步了解,然后再逐步学习如何运用它。本文作为快速入门 RT-Thread 系列文章的第一篇,首先介绍一下,我当时是如何学习 RT-Thread 的,以及参与官方组织的活动的情况&#…

创建python虚拟环境

一 windows下如何构建虚拟环境如果系统中只有python2或只有python3,可以直接打开命令行,输入pip install virtualenv 来下载创建虚拟环境的包(如果提示pip不是内部命令,把python文件下的Scripts的文件路径加入计算机环境变量即可可) 1. 选择一…

电源开关上的 | 和 O 究竟代表了什么?

大家好,我是写代码的篮球球痴,转发张老师的一篇文章。几乎所有的电器、灯具和插座上只要带有电源开关必然会出现“|”和“O”两个符号。如果只看符号判断,“|”和“O”到底代表什么含义呢?能分清:哪个是电路联通,哪个是…

重庆大二学生花了6年写出了操作系统

一直以来,国内操作系统都是弱势的地方,可能是国情原因吧,事实上国内也有不少人想改变这种格局,一直以来,笔者的朋友也在一直为这个方向努力,xbook内核,作者花了6年时间,从初中开始就…

辉哥给rockchip修复了一个内存溢出问题

还是周末我也不想说周末,但是不是周末的话,可能也没有特别清净的时间来处理困难的问题。这周末我是要加班的,加班的前一个晚上,我领导找我们吃了一个便饭,聊了很多东西,这篇文章我就不说了,会在…

MVC(dotnet)

一天中吹牛的时间到了,纠正一下自己的思维,要是能让过客收益那是我的荣幸。 前段时间就三层&MVC被一些网友搅的一头雾水....管他萝卜酸菜吃下去了才是自己的。 首先我要说明的是MVC只是一个表现模式,是一种软件架构模式,而三层…

微信小程序轮播图中间变大_微信小程序实现带放大效果的轮播图

本文实例为大家分享了微信小程序实现带放大效果的轮播图,供大家参考,具体内容如下效果如图WXMLWXSS.Carousel{margin-top: 49px;background-color: #fff;}.swiper-container{position: relative;}.swiper-container .swiper{padding-top: 8px;height: 38…

跟我领导吃饭

上篇文章说,下篇文章会说跟我们领导吃饭的事情。我领导是我上上上家公司的领导,不是现在TC的领导。自从离职后,我们差不多6个月没再见面,那时候我想跳槽,是因为得到消息说他要走,我刚开始不相信&#xff0c…

tyvj 1391 走廊泼水节【最小生成树】By cellur925

题目传送门 题意简化:给你一棵树,要求你加边使它成为完全图(任意两点间均有一边相连) ,满足原来的树是这个图的最小生成树。求加边的价值最小是多少。 考虑Kruskal的过程,我们每次找一条最短的,…

支持向量机-SVM-最优化公式推导记录

1. 简述 SVM涉及的东西很多,如果要理解全面的话,要理解经验风险与置信风险,VC维理论,推导出最优化公式,最优化求解的拉格朗日解法,核函数,等等方面的内容,当前对SVM理解太少&#xf…

django 函数装饰器 变为 类装饰器

aaa 转载于:https://www.cnblogs.com/pythonClub/p/9789190.html

写flash,要不要加个判断?

相关文章既生Flash,又何生EEPROM?存储器Flash页、扇区、块的区别这是我一个知识星球朋友的提问刚开始我没有认真去思考这个问题,之后我仔细查了下资料,里面的内容还挺多。先看看EMMC的结构EMMC 是在nand flash的基础上增加了一个控…

IT 事业发展:树立自己的品牌

发展事业并达到事业顶峰是指树立自己的形象并进行自我推销。方法就在这里。 摘自 Sutton Hart Press (2011) 出版的《Fame 101》。 Jay 和 Maggie Jessup Fame 101 的基础以及成名公式很简单:成名 树立个人品牌 宣传 将自己的品牌推向市场 个人财务发展 宣传长…

谈谈JDK8中的字符串拼接

字符串拼接问题应该是每个Java程序员都熟知的事情了,几乎每个Java程序员都读过关于StringBuffer/StringBuilder来拼接字符串。 在大多数的教程中,也许你会看到用号拼接字符串会生成多个String,导致性能过差,建议使用StringBuffer/…

破解STM32F103芯片的方法

大家好,我是写代码的篮球球痴本文介绍ARM系列STM32F103芯片的解密方法,其内核是Cortex-M3,内存从16K-512K都有。该芯片主要应用非常广泛,日常消费类电子产品,工控设备,电机驱动,变频器&#xff…

python标准库怎么用_Python常用标准库使用(一)

自学python一段时间,之前总是学习基本语法,对Python标准库没怎么接触,所以计划从常用的标准库开始,大体了解一遍,下面是学习过程中的笔记。一、OS模块主要对目录、或者文件操作。常用方法如下:os.listdir(p…

英伟达|jetson nano开发使用的基础详细分享

大家好,我是写代码的篮球球痴,最近我朋友写了一篇英伟达开发板的文章,分享给大家。前言:最近拿到一块jetson nano 2GB版本的板子,折腾了一下,从烧录镜像、修改配件等,准备一篇开箱基础文章给大家…

和PP在腾讯

昨天晚上十点,我在会议室搞项目,PP发消息给我说 「你什么时候下班,等我一下,我下去见见你再走」。我说「你赶紧下来,我熬不住了」。因为确实比较晚,然后自己手上开发的事情也还没完成,有时还会冒…