首页 > 其他分享 >单片机干货-IIC上拉电阻有什么用?

单片机干货-IIC上拉电阻有什么用?

时间:2024-03-20 14:44:19浏览次数:27  
标签:输出 电阻 高电平 总线 单片机 上拉 IIC I2C SDA

简短不看版:

1. I2C 要加上拉电阻,阻值一般为3-10K(通常选4.7k)

2. 不仅要加上拉电阻,并且同时SCL,SDA要配置成开漏输出模式。

3. 目的一方面是为了防止出现如图所示的短路问题,另外一方面是为了总线仲裁(看谁能往总线写数据)

另一方面是因为I2C是一种多主机协议,而SDA只有一根线,因此传输数据时需要进行仲裁;而通过“线与”的特性——当总线繁忙的时候SDA为0,此时主机不能传输数据,否则会发生混乱。

 

I2C总线特点

I2C总线是飞利浦公司开发的一种2线的半双工串行通信协议,通常用于电子设备的短距离通信。I2C总线具有两根总线,分别是时钟线SCL和数据线SDA;SCL用来进行通信双方信号同步,SDA用于进行数据交互。I2C总线是多主多从的拓扑结构,支持总线仲裁。

I2C为什么加上拉电阻

I2C总线是一种我们使用得比较多的总线协议,在使用时是否考虑过要加上拉电阻?I2C总线需要加上拉电阻,但是我们大多数小伙伴都没有仔细想过为什么要加上拉电阻。

我们都知道I2C协议中规定I2C的SCL和SDA都是开漏输出,开漏输出只能输出低电平不能输出高电平,我们想要输出高电平就需要加上拉电阻来实现。I2C协议中为什么要规定SCL和SDA是开漏输出?首先I2C是多主多从结构,一条总线上挂有多个设备;如果是推挽输出,当两个设备的电平不同时则会造成短路。


图 I2C架构

开漏输出除了能防止多设备使用时造成短路,还具有线与功能。I2C支持多主多从,当多个设备同时抢占总线时就需要仲裁机制。I2C总线是通过线与机制来实现总线仲裁的,在I2C协议中定义SDA为高电平时,说明总线空闲主设备可以占用总线,占用后将其拉低开始传输数据。SDA为低电平期间,标志总线已经被一个主设备占用其余主设备将退出。由于有上拉电阻,默认状态下SDA是高电平表示总线空闲,当总线上的一个设备将SDA拉低后,由于线与逻辑,SDA整条线都为低,其余设备就无法抢占总线了从而达到了仲裁的效果。

上拉电阻取值

上面我们已经说到,由于I2C开漏输出需要输出高电平我们就需要加上拉电阻。那上拉电阻该如何取值呢?通常情况下我们使用4.7kΩ,就能适用于大多数应用场景。如果需要更精确的电阻值,我们可以使用以下公式:

Rmin = (Vcc - Vol) / Iol

Rmax=Tr / (0.8473 * Cb)

R 是所需的上拉电阻值(Ω);

Vcc 是供电电压(伏特,V);

Vol 是I2C总线上的输出电平电压(通常是0.4V);

Iol 是I2C总线上的输出电流(通常是3mA);

Tr是上升沿时间,Cb是总线电容,0.8473是标准上升沿时间;

通过上面这个公式可以计算出合适的取值。由上可知,供电电压决定上拉电阻的最小值,总线负载电容决定上拉电阻的最大值。

常见的上拉电阻阻值有1k、1.5k、2.2k、4.7k、5.1k、10k等。

标签:输出,电阻,高电平,总线,单片机,上拉,IIC,I2C,SDA
From: https://www.cnblogs.com/FBsharl/p/18085187

