【GPIO】3.上/下 拉电阻通讯中的作用

一.什么是上/下拉电阻

上拉、下拉电阻统一称为拉电阻,作用是将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉)

这里有人可能会疑惑?

什么叫状态不确定的信号?
在数字电路中,通常有三种状态:0(低电平)、1(高电平)、浮空(不确定、随机)

在江科大STM32学习笔记(上)中GPIO章节中讲述位结构的时候有提到过上/下电阻。

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

1.1 开启上拉电阻或下拉电阻的作用

  1. 确定默认电平状态:
  • 上拉电阻:当开启上拉电阻时,GPIO引脚的默认电压为高电平。STM32内部的上拉电阻是一个弱上拉,即通过此上拉电阻输出的电流很小。如果需要输出较大的电流,则需要外接上拉电阻,以增加导线的输出电流。
  • 下拉电阻:开启下拉电阻时,引脚的默认电压为低电平。下拉电阻的作用是降低导线的输出电流,确保在特定条件下输出低电平。
  1. 防止引脚悬空:
  • 当上拉和下拉电阻都不开启时,GPIO引脚处于浮空模式,此时引脚的电压是不确定的,可能会随时间改变。为了避免这种情况,通常会将引脚设置成上拉或下拉模式,以确保引脚有一个确定的默认电平状态。这有助于防止引脚悬空,避免产生积累电荷或静电荷,从而造成电路不稳定。
  1. 电路设计和保护:
  • 在电路设计中,根据具体的应用需求选择上拉或下拉模式。例如,在检测信号时,如果被检测信号接到电源的低电位(如通过按键接到VSS),则应配置为上拉模式;反之,如果接到高电位(如通过按键接到VDD),则应配置为下拉模式。
  • 内部的上拉和下拉电阻阻值典型值为40K欧姆,最大为50K欧姆。如果需要提高信号波形的爬升或下降速率,可以在IO口外部增加强拉电阻,以减小时间常数,加快波形变化。但需要注意的是,强拉电阻由于电流较大,可能会增加系统的功耗并引起发热问题。

二.什么是弱上下拉和强上下拉?

那么上下拉电阻阻值该取多大?

首先阻值不能太小,因为太小,开关闭合时会产生较大的电流,会引起一来功耗大,二来也不安全。试想一下电阻为0是什么后果。
另外阻值也不能太大,阻值太大,上拉/下拉的作用就变弱,越大越接近于开路,电流太小,引脚识别不了,开关断开时IO就越接近于浮空状态,就越容易受干扰。试想一下阻值无穷大是什么效果。

所以这个电阻既不太大,也不太小,一般是几K到几十K大小,兼顾了功耗和上下拉作用。

这里就引入了强弱的概念,弱就是阻值大,强就是阻值小。
在这里插入图片描述

三.通讯中的上拉电阻

1.串口-uart的上拉电阻

这个人 讲的很好,可以看他的这篇 ❤️ # STM32系列-串口-uart-软件引脚内部上拉 或者 外部电阻上拉-原因问题的搜寻❤️
在这里插入图片描述

2.I2C的上拉电阻

I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强, 不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。

I2C总线是一种用于芯片之间进行通信的串行总线。它由两条线组成:串行时钟线(SCL)和串行数据线(SDA)。这种总线允许多个设备在同一条总线上进行通信。
  
在这里插入图片描述

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

首先为什么I2C是开漏输出?

  1. 防止短路
    I2C协议支持多个主设备与多个从设备在一条总线上,如果不用开漏输出,而用推挽输出,会出现主设备之间短路的情况。所以总线一般会使用开漏输出。
    在这里插入图片描述
    在这里插入图片描述
  2. 可以实现“线与”逻辑,可以减少一个与门的使用,简化电路。

为什么要接上拉电阻?

连接上拉电阻后,才可以输出高电位。
在这里插入图片描述

  • 漏极开路是为了防止I2C上连接多个主设备与多个从设备时出现短路
  • 上拉电阻的存在是为了在使用漏极开路之后,可以输出高电平
  • “线与”是为了在多个主设备同时占用总线时,具有仲裁的能力

未完待续

参考文章:
江科大STM32学习笔记(上)
通俗理解STM32中的上/下拉电阻
到底什么是弱上下拉和强上下拉?
I2C中为什么线与?为什么要有上拉电阻?

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

分享购:前期布局与后期问题解决策略

在当今电商与消费模式不断创新的时代,分享购作为一种极具潜力的商业模式,正受到越来越多的关注。然而,要想让分享购真正发挥优势、实现可持续发展,无论是前期的精心布局,还是后期妥善应对各类问题,都至关重…

51c大模型~合集46

我自己的原文哦~ https://blog.51cto.com/whaosoft/11908179 #HITS 北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率 单元测试是软件开发流程中的一个关键环节,主要用于验证软件中的最小可测试单元,函数或模块是否按预期工作…

中断与异常处理:走进代码

在操作系统的核心部分,中断(Interrupt)和异常(Exception)的处理机制是不可或缺的基础。它们的设计决定了系统的响应能力、稳定性和可扩展性。本文将深入探讨 Linux 内核中的中断与异常处理机制,并结合更多实…

智慧社区管理系统平台全面提升物业管理效率与用户体验

