STM32之GPIO四种输出模式——P-MOS和N-MOS管的工作原理——双二极管钳位保护电路——上拉电阻

GPIO

GPIO即general purpose input/output ,中文意识就是通用输入输出。

输入输出是什么?

本质就是:输入输出高低电平 (模拟信号后面再谈)。输入本质是为了获取外设的信息 ,输出本质是控制外设

获取输入信息示例

按下低电平,松开高电平

输出高低电平控制外设示例

输出低电平,LED灯亮,输出高电平灭。

通用是什么意思?

很简单,就是大家都能用,像串口,IIC,SPI都能复用GPIO用于输入输出高低电平。

GPIO与普通引脚的关系

GPIO可以说就是普通引脚

外设宏 引脚前缀 说明
GPIOA PA PA0 ~ PA15
GPIOB PB PB0 ~ PB15
GPIOC PC PC0 ~ PC15
GPIOD PD PD0 ~ PD15
GPIOE PE PE0 ~ PE15
GPIOF PF PF0 ~ PF15
GPIOG PG PG0 ~ PG15

双二极管钳位保护电路

如图就是双二极管钳位保护电路

原理:利用了二极管的单向导电性,下面我来分析一下,假设导通电压为0.7V,电流想要流入引脚就必须在 -0.7V~+4V,当电压大于4V时达到上部二极管的导通电压,电流从引脚流向VDD,当电压小于-7V时,电流从引脚流向VSS.

GPIO的输出方式

GPIO的输出方式一般有四种

输出模式 英文全称 内部结构 工作原理 特点 典型用途
通用推挽输出 GPIO_Mode_Out_PP PMOS + NMOS 一对互补管 写 1→PMOS 导通输出高电平;写 0→NMOS 导通输出低电平 驱动能力强,主动输出高 / 低电平 LED、继电器、普通 IO 控制
通用开漏输出 GPIO_Mode_Out_OD 仅 NMOS 下拉管 写 0→NMOS 导通拉低;写 1→NMOS 截止,引脚高阻,需外部上拉才能得到高电平 支持 "线与"、电平转换 多设备共享信号线、普通开漏信号
复用推挽输出 GPIO_Mode_AF_PP 互补管,电平由外设接管 引脚不受 ODR 寄存器控制,交给片上外设输出 电气特性为推挽,驱动强 SPI 的 MOSI/MISO、串口 TX、PWM 输出
复用开漏输出 GPIO_Mode_AF_OD NMOS,电平由外设接管 外设接管引脚,电气特性为开漏 只能拉低,高电平靠外部上拉 I2C 的 SDA/SCL(最典型)

P-MOS和N-MOS管

作用

要想了解输出,必须先要了解P-MOS和N-MOS管.我先对这些名词作一些解释 ,P即positive, 积极的 , N,即negative, 消极的, MOS是金属氧化物半导体. 那它是什么?又有什么作用呢?

  • NMOS(N 沟道 MOS 管)
  • 是什么:电压控制开关。
  • 作用:导通时把引脚拉到地(低电平)
  • PMOS(P 沟道 MOS 管)
  • 是什么:电压控制开关。
  • 作用:导通时把引脚拉到电源(高电平)

输出原理总图

P-MOS管和N-MOS管详细原理

P-MOS管和N-MOS管的符号

  • S:source,源极,"Source"意为"源头",指这里是载流子(电子或空穴)的来源
  • D:Drain,漏极,"Drain"意为"漏出",指载流子最终从这里流出器件,D当做Destination看貌似也行,但是Destination是目的地的意思,MOS管往往不是目的地,而是一个电流路过的器件,所以官方Drain更好一些。
  • G:Gate,栅极,Gate就是门的意思,预示着开关的开启和关闭由它控制

说明一下,未来,S和D是要接VCC或者GND,G要接一个控制电路,来控制开关的打开和闭合,从而让S和D导通。未来真正的电流,是在S和D之间流动的。

P-MOS的导通过程(抽象)

N-MOS的导通过程(抽象)

P-MOS和N-MOS的链接图

上拉电阻

在开漏输出模式下 , 写0时会输出低电平 ,写1时会输出高阻态. 那么能不能在输出高阻态时输出高电平呢?可以 , 只需要在引脚外面加一个上拉电阻就行.

相关推荐
HRTOS1 小时前
HRTOS 4.0 DEBUG:面向 8051 实时系统运行状态的轻量级调试组件
单片机·嵌入式硬件·51单片机
LCG元2 小时前
STM32F407 I2S驱动WM8978音频播放实战:PLLI2S时钟整定、DMA双缓冲防爆音与WAV采样率实测
stm32·嵌入式硬件·音视频
ZLG_zhiyuan2 小时前
明明加了隔离,电源为啥还是烧了?
单片机
不怕犯错,就怕不做2 小时前
RK linux在buildroot中如何添加linux命令
linux·驱动开发·嵌入式硬件
咖丨喱2 小时前
【MMC驱动分析】
嵌入式硬件
fhq_fn_jgd2 小时前
51单片机(中断,定时器)
stm32·单片机·嵌入式硬件
hahaha60162 小时前
HLS高层次综合设计技巧--数组
开发语言·嵌入式硬件·算法·fpga开发
zhangzhangkeji2 小时前
stm32 笔记 - 2:库函数方式的初始化,项目的文件结构
stm32·arm
云泽8083 小时前
STM32 USART 详解(六):HAL库初始化及阻塞式收发源码拆解
stm32·单片机·嵌入式硬件