STM32F103GPIO工作模式及原理

发布时间:2024年01月08日

GPIO简介

GPIO,全称为通用输入输出端口,是STM32系列微控制器中的一个重要概念。STM32芯片的GPIO引脚可以被配置为输入模式或输出模式,实现与外部设备的通信、控制以及数据采集功能。

GPIO工作模式

输入模式

  1. 浮空输入
  2. 上拉输入
  3. 下拉输入
  4. 模拟输入

输出模式

  1. 开漏输出
  2. 推挽输出
  3. 推挽式复用功能
  4. 开漏式复用功能

输出速度

  • 2MHz
  • 10MHz
  • 50MHz

GPIO框图和电路解析

在这里插入图片描述

电路标识

  • VDD通常指的是正电源电压,即芯片的工作电压。它是为芯片内部逻辑电路提供电源的,使得芯片能够正常工作。
  • VSS通常指的是地线或0V参考电压。它是为芯片内部逻辑电路提供参考电压的,使得芯片内部逻辑能够正常工作。
  • VDD_FT 对5伏容忍I/O脚是特殊的,它与VDD不同

电路元件

  • 保护二极管:保护二极管的作用是防止引脚外部过高或过低的电压输入。当引脚电压高于VDD时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,从而保护芯片不受异常电压的损坏。 然而,尽管有二极管的保护,大电压和大电流的接入仍可能烧坏芯片。因此,在设计中应考虑引脚的保护电路,避免直接外接大功率驱动器件,如电机等。
  • 上下拉电阻:上下拉电阻的作用是将不确定的信号线确定为高电平或低电平,防止外界干扰。具体来说,当某个引脚不控制时,上下拉电阻可以将该引脚确定为高电平或低电
  • TTL肖特基触发器:TTL肖特基触发器是一种数字逻辑门电路,由两个或多个与非门组成。它的作用是将输入的模拟信号转换为数字信号,即当输入信号达到一定幅度时,触发器输出高电平,否则输出低电平。平。
  • P-MOS:P-MOS管通常与输出引脚相连,用于控制输出信号的电平状态。当输出信号为高电平时,P-MOS管导通,输出引脚通过P-MOS管连接到VDD,输出高电平。当输出信号为低电平时,P-MOS管截止,输出引脚通过N-MOS管接地,输出低电平。
  • N-MOS:N-MOS管通常与输出引脚相连,用于控制输出信号的电平状态。当输出信号为高电平时,N-MOS管截止,输出引脚通过P-MOS管连接到VDD,输出高电平。当输出信号为低电平时,N-MOS管导通,输出引脚接地,输出低电平。

GPIO工作模式电路解析

浮空输入

请添加图片描述

浮空输入,是指不接入上拉或下拉电阻,通过TTL肖特基触发器使得输入进来的电平数据更加稳定。在该模式下,引脚的电平状态完全取决于外部信号,当外部信号不接入时,引脚的电平状态不确定。这种模式一般用于按键检测之类的应用中。

上拉输入

请添加图片描述

上拉输入通过接入上拉电阻来读取引脚电平。当外部信号未接入时,引脚默认电平为高电平。

下拉输入

请添加图片描述

下拉输入通过接入下拉电阻来读取引脚电平。当外部信号未接入时,引脚默认电平为低电平。

模拟输入

请添加图片描述

开漏输出

请添加图片描述
在开漏输出模式下P-MOS不参与工作,控制输出0,N-MOS导通,此时为低电平,控制输出为1,N-MOS关闭,使得引脚既不输出高电平,也不输出低电平,有IO外部链接决定。

推挽输出

请添加图片描述
在推挽输出模式下,当内部信号为1时,上边的P-MOS管导通,下边的N-MOS管截止,IO口输出高电平。当内部信号为0时,上边的P-MOS管截止,下边的N-MOS管导通,IO口输出低电平。

推挽式复用功能

请添加图片描述
复用推挽输出模式下的IO不再受ODR控制,当外围电路产生低电平时,会导致IO口输出低电平;当外围电路产生高电平时,会导致IO口输出高电平。

