4
\$\begingroup\$

The STM32F427 is powered by 3.3V but many of it's pins are 5V tolerant. This allows external chips to drive it's logic I/O pins at 5V without damaging the device.

I have a board design with at STM32F427 that operates off of two voltage supplies: 3.3V and 5V. The 3.3V regulator is daisy chained off of the 5V regulator which means that the 5V logic comes up before the processor. I currently have a dual-supply buffer (TXS0108E) between the 5V logic ICs and the processor to prevent the processor pins being driven before power is applied.

Is this protection necessary? Can I safely remove the buffer to reduce the complexity? I don't see a lot in the reference manual about power supply sequencing.

\$\endgroup\$
  • \$\begingroup\$ What is driving the TXS0108E? \$\endgroup\$ – Voltage Spike Aug 19 at 18:11
  • \$\begingroup\$ processor <--> txs0108e <--> 5v peripheral \$\endgroup\$ – user8908459 Aug 19 at 19:05
  • \$\begingroup\$ More specifically, what is model number of the peripheral? How much current can it source? \$\endgroup\$ – Voltage Spike Aug 19 at 19:06
  • \$\begingroup\$ @VoltageSpike MAX9926. The datasheet indicates a comparator on the output, so I would assume that it is a high impedance output that can source very little current. \$\endgroup\$ – user8908459 Aug 19 at 20:51
  • \$\begingroup\$ The MAX9926 can still source 20mA, the STM32F4 pin can only take 5mA max so if you were to ditch the TXS0108 then use a series limiting resistor (which still give you datasheet problems) \$\endgroup\$ – Voltage Spike Aug 19 at 20:55
3
\$\begingroup\$

The 5V tolerant means you can use pull-ups in the open drain configuration, and doesn't work with push pull. This means you could possibly use a pull up to 5V and open drain, keep in mind that this method can be slower if you have too much capacitance on the digital line, the RC time constant will need to be calculated.

This means if you remove the buffer, you'll need a pull up and the speeds will probably be reduced more than your design needs.

In my designs with the STM32F4, I usually stick with a buffer and push pull for fast speeds. If the design also calls for level translation, I'd stick with the TXS0108E.

EDIT: If your using the GPIO's STM32F4 as inputs, then I would consider how much current the input can be sourced. It must not exceed 5mA.

The datasheet explicitly states that the power must not exceed Vdd+4V. If the peripheral is at 5V and the Vdd is at 0V, then technically you would be violating the absolute maximum ratings. The question is: why? The protection diode turns on, heats up and burns out, potentially putting the input transistors at risk.

This is where I personally might thumb my nose at the datasheet. I don't know if I would recommend other people doing this, but if I were doing this myself, I would be comfortable limiting the current sufficiently with series limiting resistors on the inputs to prevent excess current from reaching the diode. The datasheet also states that no more than 5mA into the input port max. So if the peripheral speed could support a 200Ω series limiting resistor then you might be able to ditch the TXS0108E for a series limiting resistor of more than 200Ω.

Another thing to think about, if the supplies only take a short time, maybe under 1ms to come up. Then the time that the input protection diode would experience any current would be short, and it would also be fine.

enter image description here

Source: www.st.com/web/en/resource/technical/document/datasheet/DM00037051.pdf

\$\endgroup\$
  • \$\begingroup\$ The STM32F407 data sheet says "FT = 5 V tolerant except when in analog mode or oscillator mode " on their pin table. I don't believe open drain is required. Can you point to a reference that says otherwise, if this is true? \$\endgroup\$ – Scott Seidman Aug 19 at 17:20
  • \$\begingroup\$ The max voltage for the Vcc STM32F4 is 3.6V, and there are no IOVcc's on the chip. So there isn't a way for the STM32F4 to provide 5V on it's own. You can put 5V into the chip, but the IO's will not provide 5V. This is what they mean by 5V tolerant. \$\endgroup\$ – Voltage Spike Aug 19 at 17:24
  • 1
    \$\begingroup\$ Yes, putting 5V on the uC from another chip is what the OP is trying to do. \$\endgroup\$ – Scott Seidman Aug 19 at 17:57
  • \$\begingroup\$ The TXS0108E is bidirectional, so I assumed they were going bidirectional, it looks like they only need input. At that point, one needs to know the current from the chip that is driving the TXS0108E, to see if it will work with the STM32F4 \$\endgroup\$ – Voltage Spike Aug 19 at 18:13
0
\$\begingroup\$

From my understanding, the 5V tolerant domain is generated by an internal charge pump which runs from the internal regulator (presumably).

So I'm not sure how what will happen if you drive a pin with 5 V if the device is unpowered otherwise.

One could argue with the absolute maximum ratings table: the input voltage specification for a FT pin (five Volt tolerant) is Vdd + 4.0 V. Your device is unpowered, so Vdd is 0 V and thus the maximum applied voltage allowed would be 4.0 V, which is less than 5 V. But I think that formula actually only holds if the device is running - before that I'd say it's worse.

So I wouldn't reduce the complexity in this case.


Because of all the negative feedback: I was not trying to imply, that the pins can output 5 V. The protection diodes of 5 V tolerant pins are working against an internally generated voltage, which makes the pin 5 V tolerant.

This is shown clearly in the reference manual and the potential is denoted as \$V_{DD\_FT}\$.

It can also be clearly seen, that the internal pull-up works against \$V_{DD}\$ as well as the push-pull stage of the pin works against the supply rails and not against the five-volt tolerant domain.

Basic structure of a five-volt tolerant I/O port bit

\$\endgroup\$
  • 3
    \$\begingroup\$ The stm32's don't have a charge pump, push pull does not use 5V \$\endgroup\$ – Voltage Spike Aug 19 at 16:15
  • \$\begingroup\$ @VoltageSpike and the other down-voters I have explained how the five-volt tolerant pins are working. I wasn't trying to imply, that the pins can output 5 V. \$\endgroup\$ – Arsenal Aug 20 at 6:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.