相关文章

  • 蓝桥杯单片机小蜜蜂学习笔记——矩阵键盘
    笔记仅供学习参考学习视频链接【基础技能07】矩阵键盘的扫描原理与基本应用基本原理(图片来自欧老师的视频)讲一下基本原理吧图片的左半部分是矩阵键盘的布局R1R2R3R4C1C2C3C4都是IO端口(就是电平高低可以人为控制)图片右半部分上面是独立按键下面是矩阵键盘两者的区......
  • 蓝桥杯单片机快速开发笔记——超声波测距
    一、原理分析        超声波测距是一种常见的测距方法,其原理是利用超声波在空气中传播的速度恒定且较快的特性,通过发送超声波信号并接收回波,计算出物体与传感器之间的距离。以下是超声波测距的原理和应用:原理:发送超声波信号:超声波传感器发送一个短脉冲的超声波信......
  • Exynos4412 IIC Controller
    学习资料来源:https://www.bilibili.com/video/BV14o4y1Y7A1?p=10&vd_source=432ba293ecfc949a4174ab91ccc526d6寄存器描述来自Exynos4412User'sManual 在Exynos4412芯片中,使用IIC,重要寄存器如下:Multi-masterI2C-buscontrolregister–I2CCONMulti-masterI2C-busc......
  • IIC协议
    学习资料来源于网络和https://www.bilibili.com/video/BV14o4y1Y7A1?p=7&vd_source=432ba293ecfc949a4174ab91ccc526d6IIC基本术语:IIC总线是Philips公司在八十年代推出的一种串行、半双工总线。主要用于近距离、低速的芯片之前的通信;IIC总线有两根双向的信号线,一根数据线SDA用......
  • 单片机各种位运算总结
    单片机各种位运算总结当在单片机中需要进行寄存器操作或者读取/发送数据时,可能用到位操作,因此在此做一个总结,将可能用到的位操作进行一个总结并解析。位运算具体的计算方式:【STM32】位操作、按位与、按位或、按位异或、取反、左移、右移等基础C语言知识补充_按位与操作是什么......
  • 0098-基于单片机的洗衣机仿真设计
    功能描述1、采用51/52单片机作为主控芯片;2、采用数码管显示计时秒数,单个操作均为20秒;3、采用继电器控制进水、排水;4、采用L298驱动电机;5、具有强洗、标准洗、弱洗、甩干四种模式;6、强洗流程:进水、三轮洗涤、排水、甩干、进水、漂洗、排水、甩干;7、标准洗流程:进水、两轮......
  • 692、基于51单片机的自行车(调速,LCD1602)
    毕设帮助、开题指导、技术解答(有偿)见文末。目录一、设计功能二、proteus仿真三、原理图四、程序源码五、资料包括一、设计功能自行车调速系统1、使用LCD1602显示当前速度和设置速度2、使用电位器设置当前速度,模拟把手调速3、按键启停系统4、速度控制......
  • 693、基于51单片机的RGB调色(PWM)
    毕设帮助、开题指导、技术解答(有偿)见文末。目录一、设计功能二、proteus仿真三、原理图四、程序源码五、资料包括一、设计功能采用PWM调制方式进行三基色LED配色控制的研究,实验证明其电路简单、操作方便,能很好的实现各种颜色的配置和切换使用6个按键分别......
  • 694、基于51单片机的报警器(模拟量,上限,TLC1543,LCD1602)
    毕设帮助、开题指导、技术解答(有偿)见文末。目录一、设计功能二、proteus仿真三、原理图四、程序源码五、资料包括一、设计功能简易报警器(可用作CO2、CH4、CO、粉尘、酒精、NH2等模拟量传感器报警)1、测量物理量的浓度值2、如果浓度值超过阀值,报警。3、......
  • 688、基于51单片机的智能婴儿车(温湿度,音乐,避障,声音)
    毕设帮助、开题指导、技术解答(有偿)见文末。目录一、设计功能二、proteus仿真三、原理图四、程序源码五、资料包括一、设计功能二、proteus仿真三、原理图四、程序源码五、资料包括需要完整的资料可以点击下面的名片,找我要资源......