本帖最后由 我会弄一点 于 2019-12-26 23:17 编辑
【学习笔记+STM32低功耗的GPIO配置及硬件设置】
官方文档AN4899将MCU降低功耗提供了两种处理。
1、通过设计软件设置GPIO
2、利用电气特性在硬件上设置
GPIO选型指南和配置
软件处理:
1、将未使用的GPIO输入配置为模拟输入
GPIO始终有一个输入通道,可以是数字或模拟通道。如果不需要读取GPIO数据,则优先配置为模拟输入。这节省了输入施密特触发器的消耗。 2、调节GPIO速度
上升时间,下降时间和最大频率可使用GPIOx_OSPEEDR配置寄存器进行配置。这种调整对EMI(电磁干扰)和SSO(同时开关输出)有影响,因为开关电流峰值较高。因此必须平衡GPIO性能与噪声。每个GPIO信号的上升时间和下降时间必须适应与相关信号频率和电路板容性负载兼容的最小值。
3、不使用时禁用GPIO寄存器时钟
如果某个GPIO组不需要长时间使用,请使用HAL_RCC_GPIOx_CLK_DISABLE()函数禁用其时钟。
4、进入低功耗模式时配置GPIO
进入低功耗模式时,所有引脚信号必须连接到VDD或接地。如果GPIO连接到外部接收器(外部元件输入),则必须使用PP或PU/PD强制GPIO信号值。
当GPIO连接到驱动器(外部元件输出或总线)时,驱动器必须提供有效电平( VDD或接地)。如果未定义驱动器电平,则必须使用PU/PD强制GPIO上的信号。
硬件处理:
1、避免悬空未使用的引脚
不要将未使用的引脚悬空。将其接地或连接到PCB上供电,或者使用PU/PD。当输入缓冲器随机切换时,非连接输入引脚上的噪声会消耗额外的功耗。
2、交叉电压域泄漏
在具有多种不同电压(例如3.3 V和1.8 V,或5 V和3.3 V)的应用中,检查所有带有PU的GPIO没有暴露于超过V DD的输入电压。
3、没有VDD供电时的电压保护
仅在提供STM32时才能保证电压保护(例如输入的五伏容差)。只有在VDD高于操作所需的最低电压时,才能实现五伏容差。
4、无负载漏极开路输出
当GPIO配置为漏极开路输出且没有外部上拉负载或内部上拉时,必须将其强制为低电平驱动,以便定义引脚上的输入信号。
|