I had a couple of quick questions. I am designing a board using 10 IO expanders which I'll use as inputs. Each has an !INT pin which is open drain and pulled high to 5v through a resistor. Can I attach all of these pins together to effectively create a 10 input 'AND' of all the interrupt pins to be read by a uC? Additionally, each of these chips has a !RESET pin that also operate open drain and are pulled high to 5V through a resistor. Could I effectively reset all of my chips at the same time by connecting them together and pulling the line low? Finally, I know that I2C operates using open-drain inputs/outputs and you need the pull-up resistors decently close to the actual chips but since my !INT and !RESET lines aren't going to switch at nearly the same frequency, could I get away with a single pull-up resistor for each of the two lines?

The IO Expander I'm using: http://www.nxp.com/documents/data_sheet/PCA6416A.pdf

I2C Bus Switcher: http://www.ti.com/lit/ds/symlink/tca9548a.pdf

  • 1
    \$\begingroup\$ What's an open drain input? \$\endgroup\$ – Majenko Feb 5 '15 at 21:59
  • 2
    \$\begingroup\$ And the answer to your question is: yes - that's exactly why they ARE open drain outputs. \$\endgroup\$ – Majenko Feb 5 '15 at 21:59
  • 2
    \$\begingroup\$ This approach has worked for 50 years, at least. Not clear why it would suddenly stop working. Ohm's law hasn't been repealed yet. \$\endgroup\$ – Hot Licks Feb 5 '15 at 22:05
  • 1
    \$\begingroup\$ i2c is a very different beast. Too high a resistance and the waveform is distorted by the input voltage rising too slowly. Too low and you waste current or overload your open drain outputs. It's a fine balancing act. For interrupts you don't really have that kind of problem. \$\endgroup\$ – Majenko Feb 5 '15 at 22:15
  • 3
    \$\begingroup\$ This technique of connecting several open-connector or open-drain outputs is sometimes called "wired OR". \$\endgroup\$ – Nick Alexeev Feb 5 '15 at 22:18

Yes. Open drain outputs act like a switch to ground. The resistor acts as a pullup for when none of the outputs are active.

If you replace the open drain outputs in your circuit with buttons its easier to visualise:


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ I think the right most label in the figure should be "output" instead of "input". \$\endgroup\$ – nidhin Feb 12 '15 at 18:04
  • \$\begingroup\$ Depends on your point of view. It's the output of the circuit, but it connects to the input of the MCU. \$\endgroup\$ – Majenko Feb 12 '15 at 18:08
  • \$\begingroup\$ Yes it depends. The word "open-drain input" in OP made me think that way. :) \$\endgroup\$ – nidhin Feb 12 '15 at 18:15

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.