STM32 5V Tolerant I/O - Power up condition
Ant1882 , 05-18-2022, 02:18 AM
Hi all,
I've recently been working on a design which uses a 5V I2C extender device (P82B715TD), I have the SDA, SCL pullup resistors on the Microcontroller side going to 5V... the pins are 5V tolerant and will be used as open drain.
What I realised is that the 5V will be present very slightly before the 3.3V... which then places a voltage on the pins that exceeds their limits, the limit is VDD+3.6V so when VDD is 0 of course it can only be 3.6V maximum.
[ATTACH]n19890[/ATTACH]
The attached document explains this, and provides the following solution:
Could anyone explain how the zener diode provides the solution to this problem? Any suggestions for resistor value would also be welcome.
Maybe it's an easy thing for someone to understand, any comments much appreciated.
Anthony
robertferanec , 05-20-2022, 07:20 AM
I would not use that chip (P82B715TD) unless you have a specific reason for it. As @qdrives mentioned, by using transistors you can go from 3V3 to basically any voltage you need. I have used that circuit many times.
PS: Possibly I would try to find a chip which has option for two different powers.
qdrives , 05-18-2022, 02:30 PM
If you have a free pin left on your you could drive the supply with a PNP transistor or P-channel mosfet which is controlled from the MCU.
You could also make a circuit that drives it when the 3.3V is high enough (like a 2.1V zener to 0.6V of a base NPN transistor -> ~2.7V).
The zener diode in the power supply is not something I would do.
Ant1882 , 05-19-2022, 03:21 AM
Thanks for the suggestion, my problem is that I'm using a development board for the Microcontroller side and the board is designed to sit on top via the pin headers... because I have dev boards but no chips due to shortage. So, bit limited to what I can do with the dev board (Nucleo 64)... the Zener suggestion by ST would be doable but it looks a bit odd to me!
qdrives , 05-19-2022, 02:51 PM
It is odd, and does not work either. In series with the zener is a resistor. Than there is a capacitor that needs to charge. The 5V is there already, before the zener start to conduct to charge the output capacitor of the LDO.
I just remember another method:
robertferanec , 05-20-2022, 07:20 AM
I would not use that chip (P82B715TD) unless you have a specific reason for it. As @qdrives mentioned, by using transistors you can go from 3V3 to basically any voltage you need. I have used that circuit many times.
PS: Possibly I would try to find a chip which has option for two different powers.
Ant1882 , 05-24-2022, 01:26 AM
Thanks for the replies,
Yes there is another chip, the
P82B96 which should do the same job but has the buffers internally. It's basically to be able to do I2C over longer distances, that other chip (P82B715TD) has been around for a while and was cheaper so that's why it was favoured... but seems like there are better options.
Anthony
Use our interactive
Discord forum to reply or ask new questions.