Free Trials

Download a free trial to find out which Altium software best suits your needs

How to Buy

Contact your local sales office to get started on improving your design environment

Downloads

Download the latest in PCB design and EDA software

  • PCB DESIGN SOFTWARE
  • Altium Designer

    Complete Environment for Schematic + Layout

  • CircuitStudio

    Entry Level, Professional PCB Design Tool

  • CircuitMaker

    Community Based PCB Design Tool

  • NEXUS

    Agile PCB Design For Teams

  • CLOUD PLATFORM
  • Altium 365

    Connecting PCB Design to the Manufacturing Floor

  • COMPONENT MANAGEMENT
  • Altium Concord Pro

    Complete Solution for Library Management

  • Octopart

    Extensive, Easy-to-Use Component Database

  • PRODUCT EXTENSIONS
  • PDN Analyzer

    Natural and Effortless Power Distribution Network Analysis

  • See All Extensions
  • EMBEDDED
  • TASKING

    World-Renowned Technology for Embedded Systems Development

  • TRAININGS
  • Live Courses

    Learn best practices with instructional training available worldwide

  • On-Demand Courses

    Gain comprehensive knowledge without leaving your home or office

  • ONLINE VIEWER
  • A365 Viewer

    View & Share electronic designs in your browser

  • Altium Designer 20

    The most powerful, modern and easy-to-use PCB design tool for professional use

    ALTIUMLIVE

    Annual PCB Design Summit

    • Forum

      Where Altium users and enthusiasts can interact with each other

    • Blog

      Our blog about things that interest us and hopefully you too

    • Ideas

      Submit ideas and vote for new features you want in Altium tools

    • Bug Crunch

      Help make the software better by submitting bugs and voting on what's important

    • Wall

      A stream of events on AltiumLive you follow by participating in or subscribing to

    • Beta Program

      Information about participating in our Beta program and getting early access to Altium tools

    All Resources

    Explore the latest content from blog posts to social media and technical white papers gathered together for your convenience

    Downloads

    Take a look at what download options are available to best suit your needs

    How to Buy

    Contact your local sales office to get started improving your design environment

    • Documentation

      The documentation area is where you can find extensive, versioned information about our software online, for free.

    • Training & Events

      View the schedule and register for training events all around the world and online

    • Design Content

      Browse our vast library of free design content including components, templates and reference designs

    • Webinars

      Attend a live webinar online or get instant access to our on demand series of webinars

    • Support

      Get your questions answered with our variety of direct support and self-service options

    • Technical Papers

      Stay up to date with the latest technology and industry trends with our complete collection of technical white papers.

    • Video Library

      Quick and to-the-point video tutorials to get you started with Altium Designer

    Microcontroller Failure Modes: Why They Happen and How to Prevent Them

    Altium Designer
    |  October 23, 2017

    “Anything that can go wrong will go wrong” written on a whiteboard

    I owe much of my design success to my college. Not because of the lab experiments where we learned what might accidentally blow up a capacitor, but because we learned that Murphy’s Law can strike when you least expect it to. Since I spent a lot of time playing Warcraft and struggling to finish up endless assignments, I relied on my computer to function at all times.

    Back then, computers were pretty limited and it wasn’t uncommon to see the infamous Windows “Blue Screen Of Death” popup once in a while. While it’s frustrating to get interrupted from a game of Warcraft; losing hours of unsaved assignments to a system computer crash would send me into a massive panic attack. As a , you might have experienced a similar panic when your microcontroller fails in the field.

    How Microcontroller Failure Modes Effects A System

    In an embedded system, microcontroller failure modes (MCU) could have worse repercussions than missing your assignment’s deadline. MCUs are often the heart of applications like payment machines, medical devices, and security systems. These systems demand high stability and often have low tolerances for system failure rate.

    A Microcontroller Unit that has failed can cause a complete standstill in operations. This can inconvenience users or pose functional safety risks in critical applications. For the clients, unreliable systems affect the operational capacity and potentially cause losses in revenue. For designers, having hundreds of their products constantly failing in the field is a huge blow to our pride, and can affect our reputation.

    Businesspeople blaming frustrated colleague
    Pointing fingers doesn’t help a microcontroller that’s failed.

    Why A Microcontroller Fails And Who Should Be Responsible

    A reliable embedded system requires a combined effort from the hardware designer and the firmware programmer. Some design faults can go undetected during the development phase and only rear their ugly heads once deployed. When this is the case, who should bear the larger portion of the responsibilities?

    Before we start pointing fingers, let’s have a look at the reasons why microcontrollers fail.

    1. Memory Stack Overflow

    A microcontroller’s memory stack is a designated area of its internal RAM that is used meant for temporary usage. The size of a memory stack is limited and varies with different MCUs. When the firmware programmer allocates a variable greater than the stack size, a stack overflow may occur during the runtime and cause the firmware to fail.

    2. Illegal Pointers

    In MCU firmware programming, a pointer is commonly used to indicate the address of a variable or program functions. Declaring and using pointers requires the firmware programmer to adhere to the strict syntax defined by the programming language, often in C. Introducing an illegal pointer by mistake can cause the MCU to attempt to process variables or functions in addresses that are outside its valid range. This could crash the MCU.

    3. Unstable Voltage Source

    Often an overlooked factor, an MCU needs stable power network to run reliably. MCU could fail when its power source is constantly disrupted by external interference. A dip in the operating voltage could cause an MCU to behave erratically or freeze completely.

    4. Electrical Interference

    Failing to handle electrical interference, especially those induced from relays and motors could crash your MCU. During one of my earlier projects driving a simple DC motor, my MCU failed each time it tried to drive the motor in reverse. This problem was solved by increasing its electrical isolation using an operational amplifier.

    5. Poor Assembly Processes

    Occasionally, a microcontroller unit fail can have nothing to do with both the hardware or the firmware engineer. Low-quality solder joints on the MCU pins can result in unpredictable MCU behavior. If only a handful of your embedded systems are failing, you might start to investigate the process quality of your manufacturer.

    Microchip production factory
    Your design is as good as your PCB assembler.

    Instead of playing the blame game, both hardware and firmware engineers must play their part in designing a reliable embedded system. Practicing good programming ethics and planning memory allocation beforehand are best practices to follow. For programmers, keeping things simple can be a wise choice for minimizing buggy codes.

    Hardware designers need to consider the environment that the hardware will be used in and prepare for all possibilities. This means adhering to all the best basic design practices and fully utilizing your PCB software’s tools to test the design. Altium’s CircuitStudio®, which is built with Altium Designer® technology, gives you the tools to design professional Printed CIrcuit Boardss.

    Contact an expert at Altium to understand why your microcontroller is failing.

     

    Check out Altium in action...

    Powerful PCB Design

    About Author

    About Author

    PCB Design Tools for Electronics Design and DFM. Information for EDA Leaders.

    most recent articles

    Back to Home