Electronic – Why I2C designed to work with pull-up resistors and not pull-down ones

i2cmicrocontrollerprotocolpulldownpullup

I understand that in I2C, SCL and SDA lines use pull-up resistors and the pin drivers are open collector NPN devices which can drive pins to ground. This gives I2C an advantage that the same bus now can be shared with multiple slaves, and even if two or more slaves accidentally try to drive the bus at the same time it won't cause any damage to the system.

But this can also be done using PNP open drain drivers and pull-down resistors on SDA and SCL lines. Things like clock-stretching and multi-master arbitration can be achieved with this too.

Does the current implementation of I2C protocol gives any benefits over the above suggested alternative implementation?

Best Answer

Electrically it makes sense because ground is the one common connection to all devices on a IIC bus. That's a lot less of a restriction than forcing power to be the common connection to all IIC devices, as would be required if the lines were driven high and floated low via pulldowns.

Note that IIC devices don't all need to be powered from the same net or the same voltage. This would not be true if both bus lines had to be driven to the single common power voltage.