Loading...
Pages: 1 [2]   Go Down
Author Topic: Open Drain  (Read 546 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Tesla Member
***
Karma: 71
Posts: 6624
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

They (the electronics world) call it an Output!! but if you google Open Drain the explanation is that it can only Sink current or present a High Impedance so it cannot output anything. smiley The Output definition is very confusing.

The insight you need is that input and output refer to _information_ flow, not anything like charge or current or voltage.

In fact an Arduino pin used as an open-drain can be used for input at the same time - so its actually an IO pin - this is
exactly why open-drain is useful in protocols like I2C.

When the pin is pulled LOW (mode = OUTPUT, value = LOW), it will will always be LOW, so this is outputing only,
but when it is hi-Z (mode = INPUT, a.k.a. "tri-stated") you are both outputing and inputing - outputing the fact that
its not being pulled LOW by you, but inputting information about whether something else is pulling it low.

The OneWire protocol used by Dallas Semiconductor devices are an example of this clever signalling technique.
Such a protocol standardizes when each participant should be idle and listening, and when it can "transmit" - very
similar to a wireless data link in fact.
Logged

Pages: 1 [2]   Go Up
Print
 
Jump to: