IIC总线上拉电阻计算

IIC总线上拉电阻计算

  • 1. 概述
  • 2. 上拉电阻计算
  • 3. 总线传输速度与功率
  • 4. 实例计算

1. 概述

IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I²C的正确读法为“I平方C”(“I-squared-C”),而“I二C”(“I-two-C”)则是另一种错误但被广泛使用的读法。自2006年10月1日起,使用I²C协议已经不需要支付专利费,但制造商仍然需要付费以获取I²C从属设备地址。

即I2C,一种总线结构。

例如:内存中的SPD信息,通过IIC,与BX芯片组联系,IIC 存在于英特尔PIIX4结构体系中。
随着大规模集成电路技术的发展,把CPU和一个单独工作系统所必需的ROM、RAM、I/O端口、A/D、D/A等外围电路集成在一个单片内而制成的单片机或微控制器愈来愈方便。目前,世界上许多公司生产单片机,品种很多。其中包括各种字长的CPU,各种容量的ROM、RAM以及功能各异的I/O接口电路等等,但是,单片机的品种规格仍然有限,所以只能选用某种单片机来进行扩展。扩展的方法有两种:一种是并行总线,另一种是串行总线。由于串行总线的连线少,结构简单,往往不用专门的母板和插座而直接用导线连接各个设备。因此,采用串行线可大大简化系统的硬件设计。PHILIPS公司早在十几年前就推出了I2C串行总线,利用该总线可实现多主机系统所需的裁决和高低速设备同步等功能。因此,这是一种高性能的串行总线。

飞利浦电子公司日前推出新型二选一I2C主选择器,可以使两个I2C主设备中的任何一个与共享资源连接,广泛适用于从MP3播放器到服务器等计算、通信和网络应用领域,从而使制造商和终端用户从中获益。PCA9541可以使两个I2C主设备在互不连接的情况下与同一个从设备相连接,从而简化了设计的复杂性。此外,新产品以单器件替代了I2C多个主设备应用中的多个芯片,有效节省了系统成本。

I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。

在这里插入图片描述

2. 上拉电阻计算

避免总线信号的混乱,要求各设备连接到总线的输出端时必须是漏极开路(OD)输出或集电极开路(OC)输出。设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。而串行时钟线也应是双向的,作为控制总线数据传送的主机,一方面要通过SCL输出电路发送时钟信号,另一方面还要检测总线上的SCL电平,以决定什么时候发送下一个时钟脉冲电平;作为接受主机命令的从机,要按总线上的SCL信号发出或接收SDA上的信号,也可以向SCL线发出低电平信号以延长总线时钟信号周期。

总线空闲时,因各设备都是开漏输出,上拉电阻Rp使SDA和SCL线都保持高电平。任一设备输出的低电平都将使相应的总线信号线变低,也就是说:各设备的SDA是“与”关系,SCL也是“与”关系。

一个强大的上拉(小电阻)阻止I2C引脚在IC上能够驱动低电平。VoL电平可以被IC的输入缓冲器读取为有效的逻辑低电平,该电平决定了最小上拉电阻[R,(min) ]。R.(最小值)是Vcc,vol (最大值)和Iol的函数:

在这里插入图片描述

由于I2C标准上升时间规定,最大上拉电阻受总线电容 (Cb)的限制。如果上拉电阻值太高,I2C线在被拉低之前可能不会上升到逻辑高。RC电路对从时间t=0开始的幅值为Vcc的电压阶跃的响应由时间常数RC表征。电压波形可以写成:

在这里插入图片描述

I2C总线的上升时间可以写成:
在这里插入图片描述

最大上拉电阻根据上升时间tr来计算:

在这里插入图片描述

表中列出了I2C总线的一些参数:

在这里插入图片描述

Rp(min)在图中绘制为VCC的函数。Rp最大值被绘制为图3中标准模式和快速模式I2C的Cb的函数。

在这里插入图片描述

在这里插入图片描述

3. 总线传输速度与功率

一旦选择了上拉电阻的最小值和最大值,就可以根据速度和功率预算之间的权衡来决定电阻值。由于更小的RC延迟,较小的电阻将提供更高的速度,而较大的电阻将提供更低的功耗。

这是一个需要折中考虑的设计。

4. 实例计算

对于具有以下参数的快速模式I2C通信,请计算上拉电阻值。

在这里插入图片描述

按照上表进行计算:

在这里插入图片描述

因此,我们可以选择966.667 Ω到1.77 kΩ之间的任何可用电阻值。可以根据功耗和速度的权衡来选择上拉电阻的值。

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

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

相关文章

【PowerQuery】Excel的PowerQuery的复制

在Excel中构建符合要求的PowerQuery连接之后,所有的PowerQuery 连接已经顺利的保存在Excel 工作簿当中,但是如何去查看已经保存的PowerQuery连接呢?图6.3 显示了查看PowerQuery连接。 Excel界面->数据页签->查询与连接 如果你的Power…

Redis从入门到精通(四:持久化)

持久化简介 什么是持久化 利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化 持久化用于防止数据的意外丢失,确保数据安全性 为什么持久化 redis是将数据存储在内存上的,一旦断电,或者因…

.NET Framework 2023 年 8 月安全和质量汇总更新

作者:Salini Agarwal 排版:Alan Wang 今天,我们发布了针对 .NET Framework 的2023 年 8 月安全和质量汇总更新。 安全 CVE-2023-36899 – .NET Framework 远程代码执行漏洞 此安全更新修复了 IIS 上的应用程序存在的一个漏洞,该…

c++类与对象(中)

