I2C(Inter-Intergrated Circuit)总线是微电子通信控制领域中常用的一种总线标准,具有接线少,控制方式简单,通信速率高等优点。

I2C总线的内部结构图如图1所示,I2C器件连接到总线输出级必须是集电极开路或漏极开路形式才能实现线“与”的逻辑功能。输出端未接上拉电阻的时候只能输出低电平,所示保证I2C总线正常工作输出端必须接上拉电阻。

在I2C电路中常见的上拉电阻是1K,1.5K,2.2K,3.3K,4.7K,5.1K,10K等等,但选哪一个阻值更合适?

图1 I2C总线内部结构
I2C总线上拉电阻阻值如何选?

I2C规范将低于VIL或低于0.3VDD的电压定义为逻辑低电平,同样将高于VIH或高于0.7VDD的电压定义为逻辑高电平,如图2所示。

图2 指定为逻辑高电平和逻辑低电平的电压电平

电源电压限制了可允许总线拉低的最小上拉电阻值,过强的上拉会阻止器件充分拉低拉线的电平,导致无法确保逻辑低电平能被检测到。在输出级V_OLmax=0.4V 时指定I_OL为3mA,允许总线电压拉低的最小上拉电阻公式:

V_DD与Rp的函数关系分别如图3所示。

图3 Rp的最小值是电压的函数

由于端口的输出的高电平是通过上拉电阻实现,线上的电平从低变到高时,电源通过上拉电阻对线上负载电容CL充电,这需要一定的时间,即上升时间,上拉电阻的最大值由总线容限负载决定,总线负载图如图4所示。

图4 总线负载结构图

总线电容主要由引脚、连接、PCB走线和导线等因素引起,总线电容与上拉电阻R具有一个RC时间常数,随着I2C通信速率的增加,该常数变得越发重要。通过电阻对电容进行充电的一般公式:

重新排列,

之后我们可计算电压上升至VIL的时间T1、上升至VHL的时间T2以及精确计算两个电平之间的时间TR,如图5所示。由于VIL与VHL都是有V_DD产生,因此该公式与电源电压无关,V_DD项已抵消。

图5 总线电平上升时间

求解,

在I2C标准模式下,100Kbps总线的负载最大容限小于等于400pF;快速模式,400Kbps总线的负载最大容限小于等于200pF,快速模式下I2C总线上升时间更快,总线上拉电阻要比标准模式小,设计时以快速模式50Pf~200pF为参考,由上面(6)式得最大Rp值与总线电容的关系如图6所示。

图6 符合快速模式I2C总线TRmax要求的Rp最大值是总线电容的函数

由上面的计算可得出上拉电阻RP可以取的范围是1.53K~7K @VDD = 5V,一般取5.1K ,综合到3.3V VDD低功耗设计中,通常选用4.7K牺牲速度换取电池使用时间,此阻值也是常规阻值。

关于I2C的上拉电阻,最好的方式是看官方给出的参考设计,如果走线长了或总线上有多从机,就相应把电阻改小一些,如若参考设计没有就在计算范围内选用一个常规阻值。实际的时候我们没有去测量总线电容的问题,只能在选件、走线的时候给予些许关注。

来源

