2

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?

  • 1
    how 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 Answers3

2

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.

hacktastical
  • 49,832
  • 2
  • 47
  • 138
0

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.

schematic

simulate this circuit – Schematic created using CircuitLab

vini_i
  • 7,048
  • 3
  • 32
  • 49
0

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.

schematic

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.

Jeroen3
  • 21,976
  • 36
  • 73