2
\$\begingroup\$

I can't understand a thing from my book, it say that since in integrated circuit with CMOS have an output of high and low current that is equal we can't use the wired-or connection, but we can use it with Open Drain technology. I have some question:

  1. What is the wired-or connection
  2. Why if the I low and I high are equale we can't use a circuit like that:enter image description here

But we have to use a circuit like that: enter image description here

Thanks for read!Hope that you'll have a nice day!

\$\endgroup\$
1
  • \$\begingroup\$ You can use both of those circuits. However neither of them is a wired OR so I'm not clear what your point is. \$\endgroup\$ – user253751 Feb 21 '18 at 4:39
8
\$\begingroup\$

A wired or circuit is rather like that string they used on buses and trains to tell the driver to brake and stop.

enter image description here

The string is a common signal line that just hangs there till anyone decides to pull down on it.

In a circuit, a wired or connection is a signal line held up by a pull-up that one or more open-drain or open-collector gates are attached to. Each gate can only pull the voltage down on that signal line.

schematic

simulate this circuit – Schematic created using CircuitLab

You can see from the above that the output, "signal", will be low if any of the switches is closed.

That is:

SIGNAL is low if SW1 is closed OR SW2 is closed OR SW3 is closed.

Why We Need Open-Drain Drivers

Since the tops of those switches are shorted together, when you use gates to drive that line, the gate outputs also need to be shorted together.

If the outputs were able to source current as well as sink it, you would create the conditions where one gate is trying to push at the same time as another is trying to pull. This would result in a large destructive current in both gates.

As such we use open-drain, or open-collector gates for this function.

What use is it?

Now you may be wondering when we would do such a thing.

The nice thing about the wired or circuit is, unlike an integrated logic circuit, you do not need to know in advance how many devices are going to take part in the OR function. Just like in the bus-string where any number of passengers can pull it, any number of gates can be theoretically attached to the or-line.

A good example of this it the I2C communication bus that allows you to hook up an indeterminate number of slave devices to a single master device.

So why aren't all gates open-drain?

You may be asking that question and it is a valid one.

The major downfall with wired or connections is the pull-up.

  1. Since it is not an active current source, when the line is released the voltage on the line rises at a slower rate dictated by the parasitic capacitance of the signal line. That means, there is an upper limit on how fast you can pass transitions on that line.

  2. Since the line has a higher rest impedance it is much more susceptible to noise than an actively driven line.

Additionally, other inter-gate interferences can occur, especially with open-drain outputs which have internal capacitive effects.

\$\endgroup\$
4
  • 1
    \$\begingroup\$ It is also appropriate to mention the "wired-or glitch" that can occur on long and/or fast lines when one driver releases the common line while others are still driving it. See ti.com/general/docs/… \$\endgroup\$ – crj11 Feb 20 '18 at 20:59
  • \$\begingroup\$ @Trevor_G You are my savior,thanks for the second time :) \$\endgroup\$ – A. Rossi Feb 20 '18 at 21:08
  • 1
    \$\begingroup\$ An open-drain output with pullup also consumes more current when it's low, than a push-pull output. \$\endgroup\$ – user253751 Feb 21 '18 at 4:40
  • \$\begingroup\$ @immibis well that would depend on what it is driving, but generally speaking, when driving another CMOS gate input, yes. \$\endgroup\$ – Trevor_G Feb 21 '18 at 14:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.