0
\$\begingroup\$

I have a sensor outputting a 0.8 - 5.0V signal, where this analog signal is read by a 16-bit ADC, the ADS115. The ADC is capable of reading the maximum 5V signal since I am powering the ADS with VIN = 5V.

My question arises on the I2C lines, where SDA and SCL and their associated logical signals that are communicating to the microcontroller, a STM32F411CE. I am using a breakout board, the Black Pill btw. I cannot understand the data sheet well enough of the STM32 to determine if it able to accept, what I presume the SDA & SCL signal of 5V(?).

Do I need a voltage divider for this or a logic level converter so the digital signal of the I2C bus is 3.3V or 5V OK?

Thanks!

\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

On Table 8 in the datasheet, it seems most pins you'd want to use for I2C are marked "FT" for "5V tolerant except when in analog mode or oscillator mode" (bottom of page 46).

Anyway, if it was a problem, you dont need a level shifter, just connecting the two pull-up resistors necessary for I2C to +3.3V instead of 5V (if it's on a module, just unsolder them and add them seperately yourself). I2C works with an open collector output, which can only pull the voltage down, so the voltage from the pull-up resistors is the highest you will get on the line.

\$\endgroup\$
1
  • \$\begingroup\$ Thanks @Miron, this forum is excellent. Appreciate the answer. \$\endgroup\$
    – Beaker
    Commented Apr 2, 2022 at 22:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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