I've got several microcontrollers multiple feet away from each other in a network that must be able to be put into a shutdown state all at once, ideally before power loss. I want to trigger a shutdown from a button, like an e-stop. A pair of "FAULT" wires that gets shorted together to trigger the shutdown sounds logical, but if I use a pull up resistor on these boards, there may be current between the 3.3V rails of each microcontroller, which I don't prefer. What's the best way to implement this sort of thing?
-
1how much current *can* you tolerate? Because, honestly, either *some* current flows, or you really go for galvanic isolation, but then your complexity explodes. The current through pull-ups will most likely be benign, but "benign" is relative to what your system can deal with... – Marcus Müller Sep 01 '20 at 19:55
-
The main reason is to avoid accidentally powering other devices. These days, microprocessors can run off micro amps. So, even a couple 10K's in parallel will be enough to keep something alive. – Schuyler Horky Sep 01 '20 at 20:50
-
yep, but that means that the leakage current of a diode might be low enough to eliminate the problem: so go for hacktastical's answer :) – Marcus Müller Sep 01 '20 at 21:49
-
an optoisolator won't add that much complexity. – dandavis Sep 01 '20 at 22:38
-
What type of network are these devices on? – Jeroen3 Sep 02 '20 at 12:25
3 Answers
Use an active-low FAULT signal driven by an open-collector or open-drain driver, and add a diode to each input. This will block leakage between devices and avoid any voltage compatibility issues.

- 49,832
- 2
- 47
- 138
Proverbially this is what it would look like. If you want some redundancy then use two pins on each micro. This circuit would fail-safe. If a wire is open then the pull down would trigger the micro to shut down. If you put a diode further downstream of the switch then the micros could detect the loss of power because the estop lines would go low before the power supply.
simulate this circuit – Schematic created using CircuitLab

- 7,048
- 3
- 32
- 49
I'm assuming several feet
means there is a wiring harness involved.
You can avoid leakage between devices. You can make a fairly tolerant fault line kept up by only one source, but sensed and triggered by multiple.
Below circuit provides a noise tolerant circuit of a node requiring at least 3mA at 3.3V to register a high. This makes it robust against floating wires or nearby transients.
And the option for each node to trip the fault line.
The 1 kOhm and ESD diode are to protect the input from overvoltage and reverse bias. You could also add a capacitor to increase the time required to activate the input schmitt trigger.
simulate this circuit – Schematic created using CircuitLab
Or have each node pulls the line up via a diode and resistor of 470 Ohm.
There are many ways to do this.

- 21,976
- 36
- 73