So, pretty much, wire the Portenta from 3.3V and have 3.3V go to the sensor at the corresponding pin, pull-down resistors, etc. On the other hand, for the Nano Every, 5V is fine. That way, the I2C lines are correct in both cases, right (assuming separate boards, ignoring everything previously mentioned)?
Huh? Wire the Portenta? I didn't say anything about changing the supply to the Portenta...
Apologies, typo. I meant wire from the Portenta via its 3.3V pin, which goes to the I2C sensor (VIN), pull-down resistors, etc. Power going to the portenta is via USB-C.
Sorry for replying, but I wanted to get your opinion on this. Looking at the Portenta H7 schematics, I'm connecting I2C either through GPIO pins (JDIGITAL) or through J5 via 5-PIN QWIIC Cable. It goes to I2C3 on the microcontroller directly. Now, according to the datasheet of the STM32H747, the pins for the third I2C port (I2C3) in the link below are classified as I/O pins (Table 7). Furthermore, looking at the electrical characteristics, I/O pins are capable of tolerating 5.5 volts (assuming that the IC is running at 3.3 volts for VDD, VDDA, and VDD33USB). Thus, despite the Portenta operating at 3.3 volts, it should be able to tolerate 5 volts for I2C, correct? I mean, thinking about it, if it can't tolerate 5 volts, why would their additional I2C connector use 5 volts on the pin out instead of 3.3 volts? It's been established that you can connect a QWIIC cable from the Portenta to the sensor and the Portenta doesn't smoke or anything.
https://www.st.com/resource/en/datasheet/stm32h747ag.pdf
Also, to add on, there's an application note for STM32 processors (that I found on the product page of the STM32H747) showcasing how the GPIOs are 5-volt tolerant. The I2C example connection shows them using 5 volts while the processor runs at 3.3 volts. So, does all this mean that I am safe?
On the STM32 platform, usually the pins are divided between 5V tolerant and non-5V tolerant. So you have to reference the documentation to confirm each pin that you want to connect that way. You can't just say, "the GPIO pins".
Also, tolerance is not sufficient to guarantee operation. You have to assure proper logic level thresholds as well.
3.3V could only go to pull up resistors. Pull down resistors must be connected to ground.
Also you would not normally see smoke from a cross-supply problem. You would see weird intermittent failures and/or passing tests until it gets into a field installation and fails.
The I2C pins that I was referencing have FT as their pin I/O structure. According to the app note, that corresponds to a five-volt tolerant pin. Though the pin structures have some underscore characters, they do have FT in their name (FT_fa and FT_fha); i can't find info on those subscripts . All of that is leading me to believe that it should be safe to run with a pull up resistor to 5 volts.
To be sure, I'm referencing the datasheet of the processor with the portenta schematic, making sure to match the correct processor pins with the I2C port im using in my app, in this case I2C3. That's the one going to the GPIO pins on the portenta and the jst connector.
It's the "pull up resistor to" part that creates questions in a mixed power system. If you connect it to 5V then it will probably draw parasitic power from the other 3.3V device via the input protection diodes. If you connect it to 3.3V, in theory it should be okay but then sometimes the threshold voltages are too close to false readings on the 5V input side.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.