【STM32】I2C为什么要开漏输出和上拉电阻

为什么需要使用开漏输出

防止短路:假设使用推挽结构,多个设备挂在同一总线上,当存在某一设备将某一信号驱动为高电平,而其他设备驱动为低电平,会导致短路,导致器件损坏或降低寿命。对于开漏结构,任何设备都不能将信号线驱动为高电平。

线与:当总线上连接多个设备时,只要有一个设备输出低电平,那么整条总线便处于低电平状态,这时候的总线被称为占用状态,其他设备输出的高电平是无效的。

为什么要上拉电阻

开漏输出的特性就是只能输出低电平和高阻态(高阻态可以理解为通过很大的电阻把输出引脚和MCU芯片内部隔开)。因为每条线上需要使用一个外部的上拉电阻,在输出高阻态时,上拉电阻将总线上拉至高电平。

上拉电阻对I2C信号的影响

**对总线而言,上拉电阻越大,信号的上升时间就越长,通信速率就越低,反之亦然。**但电阻也并不是越小越好,阻值过小的话,总线低电平时电阻上的大电流会增加电路的功耗。

相关推荐
山木嵌入式6 小时前
【STM32实战】轻量级任务调度器实现
stm32·单片机·rtos·任务调度器·裸机开发
guygg886 小时前
基于霍尔传感器的BLDC控制源码
单片机·嵌入式硬件
ytttr8736 小时前
DSP 28335 CAN总线通信程序
开发语言·stm32·单片机
一枝小雨8 小时前
RISC-V架构sp寄存器 & RISC-V架构下FreeRTOS任务上下文保存与恢复
单片机·架构·嵌入式·risc-v·rtos·内核原理
BW.SU9 小时前
PackagingTool 嵌入式资源打包合并工具
单片机·二进制·嵌入式开发·资源合并软件·图片打包
长安第一美人10 小时前
工业级实时监控系统开发:PHP+ZMQ+JS 前后端分离架构全解析
前端·嵌入式硬件·架构·交互·rk3588·zmq后端
田甲10 小时前
STM32开发环境迁移实践:从 CubeMX 生成 CMake 工程到 VS Code 编译与调试
stm32·单片机·嵌入式硬件
hoiii18710 小时前
在 STM32F1上读取 BMX055 三轴加速度
stm32·单片机·嵌入式硬件
嵌入式小站10 小时前
STM32 零基础可移植教程 04:按键输入,为什么按下去读到的是 0 或 1
chrome·stm32·嵌入式硬件
三佛科技-1873661339711 小时前
BP8522D贴片SOP7,5V150mA高集成度无VCC电容降压型恒压芯片解析
单片机·嵌入式硬件