Teensy 4.0 5v Serial Tolerance?

I have a Teensy 4.0 which communicates with 2 separate devices over 5v serial. I know that the 4.0 is officially NOT 5v tolerant but I decided to give it a shot (risk bricking a teensy to find out) and for my project it is still working. It's been running for probably ~45 days now without issue. But with the 4.0 being not 5v tolerant I'm wondering if this means that something will likely happen down the line.

I would expect that 5v serial to the 4.0 would instantly kill the chip if it is a problem, but I haven't seen that. What are the odds that it does at some point brick the chip if it's been working for this long? Is the 4.0 secretly more resilient than it's made out to be?
 
Can you show us what part/device is on the other end of the "5v serial" connection? I seriously doubt whether the voltage on the Teensy RX pin is really 5V.
I have no reasons to believe that NXP underrates their "Absolute maximum ratings".

1706296157281.png

Paul
 
The 2 stress factors are the actual voltage on the pin and the amount of current flowing into the pin.

These really depend on the output impedance (or "strength") of whatever is trying to drive the Teensy pin. A very low impedance (or "very strong") drive will get the pin over 4V and drive a lot of current into it and through the ESD protection diode, in extreme cases even forcing the 3.3V power up higher. A relatively high impedance (or "weak") drive will probably get clamped at about 3.9V by the ESD protection diode and maybe have just a couple mA current.

If you really want to learn more, start by just measuring the actual voltage at the pin. To really dig into this, maybe cut the wire and solder a 1 ohm or 10 ohm resistor so you can measure voltage across the resistor to calculate the current, or use your multimeter in current measurement mode.