内容概要 随着科技的发展,智慧社区管理系统平台应运而生,成为现代物业管理的重要工具。这个平台通过整合多种先进的管理手段,为物业服务提供了全新的解决方案。智慧社区管理系统的核心在于其高效、便捷、智能的特点,最大程度地提…

Pytest-Bdd-Playwright 系列教程(9):使用 数据表(DataTable 参数) 来传递参数

Pytest-Bdd-Playwright 系列教程(9):使用 数据表(DataTable 参数) 来传递参数 前言一、什么是 datatable 参数?Gherkin 表格示例 二、datatable 参数的基本使用三、完整代码和运行效果完整的测试代码 前言 …

Java学习——Day10

static修饰的成员变量和方法,从属与类。普通变量和方法从属于对象的 静态块就是类在初始化的执行的语句块,静态块中常调用静态变量和静态方法。 以下编写一段代码举个例子 Java参数传值机制 java中,方法中所有参数都是“值传递”&#xff…

StructRAG Boosting Knowledge 论文笔记

StructRAG: Boosting Knowledge Intensive Reasoning of LLMs via Inference-time Hybrid Information Structurization 论文精读 背景知识 知识密集型推理任务(knowledeg- intensive reasoning task): 知识密集型推理任务(knowledge-inte…

【点云上采样】最近邻插值上采样算法 增加点云密度

看了很多文章都是用CGAL去做的,又是下载安装CGAL的贼麻烦,关键弄好还不能用,气死了。 文章目录 前言一、最近邻插值上采样算法1、原理:2、步骤: 二、完整代码三、效果对比 前言 传感器采集到的点云比较稀疏&#xff0…

C++仿函数

概念 仿函数本质上是一个类(class)或者结构体(struct),不过这个类重载了函数调用运算符 operator(),使得它的实例对象可以像函数那样被调用。从使用方式上看,它能表现出类似函数的行为&#xf…

【Linux进程基础篇】总结 | => 进程环境变量(超详细)

-------------------------------------------------------------------------------------------------------------------------------- 每日鸡汤:Never frown, even when you are sad, because you never know who is falling in love wi…

PowerBI 无法拖动字段到组件上

今天在做PowerBI时发现一个奇怪的问题。 本来好好的报表,突然无法拖动字段到组件上。 后来在网上搜索相关问题,发现原因可能是因为"隐式度量值"被禁用。 就是说报表无法自动聚合计算,所以无法拖动字段到组件上。 正确的: 有问题…

熟食店称重计价秤软件下载 佳易王触摸屏称重自动读取重量自动计算金额系统操作教程

一、概述 【软件资源文件下载在文章最后】 熟食店称重计价秤软件下载 触摸屏称重自动读取重量自动计算金额系统操作教程 1、软件可以自动读取称的重量。2、自动计算金额并累计。不需打印条形码直接称重计算,节省人力和时间。 软件同时支持称重商品和条形码百货商…

十一 手写Spring框架

十一、手写Spring框架 Spring IoC容器的实现原理:工厂模式 解析XML 反射机制。 我们给自己的框架起名为:loveSpring 第一步:创建模块loveSpring 采用Maven方式新建Module:loveSpring 打包方式采用jar,并且引入do…

360多模态及文档理解大模型技术亮相全球机器学习技术大会,共探AI技术新前沿...

北京,2024年11月15日 —— 在人工智能技术飞速发展的今天,全球技术生态正经历着深刻的变革。2024全球机器学习技术大会(北京站)于11月14-15日在北京举行,汇聚了顶尖的AI专家、学者和行业实践者,共同探讨机器…

六自由度双足机器人运动控制

最近迷上了研究机器人,花了很多时间研究机器人的控制和交互。先后开发出来了四足四自自由度,四足八自由度,两足四自由度,两足六自由度机器人,并为他们开发了相应的大模型语音交互。通过努力,既锻炼了动手组…

shell脚本(2)

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:shell编程(2)永久环境变量和字符串显位_哔哩哔哩_bilibili 本文主要讲解临时变量和永久变量以及字符串长度截取操作。 一…

SEW MDX61B 变频器调试说明

SEW MDX61B 变频器调试说明 1、打开MOVITOOLS MotionStudio软件 2、创建新项目(可根据需求更改项目名称及保存路径) 新建完成 3、电机初始化 连接新变频器和新电机时,必须进行电机初始化。电机初始化目的为配对电机参数至变频器,简单说就是让变频器知道需要控制的是什么…

【软件测试】设计测试用例的万能公式

文章目录 概念设计测试用例的万能公式常规思考逆向思维发散性思维万能公式水杯测试弱网测试如何进行弱网测试 安装卸载测试 概念 什么是测试用例? 测试⽤例(Test Case)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包…

泛微OA 请求外部数据源

1 .oa 外部数据源配置好 取数据源名称 引用key 固定写法 datasource.A_nc datasource.数据源名称 getConnection("datasource.A_nc",xf);//A账 2 引用方式 package weaver.interfaces.jphr;import java.io.UnsupportedEncodingException; import java.sql.Conne…

深度学习基础—Bleu得分

引言 机器翻译任务中,通常会需要评价指标来评估机器翻译的好坏。仅通过统计翻译词在标准翻译中出现的次数这种方式很不合理,就需要用到Bleu得分来进行评估。 1.n-gram(N元组) 假设要翻译:Le chat est sur le tapis&am…