文章目录 前言一、构造函数1、构造函数介绍2、构造函数特性 二、析构函数1、析构函数介绍2、析构函数特性 三、拷贝构造函数1、拷贝构造函数介绍2、拷贝构造函数特征3、拷贝构造函数的应用 -- 求n天后的日期 四、赋值运算符重载1、运算符重载2、一些运算符重载的实现3、赋值运算…

安徽省图书馆典藏《乡村振兴振兴战略下传统村落文化旅游设计》许少辉八一新著

安徽省图书馆典藏《乡村振兴振兴战略下传统村落文化旅游设计》许少辉八一新著

Java生成微信小程序二维码,5种实现方式,一个比一个简单

文章目录 前言先看官网一、JDK自带的URLConnection方式二、Apache的HttpClient方式三、okhttp3方式四、Unirest方式五、RestTemplate方式其它细节getAccessToken构建参数mapbyte[]数组 源码下载 前言 先介绍一下项目场景,主要是通过微信小程序二维码裂变分享&#…

MySQL之数据类型

目录 一、MySQL数据类型分类 二、数值类型 1、整数类型 2、bit类型 3、小数类型 三、字符串类型 1、char 2、varchar 3、char和varchar比较 四、日期和时间类型 五、enum和set 一、MySQL数据类型分类 MySQL 数据类型可以大致分为以下三类: 数值类型:用于…

我的个人网站——宏夏Coding上线啦

网站地址:宏夏Coding Github地址:🔥🔥宏夏coding网站,致力于为编程学习者、互联网求职者提供最需要的内容!网站内容包括求职秘籍,葵花宝典(学习笔记),资源推…

Qt应用开发(基础篇)——普通按钮类 QPushButton QCommandLinkButton

一、前言 QPushButton类继承于QAbstractButton,是一个命令按钮的小部件。 按钮基类 QAbstractButton 按钮或者命令按钮是所有图形界面框架最常见的部件,当按下按钮的时候触发命令、执行某些操作或者回答一个问题,典型的按钮有OK,A…

C语言数组和指针笔试题(二)(一定要看)

目录 字符数组二例题1例题2例题3例题4例题5例题6例题7总结 字符数组三例题1例题2例题3例题4例题5例题6例题7 字符数组二 char arr[] {a,b,c,d,e,f} 1:printf("%d\n", strlen(arr)); 2:printf("%d\n", strlen(arr0)); 3:printf("%d\n", strlen(…

浅谈C++|STL之string篇

一.string的基本概念 本质 string是C风格的字符串,而string本质是一个字符串 string和char * 区别 char * 是一个指针string是一个类,类内部封装了char *,管理这个字符串,是一个char * 型容器。 特点 string类内部封装了很多成…

打造基于终端命令行的IDE,Termux配置Vim C++开发环境

Termux配置Vim C开发环境,打造基于终端命令行的IDE 主要利用VimCoc插件,配置C的代码提示等功能。 Termux换源 打开termux,输入termux-change-repo 找到mirrors.tuna.tsinghua.edu.cn,清华源,空格选中,回…

终端使用代理进行大模型下载

需求 想在本地终端下载huggingface的模型进行微调使用, 但是需要代理进行访问.不然下载容易报超时错误. 解决方案 本地下载代理软件, 我这里使用的是TLY.打开全局代理, 但是这个时候发现, 页面可以打来google页面, 但是终端却ping不通www.google.com终端设置代理 # 打开代理…

Java的反射应用(Method和Class)

记录:473 场景:使用java.lang.reflect.Method和java.lang.Class类,根据Java反射原理实现使用指定字符串类名和方法名称,调用对应对象和对应方法。 版本:JDK 1.8。 1.使用Java反射调用指定类的指定方法 (1)参数说明…

Linux高性能服务器——状态机

状态机 有的应用层协议头部包含数据包类型字段,每种类型可以映射为逻辑单元的一种执行状态,服务器可以根据它来编写相应的处理逻辑。 状态之间的转移是需要状态机内部驱动的。 STATE_MACHINE(){State cur_State type_A;while(cur_State ! type_C){Pa…

MySQL间隙锁深入分析

概念 什么是间隙锁? MySQL的间隙锁(gap lock)是一种锁定相邻数据间隔的机制。 触发时机? 当使用SELECT…FOR UPDATE或UPDATE语句时,MySQL会获取一个范围锁,包括指定条件内的所有数据行,并且还…

EasyExcel3.0读(日期、数字或者自定义格式转换)

EasyExcel 3.0读(日期、数字或者自定义格式转换) 依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.1</version> </dependency>对象 package com.xiaobu.entity.vo;import …

Java之HashMap系列--创建并初始化成员的方法

原文网址&#xff1a;Java之HashMap系列--创建并初始化成员的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍创建HashMap并初始化一些成员的方法。 法1&#xff1a;匿名内部类 HashMap<String, String> map new HashMap<String, String>() {{put("name&q…

Typescript算法研究之【排列组合】

#摘要# 一转眼过去6年多了&#xff0c;没有更新过博客&#xff0c;由于近期遇到了用代码解决数学上的问题&#xff0c;比如今天说的排列组合。网上查了下&#xff0c;有好多人都实现了&#xff0c;方法各异&#xff0c;但都没有按照面向对象的方式求解。我承认我今天写的这些&…

Linux 中的 cd 命令及示例

cd命令在Linux 中称为更改目录命令。它用于有效地从当前工作目录移动到系统中的不同目录。 Linux 中 `cd` 命令的语法 光盘[目录] cd [directory]在这里,将 [directory] ​​替换为您要导航到的目标目录的路径。 “cd”命令的实际实现与示例。