开漏式复用功能

请添加图片描述
在复用开漏输出模式下,IO可以输出高低电平,但无法直接读取外部信号,该模式下的IO不再受ODR控制。由于开漏输出只能输出低电平,如果要输出高电平必须通过上拉电阻才能实现,因此上拉电阻的选择也会影响复用开漏输出的工作状态。

IO工作模式的选取

输入模式

浮空输入

  • 当外部电路中已经包含适当的下拉电阻时,可以选择浮空输入模式。如果连接的是一个开关,开关的另一端已经通过外部电阻连接到地,那么可以选择使用浮空输入模式。
  • 在某些模拟电路中,输入信号可以通过电阻分压器来模拟,当输入信号为0时,电阻分压器的输出电压为0V,相当于浮空输入模式。

注:需要注意的是,浮空输入模式并不常用,但在特定情况下,如模拟输入或低功耗下省电等场景中可能会使用到。在使用浮空输入模式时,应避免外部信号功率很小,否则可能会导致内部上拉电阻影响外部输入电平。因此,在选择使用浮空输入模式时需要根据实际情况进行评估和选择。
上拉输入

  • 上拉输入主要用于检测低电平的输入,并能在未输入时默认IO为高电平。这种模式适用于电路为低有效的元器件的情况(例如LED共阳极)。

下拉输入

  • 下拉输入主要用于检测高电平的输入,并能在未输入时默认IO为低电平。这种模式适用于电路为高有效的元器件的情况(例如LED共阴极)。

模拟输入

  • 当需要采集模拟量信号时,如电压、电流、温度等参数,模拟输入模块可以将这些信号采集到计算机中,并进行相应的处理。
    在自动化和信息化系统中,模拟输入模块可以应用于各种传感器和变送器的信号采集,实现数据采集和监控系统的集成。

输出模式

开漏输出

  • 多设备共享总线:开漏输出允许多个设备共享同一个总线或信号线,通过合理的电平控制,实现对总线或信号线的协调使用,避免冲突和干扰。
  • LED控制:开漏输出也常用于控制LED(Light-EmittingDiode)的亮灭。LED在工作时需要限流,以避免过电流损坏。通过使用开漏输出和外部限流电阻,可以有效控制LED的亮度和闪烁频率。
  • 输入/输出扩展:开漏输出可用于输入/输出(I/O)扩展。通过使用外部电阻和开漏输出组合,可以将一个GPIO(General Purpose
    Input/Output)引脚扩展为多个输入或输出引脚。
  • 推挽输出无法满足需求时:开漏输出和推挽输出在工作原理、上拉电阻、输出电流和应用场景上存在差异。例如,当需要直接驱动负载时,推挽输出更合适;而在多设备共享总线的场景中,开漏输出更为适合。

推挽输出

  • 当输出电平为0V和3.3V时,推挽输出模式是最佳选择。这是因为推挽输出可以输出高电平和低电平,并且不需要外部上拉或下拉电阻。
  • 在高速切换开关状态的应用中,推挽输出模式也是很好的选择。因为它既提高了电路的负载能力,也提高了开关速度。

推挽式复用功能

  • 当GPIO的引脚用作串口的输出时,可以使用复用推挽输出模式。这种模式可以提高电路的负载能力和开关速度,适用于高速切换开关状态的应用。

开漏式复用功能

  • 控制多个PWM信号:当需要控制多个PWM信号时,例如,当多个PWM信号由同一GPIO口输出,并且需要连接在一起时,可以使用复用开漏输出模式。
  • 复用其他外设功能:当GPIO口需要复用其他外设功能,例如I2C的SCL或SDA等,复用开漏输出模式可以方便地实现这些功能。
    多路输出连在一起:当需要将多个输出端口连在一起时,例如,控制多个LED或其他负载,复用开漏输出模式可以方便地实现。

有什么错误请及时指出🤝

文章来源:https://blog.csdn.net/weixin_52297353/article/details/135450126
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。