STM32F4 and 5V tolerant GPIOs for USB usage
Hi!
I have STM32F469 and I am analysing how to connect an USB port to it.
My MCU will act as a device. PC will be the host.
My MCU has power supply equal to 3.3V which is created via LDO which is independently powered (not from VBUS, from host’s USB).
MCU sits on a PCB with rest of the components which are hungry for power. I presume the whole circuit will sink minimum 1A at 3.3VDC, or even more.
Problem is how to protect 5V-tolerant GPIOs (used for D+ and D- USB lines) from injected current in case my MCU is unpowered and somebody connects it via USB port to a alive host.
AN4899 has a solution for this in form of Zenner diodes. This are the extracts:


..now there are 2 questions:
- What do they want to say with connecting 5V VBUS directly to MCU (green circle)? MCU supports only 3.3VDC.
- This is nicely thought out, but I don’t see how this is going to solve my problem because:
Zenner diode can have voltage drop of 3.3V, but Zenner diode also requires this external resistor. This resistor should limit the current so Zenner does not burn up. Resistor will also have some kind of voltage drop, so final voltage difference between MCU’s GPIO and MCU’s VDD will be 3.3V + voltage drop on resistor, so MCU’s input will be on a higher voltage than specified 3,6V. As I see it, voltage drop on resistor should be exactly 5V – 3,3V = 1,7V, and have resistance equal to 1,7V / (Zenner diode’s rated reverse current). Now the Zenner diode will be protected but my MCU’s input will be fried because of 5V difference between Vdd and GPIO.
Any thoughts?
