0
\$\begingroup\$

I'm developing a circuit with two warm-redundant micro-controllers.

Each uC has to read I2C, analog and digital signals from the rest of the circuit. Should I route the signals directly to the two micro-controllers or should I use some kind of multiplexer?

What about the outputs?

The uC is a Atmel UC3C

Thank you very much for your answers!

\$\endgroup\$
0
\$\begingroup\$

I2C is defined from the ground up for multi-master operation. So, that's a gimme when everything is operational, but you have to ensure that a failed MCU won't pin the line low. This may be difficult to ensure.

The ADCs should be fine to sample the same point, but depending on output impedance of the sense point, input impedance of the ADC, and ADC architecture, it might be prudent to separately buffer the sample point for each MCU.

For digital, as long as you can guarantee that there will not be any bus contention, this should also be fine. A series resistance can alleviate the destructive effects of bus contention, if not.

As for outputs, you cannot drive the same signal directly from both MCUs with push-pull outputs. You could perhaps use open-drain outputs, but if one MCU goes in the weeds and pins the line low, you lose control of the signal. You could use logic gates to combine those signals if the control signal is well understood and you can guarantee that the MCUs will operate in lock-step and not glitch the signal timing.

There are dual core MCUs designed specifically for this application (safety/redundancy). It may make more sense to use one of those pending your application and cost sensitivity (they are expensive devices).

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ The failing MCU is supposed to be turned off when a failure is detected. In normal operation the redundant MCU should be on standby mode. A turned off MCU may affect the the I2C line or generate any bus contention?? \$\endgroup\$ – Pedro Jan 24 '17 at 14:42
  • \$\begingroup\$ "Turned off" by what? It can't shut itself down because it has failed. The I/O buffers are in an undefined state when the device is not powered. How does the redundant MCU know to take over? \$\endgroup\$ – M D Jan 24 '17 at 16:43
  • \$\begingroup\$ I'm aiming to use the brown-out detection and embbed comparators for supply problems and the watchdog timer for software problems. I'm thinking about using multiplexers so select the right I/O... Can this be a problem? \$\endgroup\$ – Pedro Jan 24 '17 at 17:03
0
\$\begingroup\$

Our can route then directly, trough resistors just in case one pin goes rouge, like becoming an output.

| improve this answer | |
\$\endgroup\$

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.