Jump to content


Redundant Microcontroller Programming

TIVA Energia Code

  • Please log in to reply
2 replies to this topic

#1 TVG



  • Members
  • PipPip
  • 13 posts

Posted 08 January 2016 - 08:43 AM


I want to build a code for two TIVA lauchpads so as to form a redundant pair. If Launchpad 1 fails, then the logic should shift to Launchpad 2 where both launchpads have the same logic. How do I go about it? Any insights would be helpful.

#2 spirilis


    Level 5

  • Members
  • 2,996 posts

Posted 08 January 2016 - 02:07 PM

A shortcut might be to use the TI Hercules series processors, sporting an ARM Cortex-R series chip with dual-core lock-step execution for safety purposes.  That requires a specific workflow using their HALCoGen software to generate a CCS project and then utilizing CCS to do your programming, and HALCoGen provides the peripheral driver library, but it might solve your design problem neatly.  They do have several reasonably-priced LaunchPads for sale including a more recent ARM Cortex-R5F based board with a lot of pins.  I've personally tinkered with the original Hercules TMS570LS0432 based launchpad myself.

  • energia and abecedarian like this

I made some 43oh Store gadgets

Also see my Tindie store

#3 roadrunner84


    Level 4

  • Members
  • 1,371 posts
  • LocationEindhoven, the Netherlands

Posted 08 January 2016 - 02:32 PM

I once did a medical grade project, the designer chose to have very extensive redundancy.

- Three different brand micro controllers were used

- Code was written non-shared

- Every task was handled by two controllers redundantly

All of this to avoid silicon bugs, programming bugs, quality issues, etc.


If you want to have a "spare" kind of redundancy - one fails, other takes over, replace first while online - you should still use an additional arbitrating control. Depending on where you can still afford redundancy.

If you have a certain indicator LED that is vital for your function, consider putting in two LEDs; one to each controller.

If you have some kind of actuator (e.g.: motor), have some majority voting in place. Or consider using open-drain control, so if either controller fails, the other still drives the line.

  • energia, abecedarian and yosh like this

Always connect a pull-up resistor (47kΩ) and a pull-down capacitor (2.2nF) to reset.

Never use delay() or _delay_cycles(). Never use floating points in embedded systems.

Also tagged with one or more of these keywords: TIVA, Energia, Code

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users