cancel
Showing results for 
Search instead for 
Did you mean: 

Average life of an STM32 microcontroller.

federico.massimi
Associate III

Hi, someone can tell me how much is the average life of an STM32 MCU. If I take an STM32 MCU that performs even a very simple task, and I keep it running 24 hours per day 365 days per year, after how long could I have problems? 1 year? 2 year? 10 year? 50 year?

(of course I mean average life of MCU)

3 REPLIES 3

If your code doesn't crash, and the power supply doesn't fail, I'd expect 10+ years of continuous operation could be achieved.

Most of the things I build are headless and expected to keep running indefinitely, and be resilient to other things coming/going like the cellular phone networks cycling daily (billing, dhcp, leasing, etc). If firmware updates are pushed, expect to have to restart.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Danish1
Lead II

A couple of caveats to add to what @Community member​ said:

  1. stm32h7, at its highest clock speed, has a shorter life according to AN5337 Stm32h7 series lifetime estimates . I do not know the underlying mechanism or how it behaves once things start to fail
  2. Repeated writing of FLASH memory can wear that out. I think we’re talking 10,000 cycles of the same memory location. You’re unlikely to upgrade firmware that many times over a product lifecycle or even during development. But if you use FLASH as non-volatile storage for variables that change too often, you might hit this limit. The stm32 eeprom-emulation example tries to avoid this problem.
  3. Statistics. Although the average life is over 10 years, you might be the unlucky person whose stm32 dies after 2 years without reason while many others live for 20+ years.
  4. Electical abuse: If you exceed the “absolute maximum“ ratings you can kill stm32 quickly.
gregstm
Senior III

Just a thought. If your goal is to keep an application running continuously, then you will have to assume you will get some sort of disruption (eg. static discharge, weird radiation, power glitch,..) and recover gracefully from it. You might need to keep some variables+checksums that will allow you to determine whether a reset was from power-up or some unexpected interruption to normal operation - if so, you can log the event but hopefully carry on processing without the user even noticing.