3.3V vs 5.0V IO on Arduino Giga

My apologies - I got my EE degree about 35 years ago. Back then, I was very familiar with 5V TTL Digital logic chips. I'm reading on these forums that most of the I/O pins are "5V tolerant", but the standard TTL chips I would be connecting are likely not "3.3V tolerant". So, my newbie question is: Where can I get a respectable size kit of digital logic chips that are 3.3V tolerant? Part of my reason for upgrading from the Arduino Nano to the the Giga is for speed, so I fear that using any intermediate circuitry to alter voltage may just slow the circuit down. I prefer TTL chips (if possible) because they are less likely to be fried by static discharge and I'm already familiar with many of them. I've heard conflicting data on the "LV" series (and can't find a kit with a good range of options). Alternately, I've also read some about the 74AHC and 74AHCT series as being 3.3V and 5V tolerant (but they are CMOS, so I expect they are static sensitive). But honestly, I just want to get a nice big kit of common-use chips that will support the Giga board. Any advice would be appreciated. My apologies for the newbie question - I used to LOVE digital electronics and am just now renewing that passion.

Just the opposite For the GIGA none of the pins are 5V tolerant.

Connecting 5V logic signals to a 3.3V device really needs to be handled on a individual basis. For example if you have a 5V I2C device then you would use a 5V/3.3V level shifter. However, that level shifter would not be appropriate for general purpose I/O.

FYI: Anything you buy today will be CMOS. You can still find the the original 74 and 74LS series but they won't be of any use in 5V/3.3 conversions.

Please check out pages 61-88 of https://www.st.com/resource/en/datasheet/stm32h747ag.pdf as I believe you are incorrect Jim.

Not according to the GiGA data sheet and GIGA operators manual.

I/O Logic level: 3.3V does not mean 5V is not tolerated. ADCs and some other pins are 3.3V only but most handle 5V just fine.

This is new to me so again, I apologize for ignorance. But why would level shifters not work for TTL 74LSxxx chips? After posting my original question, I learned of bidirectional 3.3V-5V level shifters and ordered some that state that they support I2C and have a fairly high bandwidth (Mbps). I’m upgrading from my Nano (classic) which I just recently bought (NOTE: The last time I tinkered with digital electronics connected to computers was back in the prime time of RS232 UARTS.). Simply put, I wanted more I/O digital pins and enough speed to do more than the Nano would support. Amazon has many assortment kits for 74LSxxx TTL (5V) digital logic chips, but I can’t seem to find any comparable assortments of 3.3V (especially with 5V tolerance as well such as 74ACHTxx chips). That’s when I gave up and ordered the bidirectional level shifters.

You can only go one way, from 3.3V in to 5V out.
So what do you do when you want to connect 5V in to 3.3V out ?

Some remarks:

  • Other pins of the GIGA (not all) seem to be 5V tolerant, under specific conditions, and these will conflict with some Arduino functions.

  • You might use ICs from the CD4000 series, they offer the same functionality (or more) as TTL4700 and will work at 3.3V.

  • Bidirectional level translator ICs are available, take a look at TXB0104 (for example).

  • This is used on the Arduino Nano Every:

This is what I bought - it is intrinsically bi-directional for input or output! Amazon.com: SHILLEHTEK IIC I2C Logic Level Converter PRE-SOLDERED Bi-Directional 3.3V-5V 4 Channels Compatible with Arduino, Raspberry Pi, and Other Microcontrollers (3) : Electronics. In case that Amazon link doesn’t work, it’s called: “ SHILLEHTEK IIC I2C Logic Level Converter PRE-SOLDERED Bi-Directional 3.3V-5V 4 Channels”. I bought 8 (32 pins).

Yes but as I already mentioned, it's only usable with opendrain I/O like I2C. It will have very limited current drive capability for use in push-pull type (high/low) applications.

I also think the ones you bought may be one of the fake ones. I would test them before connecting to the giga.

@raldrich
There's a logic family called 74LVC (TI) or I think 74LCX (other vendors) that I've been using. It's not very convenient for breadboarding without a little work though. It's only available in surface mount so I bought a bag full of SOT to DIP adaptor boards off eBay to make them more hobby friendly. Most common logic elements are available.

They are typically powered off the 3V3 supply and since their inputs are 5V tolerant, you can use them to interface your 5V sensors or logic to 3V3 Giga inputs. You can turn them around and drive 5V logic inputs with them since their output logic levels are 5V TTL compatible when they are powered from 3V3 supplies.

May not be a solution for you if you are hesitant to solder SOT style surface mount parts.

I have a scope and I’m going to tie the 5V, 3.3V, and ground to the associated Arduino and then use my function generator to produce a 5V 1kHz square wave as a 5V input and monitor both input and output voltages on the scope. Then, I’ll disconnect, reduce the waveform to a 3.3V square wave and repeat as the low side as input. Then I’ll repeat this at higher and higher pulse rates to check for latency and linearity.

From 3.3V to 5V the drive capability is limited to the strength of the 3.3V output, from 5V to 3.3V the drive capability is limited to the pull-up resistor at 3.3V. Sink currents are limited by the strengths of the outputs.
I expect OP to use this for signals only, so I see no problem, even with 10k instead of 4k7 in post #8.

I think you are going over the top here. You just need to make sure the I/Os go high and low at the proper signal levels.
Linearity? They are digital signals.
Again those translators are intended for open drain like I2C, they probably will not work for most other applications.

Respectfully, there is no such thing as "digital signals" (or digital anything, really). The world is analog. Digital circuits assume analog thresholds to compare to treat the signal as true (1) or false (0); but that is just a construct. For example, the digital open drain signals require pull-up resistors. A resistor is intrinsically an analog component. Issues like input and output impedance and input and output capacitance are also analog properties - even in digital circuits. The value used for the pull up resistor will draw current and, when combined with the intrinsic resistance and capacitance of the digital circuit connection, they will affect the maximum switching speed of the design. So, when I said "linearity", I just mean that I want to make sure that the voltage level converters can work as fast as I need. Once the speed of the circuit gets too fast, the level converters could become the weak link in high-speed data. Disclaimer: It has been 30+ years since I worked with this stuff (I used to be quite good at digital electronics) and I'm just now trying to get back up to speed. So, I mean no disrespect as I respond and attempt to compare my understanding with others. Thank you.

1 Like

Not at the quantum level. Everything is discrete even time. So there is really no such thing as analog as you know it..

Of course, quantum mechanics not withstanding. However, I believe that may be a bit outside the scope of my intended discussion. I’d hope to avoid considerations of relativity and the associated Lorentz factor. Theoretical physics was another hobby I had back in high school. Lol

1 Like

Not according to the data sheet and operators manual.

Always heed the recomendations of the board manufacturer.

What if you expect wrong?
How do you know what will be connected and what the Vih and Vil levels will be?

Please read all the documentation for your board.
There are some who have not and are misinformed about it's operation

A quote from the operators manual

"It should however be noted that the internal operating voltage of the microcontroller is 3.3V, and you should not apply voltages higher than that to the GPIO pins."