1. 问题背景客户在使用 STM32G0 做硬件设计时,有时会遇到 GPIO 先于 VDD 上电的问题。希望确认是否有问题。2. 分析2.1. 规格书中的电气参数2.1.1. 主要关注 VIN 参数以 STM32G0B1 的规格书 DS13560_REV5 的 5.2 Absolute maximum ratings 为例,VIN 参数如下图:
图1. VIN 参数可以看到,当 VDD=0V 时,对于 FT_c 引脚此时允许的最大输入电压为 5.5V,除了这类引脚外,其它引脚允许的最大输入电压为 4V。2.2. 应用笔记中的描述2.2.1. AN4899AN4899 STM32 microcontroller GPIO hardware settings and low-powerconsumption对于 AN4899 中有这样一段话,对于 5V 容忍的管脚(FT):
Regardless of the supply voltage, VIN cannot exceed 5.5 V.When VDD = 0 V, the input voltage on the GPIO cannot exceed 3.6 V.对于 3V 容忍的管脚(TT): Input voltage on three-volt tolerant cannot exceed VDD + 0.3 V.因此,当 VDD=0V 时这类管脚的输入信号电压不能超过 0.3V。
2.3. 设计团队的建议TT 类型的 IO 如果先于 VDD 提供电信号,且信号幅度超过 VDD+0.3V, 那么在 IO的外部输入电路上,钳位二极管等限幅电路是必须的,确保信号输入电压在-0.3V 和VDD+0.3V 之间。
FT 类型的 GPIO 如果先于 VDD 提供电信号,信号幅度 VIN 小于 4V 时 MCU 不会损坏,但是 MCU 能否正常工作还要考虑此时 IO 的灌入电流的影响。当 VDD 未达到最低工作电压时,MCU 内部电路没有复位,内部的 MOS 等电路的逻辑状态是未知的,此时如果 GPIO 带电信号,可能通过内部 MOS 等电路灌入电流。
比如说有客户遇到过当 GPIO 先于 VDD 上电时,灌入电流导致 VDD 或 VCORE 等电压在实际VDD 输入电路工作前产生了一定幅度的电压,在其它 GPIO 管脚上可以测量到相关信号。这些提前产生的电压可能影响复位等电路的正常工作,导致 MCU 启动异常。因此,应该尽量限制先于 VDD 上电的 IO 的数量,并且必要时在输入电路增加钳位电路和串联电阻来限制灌电流的影响。
3. 小结
在硬件设计时最好能避免 GPIO 先于 VDD 上电。如果无法避免,必须结合 AN4899 和设计的建议保证输入信号幅度在安全范围内并注意灌电流对工作的影响。
|
|