Connecting pull-ups to a sensitive rail is just asking for noise. It's 100% likely that the microcontroller will tolerate any voltage that it is also powered from.
Tim
Yes, but it's not the micro he's worried about, it's the DAC, which has no separate ref input pin, only a Vdd pin, and it gets it's reference from Vdd, and all inputs are max Vdd+0.3V wrt. Vss.
And since his Vdd is 4.096V, then the SDA and SCL pins are max Vdd+0.3V, or 4.396V, so the 5V from the micro's Vdd is too much. The answer is stated already, don't use the micro's internal pull-up resistors, instead pull-up your I
2C lines to an external 4.096V rail, but also as Tim stated above, don't use the sensitive reference rail. Instead, create a new 4.2V rail from a voltage divider on the 5V rail, and pull up the I
2C lines to that rail, not to the reference voltage directly.
Don't try to voltage divide the I
2C lines, I
2C is open drain and it needs pull-ups to get its high levels, so the solution is to not use the micro's internal 5V pull-ups, but provide an external 4.2V rail to pull up to instead.
The datasheet says I
OL = 3 mA, so assuming that you're running at greater than 100 Khz, then the pull-up is Rmin =(4.2 - 0.4)/ 3mA = 1266 ohms, Rmax = (300ns/Cbus) = 300ns/20pf = 15k ohms (assuming 2 I/O ports on the bus of 10 pF each = 20 pF)
In the image below, the resistor values I chose (680 top, 3.9k bottom, Rtop/Rbot = 0.174) creates a voltage divider with about 4.2V at the center tap, has a quiescent current of 1 mA and allows for about 1 mA of V
OL pull-down current before the rail gets out of spec. Each pull-up is 10k, so that means when the SDA or SCL line is pulled down it will sink approx. 400 uA of current . When both SDA and SCL are being pulled down at the same time, it will put the 10k's in parallel with the bottom resistor of the divider, sinking approx. 350 uA through each 10k, 1 mA through the top and bottom resistors of the divider, and pulling the voltage rail down to about 3.8V.
This will probably work to about 400 Khz or so.. if you want to go faster you will probably need higher pull-down currents, which means smaller pull-ups. But smaller pull-ups will pull the 4.2V rail out of spec, so you also need to make the top and bottom resistors of the divider smaller, while keeping the ratio at 0.174, to get it to stay in spec with a higher chosen pull down current. No one around here ever said I
2C was easy
Instead of a voltage divider, which has voltage drop issues that need to be overcome when you load it down, you could instead use a 4.2V zener diode to create a voltage rail for pull-ups. Even better, if you have a spare op-amp, you can create a buffered rail, which is the best solution as it has the smallest quiescent current requirements.