【转】I²C总线上拉电阻阻值如何选择?的更多相关文章

  1. MOS管、PCB、H桥、步进电机驱动电路、51单片机的IO口驱动能力、灌电流、拉电流、上拉电阻的选择

    嵌入式开发PCB设计几点体会(转载):http://bbs.ednchina.com/BLOG_ARTICLE_3021801.HTMCollector-Emitter Saturation Volt ...

  2. 上拉电阻大小对i2c总线的影响

    漏极开路上拉电阻取值为何不能很大或很小? 如果上拉电阻值过小,Vcc灌入端口的电流(Ic)将较大,这样会导致MOS管V2(三极管)不完全导通(Ib*β<Ic),有饱和状态变成放大状态,这样端口输 ...

  3. (转)I2C 上拉大小

    中断,GPIO,I2C等一般都是OC或者OD门,芯片内部无上拉电阻时,则外部必须加上拉电阻才能输出高电平.一般I/O端的驱动能力在2-4mA量级,OC或者OD门的导通电压为0.4V左右,手机中加在上拉 ...

  4. I2C 上拉电阻选择计算公式

    I2C接口上拉电阻的选择 - I2C接口上拉电阻的选择 1.I2C接口的输出端是漏极开路或集电极开路,所以必须在接口外接上拉. 2.上拉电阻的范围很宽,但也需要跟据功耗.信号上升时间等具体确定. 和速 ...

  5. 关于51单片机P0口的结构及上拉问题

    1.P0作为地址数据总线时,V1和V2是一起工作的,构成推挽结构.高电平时,V1打开,V2截止:低电平时,V1截止,V2打开.这种情况下不用外接上拉电阻.而且,当V1打开,V2截止,输出高电平的时候, ...

  6. I2C上拉电阻

    在一些PCB的layout中,大家往往会看到在I2C通信的接口处,往往会接入一个4.7K的电阻,有的datasheet上面明确有要求,需要接入,有的则没有要求.   I2C接口 对于单片机来讲,有些I ...

  7. 为什么 I2C(IIC)需要上拉电阻

    源鑫问: I2C时钟线和数据线为什么要接上拉电阻? 因为 I2C 的 IO 是开漏的,所以需要上拉电阻. 延伸: 之前 hippo曾经说过有人将 IO 设置为 PP,可能会烧 IO. 之前以为 I2C ...

  8. I2C上拉电阻取值范围

    I2C总线是微电子通信控制领域中常用的一种总线标准,具备接线少,控制简单,速率高等优点.在I2C电路中常见的上拉电阻有1k.1.5k.2.2k.4.7k.5.1k.10k等等,但是应该如何根据开发要求 ...

  9. 【FastDev4Android框架开发】RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一)

    转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/49992269 本文出自:[江清清的博客] (一).前言: [好消息] ...

随机推荐

  1. MapReduce -- 最短路径

    示例: 给出各个节点到相邻节点的距离,要求算出初始节点到各个节点的最短路径. 数据: A (B,) (D,) B (C,) (D,) C (E,) D (B,) (C,) (E,) E (A,) (C ...

  2. 20155234 Exp2 后门原理与实践

    Windows获得Linux Shell 1.查看ip 2.监听端口 3.实验成功如下图 Linux获得Win Shell 1.查看虚拟机ip 2.监听端口 3.实验成功如下图 使用NC传输数据 1. ...

  3. 20155323刘威良《网络对抗》Exp9 Web安全基础

    20155323刘威良<网络对抗>Exp9 Web安全基础 实践目的 理解常用网络攻击技术的基本原理. 实践内容 Webgoat实践下相关实验. 实践过程 开启WebGoat WebGoa ...

  4. Android开发——RecyclerView特性以及基本使用方法(二)

    0.  前言 随着Android的发展,虽然ListView依旧重要,但RecyclerView确实越来越多的被大家使用.但显然并不能说RecyclerView就一定优于ListView,而是应该根据 ...

  5. 蒙特卡罗方法 python 实现2

    如果不考虑作图,这里的两个例子可以改写成下面的样子: 求圆周率 import random ''' 蒙特卡罗模拟 投点法计算圆周率 ''' # 投点游戏 def play_game(): # 圆 r ...

  6. 修改 input[type="radio"] 和 input[type="checkbox"] 的默认样式

    表单中,经常会使用到单选按钮和复选框,但是,input[type="radio"] 和 input[type="checkbox"] 的默认样式在不同的浏览器或 ...

  7. 这可能是最详细的Python文件操作

    删除 # ==================删除==================# 只能删除文件,若为目录则报错# 若文件正在使用,Windows下会直接报错,Linux下会在目录表中删除记录, ...

  8. 【翻译】给初学者的 Neural Networks / 神经网络 介绍

    本文翻译自 SATYA MALLICK 的  "Neural Networks : A 30,000 Feet View for Beginners" 原文链接: https:// ...

  9. 认识 Iconfont 以及什么是 .eot、.woff、.ttf、.svg

    一.Iconfont 1. 概述 在前端作业中,二十年前只有页面中铺满文字就算上线产品,现如今,不加点俏皮的“图标”会让页面显得很 Low 很 Low.   图标 在写这篇文章之前,我一直以为上图中的 ...

  10. A. Elections

    链接 [http://codeforces.com/contest/1043/problem/A] 题意 有n个投票人已经投个对手ai票,让你求最小的k使得k-ai加起来大于,对手得票总和 分析 一个 ...