Arduino GPIO pin Totem pole or Open Drain

Dear Team,

I would like to know Arduino GPIO pins have totem-pole drivers or open drain drivers.

Regards
HARI

Most controllers have totem pole outputs. Some have both like I2C drivers.

The only open drain outputs are the I2C outputs and they only kick in when using the I2C. There is no access to open drain outputs on any Arduino I know of.

Hi Dr,

Thank you very much.
I am using the below MUX/DMUX in my application.It's selection lines(S0,S1,S2) and Enable(E) are
coming from Arduino nano.
Enable signal is active low.
My question is do I need to add a pull up resistor to the Enable pin
so that during power up it will have a predefined state.
image

Hi Mike,

Thank you very much.
I posted my full question with a schematic. could you please look into it.

Regards
HARI

If a predefined state is important then the use of pull up/down resistors is the only solution.

Thank you...
If I don't have pull up ,may I know what will the sate of MUX during power on

They will power up as inputs for the few seconds while the boot loader checks to see if you want to upload some new code. As these inputs float they could be in any state, but as soon as the code starts running it will set them to the desired state as defined in your setup function. Is this a problem for you?

Thank you. I think pull-up will be a better option . May I know 10K is fine or not

Yes that is fine.

Um. "Totem pole" is a TTL output circuit. The outputs of modern CMOS logic and microcontrollers are mostly push-pull CMOS drivers (which are generally a lot more symmetric in their output current capability.)

Occasionally some pins are open-drain, and you can simulate an open-drain output by setting the pin to LOW, and then switching it back and forth between OUTPUT and INPUT (hi-Z) with pinMode() instead of changing the output value with digitalWrite().

That kind of simulated open drain can not operate with voltages in excess of Vdd, though.

The same is true for Arduino I2C pins. True open-drain pins are uncommon on MCUs (except for the reset pin used as I/O).

This seems to be the most precise answer I've found about totem-pole v. push-pull:
https://electronics.stackexchange.com/questions/358151/difference-between-push-pull-and-totem-pole

Its not really relevant to CMOS though. I'm sure totem-pole and push-pull get confused informally.

To can toggle a pin between output and input modes to give a pseudo-open-drain output - but the Vcc protection diode prevents it rising above Vcc. This can be useful for busses like I2C.

As I understand it the I2C hardware effectively just toggles the DDR bit for I2C pins, you can do this on any pin if you want by hand. The I2C hardware does have some extra logic on those pins for slew-limiting and spike suppression, but includes a protection diode to Vcc so they are not true open-drain.

"totem pole" is a legacy term. No modern professional would ever use it to describe CMOS.

Even in the TTL days, "Open Collector" didn't necessarily mean "high voltage" - there were different chips with different voltage ratings of the open-collector outputs (7405, 7406, for example, with ~5V and ~15V specs.) And a lot of NMOS chips had open-drain outputs without any high-voltage capability. Your basic 8051 microcontrollers had open-drain IOs.

Because a "totem pole" is not symmetric at all; it is using two NPN transistors, the upper one in emitter-follower mode, it cannot pull anywhere even remotely near to the supply voltage.