I'm not an expert on silicon failure modes, but my limited understanding is higher voltage on the pin stresses the thin oxide in the mosfet gates. What higher current does is more mysterious. It might cause local hot spots. If the ESD protection diodes are fabricated a certain way, it might risk some of the electrons flowing through the chip's substrate, which risks latch up if high enough (though I've been told modern chips usually have a high conductivity back side to minimize this problem). Maybe someone who knows more on this can comment?
 
Voltage on the receive pin of the teensy is around 4.1V, on the send pin it is 3.3v, measured in DC mode on my multimeter. So it is definitely 5v serial as opposed to 3.3v but it hasn't been causing issues thus far atleast.

Voltage on the 3.3v pin is 3.304V which seems normal to me.

Thoughts? Is this inevitably going to damage something?
 
Thoughts? Is this inevitably going to damage something?

By connecting 5VDC level signals to pins that are not 5VDC tolerant as you have on your serial interface, you're almost certainly going to experience a failure of some sort sometime in the future. The exact nature of the failure probably cannot be predicted. However, exceeding the published maximum rating as you are is simply asking for an expensive failure. You absolutely must do something different. Up to now, you've simply been lucky (or very likely damage has already been done, but is not readily apparent). Hoping for that luck to hold out is not a good way to treat the hardware & expect it to survive.

I hope that this does not come across as sarcastic, as that is absolutely not my intent. The fact that you keep asking the same question (is this OK ??) and/or making the same assumption (damage has not been done yet) leads me to make a very definitive statement to clearly let you know that you should not be doing what you are doing.

I hope that helps !!

Mark J Culross
KD5RXT
 
The only part of the chip that can handle 5V is the USB interface, the I/O pins are strictly 3.3V and its very easy to damage the chip if you exceed this, either through direct over-voltage damage or CMOS latchup caused by excessive protection diode current. Level shifting is the way to go, and probably extra series resistors to mitigate any chance of phantom powering (CMOS latch-up again).

BTW internally the chip is much lower voltage than even 3.3V...
 
4.1V means the pin is being driven with quite some current, enough to create 0.8V across the ESD protection diode which connects between the pin and 3.3V power. It's definitely not good, but nobody here can really say how bad. But these are tiny diodes connected by bond wires and interconnect meant for low current, so 0.8V might not be as worrisome as you might expect from experience with power diodes like 1N4001.

Only people at NXP with intimate knowledge of the chip's design and good insight to the semiconductor fab they use would be able to answer about the practical consequence of abusing the chip this way. I actually tried to ask a NXP tech person this question once, since it comes up on the forum from time to time. Their answer was pretty much Thou Shalt Not Exceed Thy Absolute Maximum Specifications.

I really wish I had a better answer for how badly you're abusing the chip and what sort of long term effect it's likely to have, but the reality is nobody (outside NXP engineers who aren't talking) can really say. You'll just have to live with uncertainty.

Hopefully that Teensy is installed in a socket?
 
Is there a reason you're not using a TXU0202 (Mouser, DigiKey) or even two 74LVC1T45's in SOT-26 (LCSC, Mouser) dead-bugged (soldered directly to wires and covered with heatshrink)?

I keep telling microcontroller users to stock up on unidirectional level shifters (TXU0202 for UART, TXU0204 for UART+RTS/CTS, TXU0304 for SPI) and an occasional 74LVC1T45, because they have so often saved my bacon microcontroller. They're trivial to use, and can handle higher speeds than needed (200 Mbaud between 3.3V and 5V). One usually adds 0.1µF = 100nF ceramic capacitors near the chip, between VCC and GND (one on each side), for stability, but that's it. (They are supply bypass capacitors: ensure stable VCC even when the chip is switching and draws current.) I recommend against using bidirectional level shifters, because they often have this funky glitch at the low level when it erroneously changes directions for a very short duration, and sometimes it causes problems or communication errors. For I2C, I prefer TI ISO1640/42/43 (3€ to 4€ at Mouser) which is an isolating translator but wired just like the others (one 0.1µF cap between each VCC and GND pair), because I2C voltage level translators have too specific requirements about the voltage levels used for me to use comfortably.

(TXU0n0m are fixed-direction, but 74LVC1T45, 74LVC2T45, and 74LVC8T245 have a separate direction pin for all 1/2/8 data lines, which can be very useful when interfacing to say parallel buses like those on some ILI9341 etc. display modules. In my 74LVC1T45 UART translator board, the direction pins are fixed. And you can obviously use TXU0304 for UART also, just tie the two unused inputs to GND, and leave their corresponding outputs unconnected.)

Again, I'm just a hobbyist myself, not a professional! I do have a scientific background, so I do tend to read the datasheets very carefully, that's all.
If bumbledork-me can do this, everyone else can too!

To make things easier, I've created a few Public Domain break-out boards at EasyEDA so anyone can (modify and) order them from JLCPCB and others: two 74LVC1T45W6-7 for UART (0.4" × 0.4" or 10mm × 10mm board), TXU0202 for UART (0.4" × 0.4" or 10mm × 10mm board), TXU0304 for SPI (0.6" × 0.65" or 15mm × 17mm board), and even an ISO6721 UART (RX+TX) isolator (0.7" × 0.85" or 18mm × 22mm) for when you need both isolation and level shifting. The components cost way under 1 USD per board, except for the ISO6721 which costs under 1.5€ at Mouser. You are absolutely free to use them and create your own derivatives in EasyEDA, even to sell if you want.
 
Last edited:
In series with the RX and TX signals, of course, so they'd limit the current in the signal to what the tiny little ESD diodes or whachamacallits' in the Teensy can handle; sure. I just prefer those level translators and isolators, because they're cheap, simple, and robust. I don't even know what would be the optimal resistor size here, to be honest!
 
That makes even more sense to me too. The current-limiting series resistor is often used with logic IC chips with signal levels exceeding VCC, and their datasheets often mention it (and it works because of small rail-clamping diodes within the IC itself).
 
Yes, I'd go for a resistor divider so the pin gets a proper 3.3V signal. Your 5V serial device can also be spared having to source so much current, assuming you choose the resistors well.
 
Could you suggest what would be a suiltable resistance value, both for a simple current limitter and for a potential divider?
Thanks.
 
Back
Top