For pull-up resistor of I2C, I have found formula to determine R(min).
For a device with; 0,4 VOL(MAX) at 3mA IOL The calculation can be done for VDD = 5V:
R(min) = (5V - 0,4) / 3mA = 1533 ohm.
The thing i cannot understand. Here we assume that over the transtor; there will fall 0,4V and 3mA, when using this resistor. But we do not know exactly if we use 1533 ohm, that 3 mA will flow so 0,4V will fall.
It could also be that there will fall much lower voltage; lets say 0,2V at 1,5mA (or higher voltage and current)
Then R(min) = (5V - 0,2) / 1,5mA = 3200 ohm.
So the question is; how do we know that there will fall exactly 0,4V when we use 1533 ohm, so 3mA will flow. Is this an approximation we do? because we truly need loadline and characterics to do this exactly?
The output device (an N-channel MOSFET with open drain) is guaranteed to have no more than 0.4V across it when 3mA flows.
In this region of operation (very low Vds), the MOSFET looks like a resistor of value Rds(on), and the guarantee on output voltage under load is essentially a maximum value for Rds(on)= 133.3 ohms in this case. If that resistance happens to be lower, say 100 ohms (which it usually will be, since all chips must meet the upper limit) then less than 0.4V will be dropped with a resistor that is chosen to give 3mA with 0.4V drop (and the current will be slightly higher- 3.062mA).
This is a consequence of the MOSFET behaving linearly, just like a resistor.