Question about I2C voltages between MCU and Module

Hi!
I'm using a barebone ATmega328P (@8Mhz internal) connected to a MAX30102 MH-ET Live module. Both the MCU and the MAX30102 are powered by the same 2x AAA battery. The MAX30102 module has two voltage regulators: one that convert voltages from 1.8-5.5V to 3.3V and the other is a 1.8V LDO. The SDA and SCL pin of the MAX30102 is pulled up to the 3.3V lines on the module through 4.7k resistors.
My question is: Given that the MCU is using voltage directly from the 2x AAA battery which ranges from 2.65-3.2V but the I2C lines on the MAX30102 module is constantly 3.3V. Will there be any problems with these two devices communicating through I2C ? I don't have any problems using it so far.

The answer I can come up with: So looking through the datasheet of the Atmega328P and the MAX30102 I can find that:
For the MAX30102: Vdd = 1.8V (from 1.8V LDO)

  • V_IH = 0.7 *Vdd = 1.26V
  • V_IL = 0.3*Vdd = 0.54V
  • V_OL = 0.2V

For the Atmega328P: with Vcc from 2.65 - 3.2V

  • V_IH = 0.6*Vcc = 1.59 - 1.92V
  • V_IL = 0.3*Vcc = 0.795 - 0.96V
  • V_OL = 0.2V (at Vcc = 3V, I_OL = 6mA and t = 25degC)
    (for the Atmega328P they just put the graphs in the datasheet, not exact formula)

=>So because the I2C protocol sends data by pulling the line LOW, when the MAX30102 pulls the line low with V_OL = 0,2 V, the Atmega328P should be able to receive data because V_OL (MAX30102) < V_IL (Atmega328P). And the same things would work vice versa so there shouldn't be any problems with this circuit right ?

  • I'm a student so any answers would be greatly appreciated. My English isn't very good so I'm sorry about that

That should be all OK..

Then there is a power supply that produces this voltage. You can measure the current from the MAX into the controller SCL/SDA pins across the battery voltage range, in detail for the minimum 2.65V.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.