I am interfacing an MCU (CC1110) with Vdd of 3.3 V to a battery gauge IC (BQ27510-G2) with Vdd of 2.5 V. Currently, I am pulling the bus up to 3.3 V with a circuit that I blindly copied from a datasheet:
I am a software-focused CompE, struggling to remember my EE courses, so I have a few dumb questions about this circuit:
- As I understand it, the Zener diodes are meant to clamp the lines to a maximum voltage (5.6 V in this case) to protect the devices on the bus, and is especially useful for long I2C transmission lines. Is my understanding correct?
- My MCU has an absolute max I/O pin voltage of 3.9 V, so I would want a Zener rated somewhere below that, right?
- Do I need clamping diodes if all of my I2C slave devices are on the same board, relatively close together?
- What do the series resistors do, and do I need them?
- The battery gauge IC allows up to 6 V on its SDA/SCL pins, so is it ok to pull the bus up to 3.3 V, even though the gauge is running at 2.5 V?
- Would it be better to level shift them to 2.5 V?
If possible, I would like to simplify this circuit to just the two pull-ups, but I just want to make sure that there will not be any ill effects due to the varying voltage levels.