I2C 的开漏和上拉电阻
来源:互联网 发布:客户生日提醒软件 编辑:程序博客网 时间:2024/05/16 11:52
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
开漏是指放大电路中三极管集电极开路;
上拉电阻是用来把无源器件点的电位拉到电源电位;
可以将多个开漏输出的Pin,连接到一条线上。形成 “与逻辑” 关系。当PIN_A、PIN_B、PIN_C任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。(有一个变低,就把SDA拉低了。说明开始传送信号)。
在I2C总线中有2个口线,SDA和SCL。这两个口线对为OC输出。什么是OC呢?相对OC还有什么输出呢?
OC就是开漏输出(Open Collector)的简称,有时候也叫OD输出(Open-Drain),OD是对mos管而言,OC是对双极型管而言,在用法上没啥区别。
相对于OC输出,另一种输出叫推挽输出(Push-Pull),一般的MCU管脚输出可以设置这两种模式。这里分别介绍下这两种输出的不同点。
推挽输出: 可以输出高、低电平连接数字器件,推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.
开漏输出: 输出端相当于三极管的集电极未接任何电平,要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。
简单的这样理解就可以了。如果管脚设置成推挽输出模式,输出高时,IO口相当于VCC,输出低时IO口相当于接地。如果管脚设置成开漏输出模式,输出高时,IO口的电平会和与其相连的口线进行与操作,如果都为高,才会被上拉拉成高电平,输出为低时,也相当于接地。
I2C总线要实现线与的功能,所以SDA和SCL总线都必须设置为开漏输出模式。
一般的用法是会在漏极外部的电路添加上拉电阻。
I2C主线上的电阻是上拉电阻,是为了保证电平状态,不是供电的;比如控制器无输出信号的时候,主线上确定为高电平,有低电平信号时,则主线上信号被拉低,为确定的低电平;
0 0
- I2C 的开漏和上拉电阻
- I2C串联保护电阻和上拉电阻的选择
- I2C上拉电阻
- I2C上拉电阻
- I2C 上拉电阻
- I2C上拉电阻
- i2c上拉电阻的实例分析
- i2c上拉电阻的实例分析
- I2C总线上拉电阻的选择
- I2C 开漏输出与上拉电阻
- I2C上拉电阻问题
- 上拉电阻 下拉电阻的汇总
- I2C总线-上拉电阻阻值的计算
- STM32 I2C上拉电阻的选择问题
- I2C上拉电阻的选择(最小值)
- I2C上拉电阻的选择(最大值)
- I2C上拉电阻取值问题
- I2C上拉电阻取值问题
- Primetime 的使用
- python 语法笔记
- python 常用模块
- python PIP 或者&…
- PYTHON 的 YAML 和PKL
- I2C 的开漏和上拉电阻
- Python 处理文件例程
- Git 的有用操作 (更新)
- PyQt学习笔记(7)——Qt Design…
- linux 将模块编译进内核
- python super 继承
- Python正则表达式中的 零宽断言 …
- makefile中的all和.PHONY的…
- C# 单例(Singleton)模式