精华内容
下载资源
问答
  • 多个i2c设备上拉电阻
    千次阅读
    2021-01-12 18:02:24

    https://wenku.baidu.com/view/985db25e4a7302768e9939f8?fr=ViewCollect

    i2c原理讲解

    问:如题,除了地址不重复外,听说IC 数量只受到总线的最大电容 400pF 限制,那么电容如何计算呀?

    答:一个I2C设备管脚的输入电容是10pF,再考虑走线,
    一般应用中挂3、5个没什么问题,要注意地址不要冲突,上拉电阻改为2.2k,甚至1k都可以。

    答:当然挂的外设越多,走线的寄生电容就越大了,当电容大到会影响信号的完整性的时候,那么信号就失效了,挂再多外设也是白搭。
    这个电容的计算基本上很难,要看走线和制板工艺,不过可以现在电脑上仿真一下,有个大致的结果。
    自己计算的误差肯定大大的

    答:量一下I2C的上升下降时间,Ok就可以了

    问:就是说挂的slave越多的时候,上拉电阻也要相对减小是吧?

    答:每个I2C device都有寄生电容的,把他们的相加起来,走线也有,电容主要是影响I2C上升下降时间,你量一下在规格范围内就好了,此外,减小上拉电阻也可以改善上升时间,但也不能太小,虽说是open drain的,但电阻太小I2C的低电压就会比较高,过不了规格,此外就是还有很大的漏电流

    答:正解,这个主要是考虑到上拉的驱动,和频率响应问题。还有就是低电平的最大值。低电平的最大值决定了上拉电阻的最小值

    答:这个电容值是整个I2C通信总线上的电容值,并联的设备多了,每个单元的电容需要减小,保证总的电容值不超过要求,否者I2C波形上升沿下降沿时间会偏长,且出现较大震荡导致误码率偏高。

    答:总线电容Cb是一条总线线路连接和管脚的总电容,单位是pF。由于规定了上升时间,这个电容限制了上拉电阻Rp 的最大值,而电源电压限制了上拉电阻Rp 的最小值,输出级在VOLmax=0.4V 时指定的最小下拉电流是3mA。(VDD-Volmax)/3mA=(3.3V-0.4V)/3mA=0.97kΩ,当上拉电阻的电压VDD为3.3V,上拉电阻最少需要0.97K

    如果总线线路的电容负载升高,位速率将逐渐下降,总线的电容负载是400pF 时的,允许最大位速率是1.7Mbit/s 。总线电容负载在100pF~400pF 时时序参数必须呈线性增加。

     

    更多相关内容
  • I2C协议精讲(二):I2C上拉电阻计算

    千次阅读 2021-12-06 21:41:39
    I2C 总线能挂多少设备? 理论: 7-bit address :2 的 7 次方,能挂 128 个设备。 10-bit address :2 的 10 次方,能挂 1024 个设备。 当然,要把预留设备地址去除,7 bit 协议规定了 8预留地址,厂商不可以...

    I2C 总线能挂多少设备?

    理论上:
    7-bit address :2 的 7 次方,能挂 128 个设备。
    10-bit address :2 的 10 次方,能挂 1024 个设备。

    当然,要把预留设备地址去除,7 bit 协议规定了 8个预留地址,厂商不可以使用。保留地址如下:
    在这里插入图片描述

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

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

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

    I2C 架构
    在这里插入图片描述

    我们知道I2C有不同的速度模式,标准(100KHz)、快速(400KHz)、快速plus(1MHz)采用的GPIO都是开漏模式,支持线与,但是开漏模式无法输出高电平,所以需要外部有上拉,接一个电阻然后接Vdd。

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

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

    关于为什么GPIO开漏模式支持线与,无法输出高电平,我在GPIO系列文章写过:

    gpio subsystem(1) – linuxer

    线与,是I2C协议的基础!!!!

    线与:当总线上只要有一个设备输出低电平,整条总线便处于低电平状态,这时候总线被称为占用状态。

    上拉电阻计算

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

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

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

    计算上拉电阻的阻值,是有明确计算公式的:
    在这里插入图片描述
    在这里插入图片描述

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

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

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

    在这里插入图片描述
    在这里插入图片描述

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

    在这里插入图片描述

    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来计算)

    标准模式 :
    在这里插入图片描述

    快速模式:
    在这里插入图片描述

    高速模式:
    在这里插入图片描述

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

    在这里插入图片描述

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

    采用合适的电源电压和合适的上拉电阻,才会让你的 I2C 传输信号最优。

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

    在这里插入图片描述

    一般很少会用到 高速模式(HS),因为这种模式协议比较复杂,既然要快不如用 SPI 了。

    欢迎关注我的微信公众号,持续更新:

    在这里插入图片描述

    关于 I2C 协议的十篇文章,包括传输协议、传输机制、上拉电阻的计算、Linux 下软件驱动框架,都写在这里:

    I2C(一):I2C bus spec

    展开全文
  • I2C上拉电阻到底

    千次阅读 2020-03-08 21:17:37
    I2C上啦电阻到底大 ...我在当时在驱动ov7670的时候,由于官哥的模块上没有默认I2C的上啦电阻,导致三四天I2C时序的设计,testbench,都是如此的崩溃,想哭的冲动都用了,FPGA内部上拉也不行。。。。后来官...

    I2C上啦电阻到底多大

    1. I2C出现的问题

    最近群里,由于大部分人都玩摄像头,在摄像头初始化,即I2C接口的初始化中,前前后后出现了很多问题,包括我自己。不能理解。。如下部分群聊记录:

     

    我在当时在驱动ov7670的时候,由于官哥的模块上没有默认I2C的上啦电阻,导致三四天I2C时序的设计,testbench,都是如此的崩溃,想哭的冲动都用了,FPGA内部上拉也不行。。。。后来官哥跟我说:“你个傻x,赶紧上啦4.7K”

    2. I2C电路举例

    以下是我的电路的设计,听官哥的,用了4,7K 的上拉电阻

     

    下面这个是官哥的

     

     

    还有人说,上啦时候,还不行了,首先要降低速度,其次减小上啦电阻,一直都是听人说,都不知道为什么过,人家都说经验。。。。。人家用到了1K电阻,我5K ,人家速度1K,我100K,屡试不爽,但是就是揪心,吃不好睡不香,这到底为什么呢。。。。

    3. I2C为什么要上拉电阻

    这是我最搞不懂的问题,他为啥不在IC内部做好上啦呢,让我们在外面再拉一次,麻烦死了。。还有这SCLK明明只是输出,为啥也要上啦呢。。这逼迫我不得不研究一下I2C内部电路。。。哎,如下:

    借鉴参考:http://bbs.eeworld.com.cn/thread-95337-1-1.html

    http://hi.baidu.com/spbeijilang/blog/item/012f13824c2d18b26d811911.html

    (1)单片机内部有上啦电阻,有些上拉能力够了,可以不加上拉电阻,有些不够,那就必须在外部加上拉电阻。解析如下:

    “这 个就要看你使用的单片机是否有标准的IIC标准接口了,如果你使用了标准的IIC接口,这个接口在使能的时候,引脚进入漏极开路模式,不过有一些单片机内 部的上拉电阻可以使能,这样就省去了外部的上拉电阻,我用过AVR的,就是使能的内部的上拉电阻。但是如果是使用单片机的引脚模拟IIC协议的话,这个就 得另说了,得看你的单片机引脚是否支持漏极开路模式或者上拉模式,不过一般推拉模式的输出引脚用在IIC里可能会有问题具体也没用过。”

    (2)也有人回答是为了保护,如下:

    “其 实各个I2C接口工作时只检测高、低电平,管你有没有什么上拉电阻呢!但问题是,你要是直接接电源的来实现高的话,一旦器件拉低时岂不危险?所以,这个上 拉电阻有保护作用。如果你确信直接接电源没问题(比如有短路保护等,呵呵),也可以试一试,问题的关键是主器件要能正确的拉低或置高,从器件要能明确地区 分高、低就可以了,这是问题的关键,当然,还有时序问题,不能混乱!”

    根据I2C总线规范,总线空闲时两根线都必须为高

    由于I2C接口采用Open Drain机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻RP将信号线拉至高电平。因此I2C总线上的上拉电阻是必须的!如下图所示:

     

    I2C 总线空闲的时候,两条信号线应该维持高电平。否则,上拉电阻上会有耗电。特别是在上电过程中,IO线上电平也应保持在高电平状态。也就是说:当 Master的I2C使用的是IO软件模拟时,一定要保证该两个IO上电默认均为输入(或高阻)或者输出高电平,切不可默认为输出低电平。IO默认为输入 时,可以通过外部上拉电阻将I2C信号线拉至高电平。

    4. I2C上拉电阻大小问题

    看了一些文档,还有前辈的提醒,的确I2C上拉电阻也有很大的文章可做啊。有人这样说道:

    “最 直接的,牵涉到两方面的问题,首先是功耗的问题,其次是速度的问题,二者是矛盾的!如果你想尽量提高速度,那么就牵涉到总线电容的问题,其实很容易理解, 上拉电阻与总线的电容形成了RC,高速时将直接影响通讯!因为总线拉高时有个充电时间以及高电平的阀值,如果还没有充电到足以保证从器件可以识别的高电平 的阀值时主器件就以为完成了一个总线动作的话,那么通讯肯定是不能进行的!如果你想尽可能降低功耗,那么就要尽可能增大电阻以最大可能的减小电路各部分的 消耗电流从而实现整体降低功耗!但不可能无限大,否则充电时间你会受不了的!”

    I2C的上拉电阻可以是1.5K,2.2K,4.7K, 电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K。

    I2C上拉电阻确定有一个计算公式:

    Rmin={Vdd(min)-o.4V}/3mA

    Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz

    C是Bus capacitance

    Rp最大值由总线最大容限(Cbmax)决定,Rp最小值由Vio与上拉驱动电流(最大取3mA)决定;

    于是 Rpmin=5V/3mA≈1.7K(@Vio=5V)或者2.8V/3mA≈1K(@Vio=2.8V)

    标 准模式,100Kbps总线的负载最大容限<=400pF;快速模式,400Kbps总线的负载最大容限<=200pF,根据具体使用情况、 目前的器件制造工艺、PCB的走线距离等因素以及标准的向下兼容性,设计中以快速模式为基础,即总线负载电容<200pF,也就是传输速度可以上到 400Kbps是不成问题的。于是Rpmax可以取的范围是1.8K~7K @ Vio=5V对应50pF~200pF

    根据Rpmin与Rpmax的限制范围,一般取5.1K @ Vio=5V , 负载容限的环境要求也容易达到。在2.8V系统中,console设计选3.3K,portable/handset等低供耗的设计选4.7K牺牲速度换取电池使用时间

    总的来说:电源电压限制了上拉电阻的最小值 ; 负载电容(总线电容)限制了上拉电阻的最大值

    上拉电阻阻值的确定

    5. I2C上拉电阻电源问题

    这部分我也不是非常了解,因为我的设计中,摄像头和fpga是用的是同一个3.3V,不存在两个电源的问题,但是问题还是得说,如下:

    在 部中分应用中,还存在主从设备以及上拉电阻电源不一致的情况,比如Camera模组。在很多设计方案中,Camera模组不工作时,并不是进入Power Down模式,而是直接关闭模组供电VDDS。此时,处理器与模组相互连接的所有信号线都应该进入高阻态,否则就会有电流漏入模组;而对于此时的I2C控 制信号线来说,由于上拉电阻的存在,必须关断上拉电阻电源VDDP。如果上拉电阻使用的是系统电源VDDM(VDDP=VDDM),无法关闭,就会有漏电 流进入模组;因此这种情况下,应该使用VDDS作为上拉电阻电源(VDDP=VDDS),这样上拉电阻电源与Slave电源即可同时关闭,切断了漏电路 径。

    另外需要注意的是,在上述应用实例中选择的IO,应该选取上电默认为输入(或高阻)才行。

    展开全文
  • I2C串联保护电阻上拉电阻的选择

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

    中断,GPIO,I2C等一般都是OC或者OD门,芯片内部无上拉电阻时,则外部必须加上拉电阻才能输出高电平。一般I/O端的驱动能力在2~4mA量级,OC或者OD门的导通电压为0.4V左右,手机中加在上拉电阻上的电压一般都是2.8V,上拉电阻的最小值不能低于800R(2.8-0.4V/3mA=0.8K),5V电压时,则不能低于1.5K(5-0.4V/3mA=1.5K)。中断和GPIO信号本身,只需要产生一个高电平即可,不需要驱动设备,上拉电阻可以取大点,减小功耗,但须注意上拉电阻不能太大,否则会和PCB走线,器件等负载电容影响信号上升时间。经验值一般在4.7~100K之间。

        I2C上拉电阻阻值计算:

        I2C的接口一般都是OD机制,同样需要加上拉电阻才能输出高电平。上拉电阻的最小值须符合上文。下面计算下上拉电阻的最大值。

        

     I2C总线图

        I2C总线的传输速率分为标准模式(100Kbit/s)和快速模式(400Kbit/s),负载的最大容限分别是400pF和200pF,根据I2C总线协议,上拉电阻的最大值被总线电容所限制。

        下面两个图可以看出上拉电阻的取值(Rs是I2C设备串联在I2C总线上的电阻,可以防止SDA和SCL的高电压毛刺波,例如电视的显像管击穿产生的高压毛刺)

      

        由上图可以看出,上拉电阻的最小值由上拉电源决定,最大值由总线电容决定。

        最大值网上有个计算公式,Rmax=T/0.874*C,C=200pF时,T=1us;C=400pF时,T=0.3us。但是根据这个公式计算出来的值都不怎么对,另外常数0.874怎么来的?请懂得人指教下。手机等低功耗设备一般选择4.7K。



    如果上拉电阻值过小,VDD灌入端口的电流(Ic)将较大,这样会导致MOS管(三极管)不完全导通(Ib*β<Ic),有饱和状态变成放大状态,这样端口输出的低电平值增大(I2C协议规定,端口输出低电平的最高允许值为0.4V)
           如果上拉电阻过大,加上线上的总线电容,由于RC影响,会带来上升时间的增大(下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢),而且上拉电阻过大,即引起输出阻抗的增大,当输出阻抗和负载的阻抗可以比拟的时,则输出的高电平会分压而减少。


    I2C的上拉电阻可以是1.5K,2.2K,4.7K, 电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K

     

    (实验:接入200K上拉电阻,结果观察到信号上升时间增大,方波变成三角波)

     

    I2C上拉电阻确定有一个计算公式:

    Rmin={Vdd(min)-o.4V}/3mA

    Rmax=(T/0.874) *c,   T=1us 100KHz, T=0.3us 400KHz

    C是Bus capacitance

    Rp最大值由总线最大容限(Cbmax)决定,Rp最小值由Vio与上拉驱动电流(最大取3mA)决定;

    于是 Rpmin=5V/3mA≈1.7K(@Vio=5V)或者2.8V/3mA≈1K(@Vio=2.8V)

    Rpmax的取值:参考周公的I2C总线规范中文版P33图39与P35图44

    标准模式,100Kbps总线的负载最大容限<=400pF;快速模式,400Kbps总线的负载最大容限<=200pF,根据具体使用情况、目前的器件制造工艺、PCB的走线距离等因素以及标准的向下兼容性,设计中以快速模式为基础,即总线负载电容<200pF,也就是传输速度可以上到400Kbps是不成问题的。于是Rpmax可以取的范围是1.8K~7K @ Vio=5V对应50pF~200pF

    根据Rpmin与Rpmax的限制范围,一般取5.1K @ Vio=5V , 负载容限的环境要求也容易达到。在2.8V系统中,console设计选3.3K,portable/handset等低供耗的设计选4.7K牺牲速度换取电池使用时间

    总的来说:电源电压限制了上拉电阻的最小值 ; 负载电容(总线电容)限制了上拉电阻的最大值

    补充:在I2c总线可以串连300欧姆电阻RS可以用于防止SDA和SCL线的高电压毛刺

          : I2c从设备的数量受总线电容,<=400pF的限制

     

     

     

    上拉电阻阻值的确定

    由于I2C接口采用Open Drain机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻RP将信号线拉至高电平。因此I2C总线上的上拉电阻是必须的!

             

    RP不宜过小,一般不低于1KΩ

    一般IO 端口的驱动能力在2mA~4mA量级。如果RP阻值过小,VDD灌入端口的电流将较大,这样会导致MOS管不完全导通,有饱和状态变成放大状态,这样端口输出的低电平值增大(I2C协议规定,端口输出低电平的最高允许值为0.4V);如果灌入端口的电流过大,还可能损坏端口。故通常上拉电阻应选取不低于1KΩ的电阻(当VDD=3V时,灌入电流不超过3mA)。

    RP不宜过大,一般不高于10KΩ

    由于端口输出高电平是通过RP实现的,线上电平从低到高变化时,电源通过RP对线上负载电容CL充电,这需要一定的时间,即上升时间。端口信号的上升时间可近似用充电时间常数RPCL乘积表示。

    信号线负载电容(对地)由多方面组成,包括器件引脚、PCB信号线、连接器等。如果信号线上挂有多个器件,负载电容也会增大。比如总线规定,对于的400kbps速率应用,信号上升时间应小于300ns;假设线上CL为20PF,可计算出对应的RP值为15KΩ。

    如果RC充电时间常数过大,将使得信号上升沿变化缓慢,达不到数据传输的要求

    因此一般应用中选取的都是几KΩ量级的上拉电阻,比如都选取4K7的电阻。

    小阻值的RP电阻增大了端口Sink电流,故在可能的情况下,RP取值应稍大一点,以减少耗电。另外,通产情况下,SDA,SCL两条线上的上拉电阻取值是一致的,并上拉到同一电源上。

    PCB布局布线与抗干扰设计

    I2C信号线属于低速控制线,在手机PCB设计时,按通常的控制IO对待即可,无需做特别的保护设计,一般不用担心受到噪声源干扰。

    但在一些特定的情况下,比如折叠、滑盖机型中,I2C的两根信号线需要通过转轴或滑轨处的FPC,此时由于信号路径比较长,距离天线比较近,而且Open drain的输出级对地阻抗大,对干扰比较敏感,因此比较容易受到RF信号源的干扰。在这种情况下,就应适当注意对I2C信号线的保护。比如I2C两条信号线(SDA,SCL)等长度地平行走线,两边加地线进行保护,避免临近层出现高速信号线等。

    上拉电阻应安置在OD输出端附近。当I2C总线上主从器件(Master & Slave)两端均为OD输出时,电阻放置在信号路径的中间位置。当主设备端是软件模拟时序,而从设备是OD输出时,应将电阻安置在靠近从设备的位置。

    I2C协议还定义了串联在SDA、SCL线上电阻Rs。该电阻的作用是,有效抑制总线上的干扰脉冲进入从设备,提高可靠性。这个电阻的选择一般在100~200ohm左右。当然,这个电阻并不是必须的,在恶劣噪声环境中,可以选用。

                 

    比如常用的FM 接收模块或者Capsense触摸感应功能块,都是通过I2C接口控制的。I2C接口信号从处理器出发,经过PCB上的信号路径,进入上述电路单元。I2C信号线上载有一定干扰,这种干扰虽然幅度并不很大,但还是会影响敏感的FM接收模块或Capsense触摸感应功能块。此时,可以通过在靠近FM模块或触摸感应模块的I2C信号线上串接Rs电阻,即可有效降低干扰的影响。此外,上拉电阻端的电源也要进行退耦处理。

    软件模拟I2C时序

    由于一般的I2C应用速率并不高(400kbps),使用处理器的IO口模拟I2C波形,完全可以胜任(处理器一般担任Master,占有I2C通信的控制权,无需担心随机的I2C通信服务中断其他任务的执行)。

    处理器分配给I2C任务的IO口,要求可以输出高低电平,还能配置为输入端口。处理器根据总线规范以及从设备的时序要求,利用2条IO信号线,模拟I2C接口时序波形,进行I2C通信。

    处理器发送数据时,通过IO口输出高电平,上升时间基本与外部上来电阻阻值无关,且比用外部上拉电阻上拉到高电平快很多。处理器在接受数据时,即便上拉电阻阻值选的大一些,从设备输出数据的波形上升沿缓慢,但由于处理器使用软件采样的而非硬件采样,因此,对数据传输的结果并不影响。也就是说,使用IO口模拟I2C时序时,上拉电阻阻值可以适当选的大一些。

    需要指出的是,使用软件模拟最多只能完成单Master的应用,对于多Master应用,由于需要进行总线控制权的仲裁管理,使用软件模拟的方法很难完成。

    I2C总线空闲的时候,两条信号线应该维持高电平。否则,上拉电阻上会有耗电。特别是在上电过程中,IO线上电平也应保持在高电平状态。也就是说:当Master的I2C使用的是IO软件模拟时,一定要保证该两个IO上电默认均为输入(或高阻)或者输出高电平,切不可默认为输出低电平。IO默认为输入时,可以通过外部上拉电阻将I2C信号线拉至高电平。

               

    I2C应用中上拉电阻电源问题

    在部中分应用中,还存在主从设备以及上拉电阻电源不一致的情况,比如Camera模组。在很多设计方案中,Camera模组不工作时,并不是进入Power Down模式,而是直接关闭模组供电VDDS。此时,处理器与模组相互连接的所有信号线都应该进入高阻态,否则就会有电流漏入模组;而对于此时的I2C控制信号线来说,由于上拉电阻的存在,必须关断上拉电阻电源VDDP。如果上拉电阻使用的是系统电源VDDM(VDDP=VDDM),无法关闭,就会有漏电流进入模组;因此这种情况下,应该使用VDDS作为上拉电阻电源(VDDP=VDDS),这样上拉电阻电源与Slave电源即可同时关闭,切断了漏电路径。

    另外需要注意的是,在上述应用实例中选择的IO,应该选取上电默认为输入(或高阻)才行。

                  


    展开全文
  • 上拉电阻大小对i2c总线的影响

    千次阅读 2018-01-03 17:02:48
    就要看你使用的单片机是否有标准的IIC标准接口了,如果你使用了标准的IIC接口,这接口在使能的时候,引脚进入漏极开路模式,不过有一些单片机内部的上拉电阻可以使能,这样就省去了外部的上拉电阻,我用过AVR...
  • I2C上拉电阻问题

    千次阅读 2019-01-26 09:46:19
    I2C上拉电阻问题 I2C上拉电阻可以是1.5K,2.2K,4.7K,电阻的大小对时序有...I2C上拉电阻确定有一计算公式: Rmin={Vdd(min)-o.4V}/3mA Rmax=(T/0.874) *c,T=1us 100KHz, T=0.3us 400KHz C是Bus capacita...
  • I2C总线为什么要接上拉电阻

    千次阅读 2021-01-12 10:01:27
    I2C总线为什么要接上拉电阻 1、根据I2C总线规范,总线空闲时两根线都必须为高; 这是规定,动不了的,不然什么叫标准呢?其实所谓的这神圣的标准也并不是多么邪乎,你想啊,只有是高的才能拉成低的,难道谁可以把...
  • 文章目录为什么采用漏极开路?为什么要加上拉电阻?为什么要线与?总结全文 系列文章:《I2C总线(1)–数据传输格式与7位地址读写》;《I2C总线(2)–10位地址读写》;《I2C总线(3)–时钟...结论:I2C支持多个设备
  • I2C总线上拉电阻的选择

    千次阅读 2016-10-20 15:25:55
    1、I2C接口的输出端是漏极开路或集电极开路,所以必须在接口外接上拉。 2、上拉电阻的范围很宽,但也需要跟据功耗、信号上升时间等具体确定。 和速度应该没关系。主要是I2C是oc,所以需要。和驱动的从机数...
  • 处理器发送数据时,通过IO口输出高电平,上升时间基本与外部上来电阻阻值无关,且比用外部上拉电阻上拉到高电平快很。处理器在接受数据时,即便上拉电阻阻值选的大一些,从设备输出数据的波形上升沿缓慢,但由于...
  • I2C上拉电阻问题分析(基于stm32 HAL库)在使用stm32读写 ST温湿度hts221时,使用I2C总线,总线上还挂在了别的传感器,发现有时候可以读出数据,有时候读不出数据,一直是0。
  • I2C为什么要用开漏输出和上拉电阻?

    千次阅读 2022-01-19 01:21:10
    I2C为什么要接上拉电阻?因为它是开漏输出。为什么是开漏输出?I2C协议支持多个设备多个设备在一条总线上,如果不用开漏输出,而用推挽输出,会出现主设备之间短路的情况。所以总线一般会使...
  • STM32 I2C上拉电阻的选择问题

    千次阅读 2016-03-23 22:20:03
    从开源的设计中我们可以看到,I2C上拉电阻可以是1.5K,2.2K,4.7K,然而电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K 或2.2K。  上拉电阻阻值的确定:  由于I2C 接口采用Open...
  • I2C 上拉电阻取值

    千次阅读 2017-10-20 10:54:31
    I2C总线上数据的传输速度在标准模式下为100Kbps,在快速模式下可达400Kbps,在...连接到总线的设备数量受I2C总线规范对I2C总线电容最大不能超过400pF规定的限制。 漏极开路上拉电阻取值为何不能很大或很小?
  • I2C总线-上拉电阻阻值的计算

    千次阅读 2015-07-14 19:19:19
    I2C上拉电阻可以是1.5K,2.2K,4.7K,电阻的大小对...I2C上拉电阻确定有一计算公式: Rmin={Vdd(min)-o.4V}/3mA Rmax=T/(0.874*c), T=1us 100KHz, T=0.3us 400KHz C是Buscapacitance Rp最大值由总线最大容限(Cbm
  • I2C总线上拉电阻--为什么要

    万次阅读 2014-04-26 01:33:50
    就要看你使用的单片机是否有标准的IIC标准接口了,如果你使用了标准的IIC接口,这接口在使能的时候,引脚进入漏极开路模式,不过有一些单片机内部的上拉电阻可以使能,这样就省去了外部的上拉电阻,我用过AVR...
  • 一文搞懂I2C协议-硬件基础

    千次阅读 2020-07-10 10:26:22
    I2C是什么 I2C总线是由飞利浦在80年代初设计的,以...I2C总线设备可以为一主从或者从,可以提供仲裁和冲突检测 I2C标准的传输速率可以达到100Kbit/s,快速模式下可以达到400Kbit/s,高速模式下可以到达3
  • I2C上拉电阻取值问题

    千次阅读 2014-01-22 14:35:50
    漏极开路上拉电阻取值为何不能很大或很小?  如果上拉电阻值过小,VDD灌入端口的电流(Ic)将较大,这样会导致MOS管(三极管)不完全导通(Ib*β  如果上拉电阻过大,加上线上的总线电容,由于RC影响,会带来...
  • I2C验证的上拉电路逻辑问题

    千次阅读 2021-08-10 11:11:22
    最近在做I2C的验证,在模拟上拉电阻逻辑时遇到了一些问题,记录本文希望做一经验总结。 I2C是一种双向二线同步串行总线,拥有一条串行数据线(SDA)和串行时钟线(SCL),支持从,包含冲突检测和仲裁功能,...
  • USB线上/串口/I2C引脚串联电阻的作用

    千次阅读 2019-02-18 16:03:37
    因为信号源的阻抗很低,跟信号线之间阻抗不匹配,串个电阻后,可改善匹配情况,以减少反射,避免振荡等。 第二是可以减少信号边沿的陡峭程度,从而减少高频噪声以及过冲等。因为串联的电阻,跟信号线的分布电容...
  • I2C 上拉电阻

    千次阅读 2012-07-13 14:48:22
    I2C上拉电阻可以是1.5K,2.2K,4.7K, 电阻的大小对时序...I2C上拉电阻确定有一计算公式: Rmin={Vdd(min)-o.4V}/3mA Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz C是Bus capacitance Rp最大值由总线最
  • I2C 的开漏和上拉电阻

    千次阅读 2016-08-29 12:49:44
    开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据...CPU向受控单元发出一信号后,等待受控单元发出一应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,
  • I2C上拉电阻

    千次阅读 2014-01-20 20:24:01
    I2C上拉电阻可以是1.5k、2.2k、4.7k,电阻的...I2C上拉电阻确定有一计算公式: Rmin=(Vdd(min)-0.4V)/3mA Rmax=(T/0.874)*C,T=1uS 100kHz,T=0.3uS 400kHz,C是Bus capacitance Rp最小值由Vio与上拉驱动电流(最
  • 详细介绍GPIO、I2C、SPI通讯原理以及物理层原理

    万次阅读 多人点赞 2021-08-26 10:03:20
    针对GPIO、I2C、SPI的讲解,对这些通讯方式有大致框架,对日后的开发会有帮助,了解因为所以然。 一. GPIO 1. 什么是GPIO? GPIO全拼叫General Purpose Input Output(通用输入输出)简称IO口也叫总线扩展器,...
  • 通俗易懂的I2C协议

    千次阅读 2022-02-06 21:34:47
    I2C通讯协议因其引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备等优点,被广泛地使用在系统内多个集成电路(IC)间的通讯。 I2C由两根信号线完成信息交换,SCL为时钟信号线,SDA为数据...
  • 通常I2C是用于PCB板内各个IC之间的总线通讯,此外I2C也可以用于短距离板级之间的通讯,默认波特率为100k。I2C电路必须用阻抗匹配的方法来优化SDA与SLK信号的波形,让信号波形尽量接近方波,优化信号完整性。 糟糕的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,146
精华内容 8,858
关键字:

多个i2c设备上拉电阻