MCU复位时GPIO是什么状态?

大家一定遇到过上电或者复位时外部的MOS电路或者芯片使能信号意外开启,至此有经验的工程师就会经常关心一个问题,MCU复位时GPIO是什么状态?什么电路需要外部加上下拉?

MCU从上电到启动,实际可分为复位前和复位后、初始化后三个阶段来考虑,以GD32F470为例:

  • 首先MCU上电过程到POR复位前,数字电路逻辑还没复位,GPIO处于高阻状态,NMOS、PMOS、上下拉电阻都处于关闭状态,此时GPIO处于高阻状态。
  • 当MCU POR复位后,复位引脚拉高,寄存器全部加载复位值,此时IO口状态我们可以从GPIO寄存器中看到:

可以看到JTAG和SWD相关的引脚默认状态都是复用模式,且其中部分有配置默认的内部上下拉:

所以当MCU复位后,GPIO初始化前一些特殊GPIO是会有内部上下拉或者输出状态的,我们需要根据电路电平要求来合理选用GPIO,避免复位时IO口出现误输出。

  • 程序启动后执行初始化时会配置想要的GPIO模式和状态,此时一样也可能出现误输出,我们来看下GPIO输出寄存器默认值:

因为复位值是全0,所以如果一个希望默认为高的IO先初始化GPIO为输出模式再配置默认状态,那么GPIO会先输出低电平再马上拉高,通过示波器会看到复位后MCU IO口出现一个低电平毛刺,那么合理可靠的配置时序是:

1、先打开GPIO时钟;2、设置GPIO输出高还是低;3、设置GPIO模式;

这样就不会在初始化过程出现毛刺,需要严格遵守。

那么我们现在知道了,除去一些特殊IO和软件配置时序我们需要注意,在MCU IO口初始化前其他IO都是高阻状态,那么高阻状态是什么电压?需不需要上下拉,那我们则需要根据外围电路来判断,请关注我们,后续视频我们继续分享。

更多GD32 MCU相关咨询:https://www.gd32bbs.com/

相关推荐
勿忘初心9121 分钟前
Android车机DIY开发之学习篇(二)编译Kernel以正点原子为例
android·arm开发·单片机·嵌入式硬件·学习·eclipse
小禾苗_38 分钟前
51单片机——串口通信(重点)
单片机·嵌入式硬件·51单片机
硬件技术我知道40 分钟前
用AMIDEDOS.EXE查看和编辑计算机个性化信息
网络·人工智能·嵌入式硬件·物联网·计算机视觉·硬件工程·智慧城市
【 STM32开发 】1 小时前
【STM32+CubeMX】 新建一个工程(STM32F407)
stm32·单片机·嵌入式硬件
ltwoxc4 小时前
01-51单片机LED与独立按键
单片机·嵌入式硬件·51单片机
忘尘8254 小时前
STM32小实验2
单片机·嵌入式硬件
DS小龙哥5 小时前
基于STM32设计的仓库环境监测与预警系统
stm32·单片机·嵌入式硬件
0X786 小时前
HC-SR04(超声波)应急使用方案
stm32·单片机
深圳市青牛科技实业有限公司 小芋圆10 小时前
GC8872 是一款带故障报告功能的刷式直流电机驱动芯片, 适用于打印机、电器、工业设备以及其他小型机器。
人工智能·科技·stm32·单片机·嵌入式硬件·机器人
可喜~可乐12 小时前
CAN总线入门指南:从原理到实践
c++·stm32·单片机·硬件工程