cancel
Showing results for 
Search instead for 
Did you mean: 

Is it safe to use +5 volts for I2C with this MPU?

JChan.12
Associate II

I'm using a Portenta H7 from Arduino. It hosts the STM32H747 microprocessor. I was wondering if it is safe to use +5 volts for I2C even though the MPU runs at +3.3 volts?

To clarify, on how the Portenta H7 is wired up, I'm using the pins associated with I2C3 on the STM32H747. Now, according to the datasheet, the pin structure for the pins are labeled as FT, which should mean that they are +5 volt tolerant according to the datasheet (Table 6). You can see how I'm laying it out below in my schematic, but I wanted to ask if this was safe or not? The Portenta's QWIIC connector uses 5 volts instead of 3.3 volts, so it seemed strange given that the STM32 operates at 3.3 volts.

0693W00000FC7VUQA1.png

1 ACCEPTED SOLUTION

Accepted Solutions
KnarfB
Principal III

Should be safe, see application note AN4899, 5.2.2 Five-volt tolerant GPIO (FT) and 5.3.3 I2C application.

The only catch is that +5V must not be applied while VDD is too low (e.g. STM powered off), but I bet the module desginers knew that and considered it in the schematics.

hth

KnarfB

View solution in original post

4 REPLIES 4

Not sure of Arduino/SparkFun goals.

A lot of I2C is to 5V based systems, including a lot of Arduino stuff.

Could use it as 5V supply to regulate down to voltage used by slave/sensor boards.

The STM32 is tolerant of 5V pull-up / open-drain, whereas a lot of ATMEL/MICROCHIP IC's aren't. The FT pins are designed not to back-feed into supply ring.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
KnarfB
Principal III

Should be safe, see application note AN4899, 5.2.2 Five-volt tolerant GPIO (FT) and 5.3.3 I2C application.

The only catch is that +5V must not be applied while VDD is too low (e.g. STM powered off), but I bet the module desginers knew that and considered it in the schematics.

hth

KnarfB

Thanks for the reply. I think I see what you mean. If the board is off, you shouldn't apply +5 volts to the pins, but when the board is on, it should be okay.

I've posted the Portenta board schematics below as well as the schematics for my sensor. These Adafruit sensors have pins to take 3-5 volts and convert it to 3.3 volts for their sensor. That's what I posted in my initial schematic. On the Portenta schematic, looking at the traces for I2C3, it goes directly to the MCU. These pins are I/O pins, but when inactive, I2C lines would pull the line to 5 volts. I've seen people use the QWIIC connector (J5 on the Portenta schematic) to directly connect to Adafruit I2C modules with no problems, but I was worried that it would cause long term damage to the module (had a really long debate with someone trying to adhere to stick with 3.3V; I tried switching and it seemed to cause errors).

https://docs.arduino.cc/static/12544de79c14694b4becf2529a9b3e5f/ABX00042-schematics.pdf

https://cdn-learn.adafruit.com/assets/assets/000/087/013/original/sensors_downloads_schematic.png?1579224261

Thanks for your reply. Arduino varies based on the processor. My Adafruit sensors convert from 3-5 volts to 3.3 volts. That's what I've shown on the right. I was worried that connecting it like this with the STM MPU running at 3.3 volts would cause long term damage.