Electronic – Open Collector/Drain vs Push pull

microcontrolleropen-collectoropen-drainpush-pull

Given the situation where an LED is being used for a status indicator or similar, not toggling quickly.

Which is the best configuration for the IO pin, push pull or open drain? As I see it either will work, and I don't see any benefits to one configuration over the other.

U1 in the following is just representative, not a specific microcontroller.

schematic

simulate this circuit – Schematic created using CircuitLab

Best Answer

If U1 is also running from 5 V in your example, then it doesn't matter at all. Either way there will be no current thru the LED when the output is not actively pulling low. It won't matter that it is actively driving high or just open.

There are two cases where it might make a difference:

  1. Not the same power voltage. Open drain outputs can be made to tolerate a higher voltage than the supply voltage without too much burden. For example, you might have a microcontroller running from 3.3 V, but want the LED power to come from a 5 V supply. If the open drain can tolerate at least 5 V when off, then you can connect things just like you show.

    A push-pull output will have some sort of anti-static protection, which usually means a diode from the pin to the positive supply. Generally chips don't like any current thru these diodes during normal operation.

    The LED example with 3.3 V and 5 V is not the best to illustrate this, since 1.7 V across the LED and resistor will cause very little current to flow. However, consider maybe a 6 V supply, or driving a small solenoid or something.

  2. When the pin is also a digital input. Digital inputs are usually intended to be held solidly high or low. In between levels can cause excessive currents to flow, and can even cause oscillations internally. This can be a problem if the open drain driver is off, internally connected to a digital input, and the external circuit allows the voltage to float.