EmbeddedRelated.com
Forums

Reliability of a microcontroller in sleep mode

Started by Marcel-G April 19, 2004
I was wondering how people deal with the following problem. 

When a microcontroller is put in sleep mode many registers and RAM are
in an initialized state. In this condition the microcontroller can be
affected by ESD, EMI which means the initialization can be corrupted
-> there is a risk it does not wake up anymore.

Of course there are watchdogs, but due to power constraints this can
not be on during sleep.

Is there anybody who has experience with this kind of problems ?

MarcelG
"Marcel-G" <marcel-g@xs4all.nl> wrote in message
news:1a53e44a.0404182358.1a7fa3ce@posting.google.com...
> I was wondering how people deal with the following problem. > > When a microcontroller is put in sleep mode many registers and RAM are > in an initialized state. In this condition the microcontroller can be > affected by ESD, EMI which means the initialization can be corrupted > -> there is a risk it does not wake up anymore. > > Of course there are watchdogs, but due to power constraints this can > not be on during sleep. > > Is there anybody who has experience with this kind of problems ? > > MarcelG
Just curious, how would this be different from being in running state? Is there any reason to suspect higher susceptibility to EMI/ESD corruption in sleep mode? Rob
On Mon, 19 Apr 2004 10:47:50 +0200, "Rob Turk" <wipe_me_r.turk@chello.nl> wrote:

>"Marcel-G" <marcel-g@xs4all.nl> wrote in message >news:1a53e44a.0404182358.1a7fa3ce@posting.google.com... >> I was wondering how people deal with the following problem. >> >> When a microcontroller is put in sleep mode many registers and RAM are >> in an initialized state. In this condition the microcontroller can be >> affected by ESD, EMI which means the initialization can be corrupted >> -> there is a risk it does not wake up anymore. >> >> Of course there are watchdogs, but due to power constraints this can >> not be on during sleep. >> >> Is there anybody who has experience with this kind of problems ? >> >> MarcelG > >Just curious, how would this be different from being in running state? Is >there any reason to suspect higher susceptibility to EMI/ESD corruption in >sleep mode? > >Rob >
In many cases it will be in sleep mode for the vast majority of time, and therefore statistically more likely that an upset event will occur in sleep mode. However the wake-up event is unlikely to be affected, as there will typically only be a couple of hardware bits that control this, and the application could perform some consistency checks immediately after wake up. e.g. do a checksum on RAM before going to sleep, and check it on wake-up. However you can never cover all bases in software, and it is far better to ensure that the hardware is reliable so upssets don't occur in the first place.
On 19 Apr 2004 00:58:05 -0700, marcel-g@xs4all.nl (Marcel-G) wrote:

>I was wondering how people deal with the following problem. > >When a microcontroller is put in sleep mode many registers and RAM are >in an initialized state. In this condition the microcontroller can be >affected by ESD, EMI which means the initialization can be corrupted >-> there is a risk it does not wake up anymore. > >Of course there are watchdogs, but due to power constraints this can >not be on during sleep. > >Is there anybody who has experience with this kind of problems ? > >MarcelG
In my uninformed opinion, I think it would be extremerly unlikely to get corruption of static RAM memory while in sleep mode. I think this because the static RAM is inherrently a very stable circuit. It is much more likely to get corrupted in the presense of all those fast-rising voltages and transient currents that whizz around the processor die in normal opration. regards, Johnny.
On 19 Apr 2004 00:58:05 -0700, the renowned marcel-g@xs4all.nl
(Marcel-G) wrote:

>I was wondering how people deal with the following problem. > >When a microcontroller is put in sleep mode many registers and RAM are >in an initialized state. In this condition the microcontroller can be >affected by ESD, EMI which means the initialization can be corrupted >-> there is a risk it does not wake up anymore. > >Of course there are watchdogs, but due to power constraints this can >not be on during sleep. > >Is there anybody who has experience with this kind of problems ?
You can refresh the initialization from time to time, or even at every wake-up. Best regards, Spehro Pefhany -- "it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com
> > When a microcontroller is put in sleep mode many registers and RAM are > > in an initialized state. In this condition the microcontroller can be > > affected by ESD, EMI which means the initialization can be corrupted > > -> there is a risk it does not wake up anymore. > > > > Of course there are watchdogs, but due to power constraints this can > > not be on during sleep. > > > > Is there anybody who has experience with this kind of problems ? > > > > MarcelG > > Just curious, how would this be different from being in running state? Is > there any reason to suspect higher susceptibility to EMI/ESD corruption in > sleep mode? > > Rob
If a microcontroller can run permanently in running state some clock is running and the power consumption is higher then in sleep. So during running state it is usually not a problem from power consumption point of view to have a watchdog running. I`m talking about a device which can be a year in sleep, used for a few minutes and sleep again for a long time. Marcel
> >> > >> When a microcontroller is put in sleep mode many registers and RAM are > >> in an initialized state. In this condition the microcontroller can be > >> affected by ESD, EMI which means the initialization can be corrupted > >> -> there is a risk it does not wake up anymore. > >> > >> Of course there are watchdogs, but due to power constraints this can > >> not be on during sleep. > >> > >> Is there anybody who has experience with this kind of problems ? > >> > >> MarcelG > > > >Just curious, how would this be different from being in running state? Is > >there any reason to suspect higher susceptibility to EMI/ESD corruption in > >sleep mode? > > > >Rob > > > > In many cases it will be in sleep mode for the vast majority of time, and therefore statistically > more likely that an upset event will occur in sleep mode. > However the wake-up event is unlikely to be affected, as there will typically only be a couple of > hardware bits that control this, and the application could perform some consistency checks > immediately after wake up. e.g. do a checksum on RAM before going to sleep, and check it on wake-up. > However you can never cover all bases in software, and it is far better to ensure that the hardware > is reliable so upssets don't occur in the first place. > >
A microcontroller is most susceptible at the parts which are at the outer side of the die ( usually I/O ports ). If an I/O register is changed for example from Input to output while it`s in sleep mode for an interrupt from that pin it never will wake up. So I wonder how usually id dealt with this issue for parts which have to be in sleep without replacable battery for a very long time ( for eample TPMS sensors inside a tire )
"Marcel-G" <marcel-g@xs4all.nl> wrote in message
news:1a53e44a.0404190554.713f0a1c@posting.google.com...
> If a microcontroller can run permanently in running state some clock > is running and the power consumption is higher then in sleep. > So during running state it is usually not a problem from power > consumption point of view to have a watchdog running. > > I`m talking about a device which can be a year in sleep, used for a > few minutes and sleep again for a long time. > > Marcel
In that case I'd be seriously tempted to store any state I need in non-volatile memory, perhaps serial EEPROM or serial FLASH. Do a complete reinitialisation on wakeup and go and see what was happening when the device went to sleep. Peter.
> A microcontroller is most susceptible at the parts which are at the > outer side of the die ( usually I/O ports ). If an I/O register is > changed for example from Input to output while it`s in sleep mode for > an interrupt from that pin it never will wake up.
Hmmmm... if that's true, I suspect that based on closeness to the edge of the die, the IO input buffer register is more susceptible than the configuration register so you're more likely to get a spurious wakeup than to have an input turned to an output?
> in an initialized state. In this condition the microcontroller can be > affected by ESD, EMI which means the initialization can be corrupted > -> there is a risk it does not wake up anymore.
If that is the ONLY thing you are worried about, then use an external watchdog - when the wakeup stimulus arrives, it should start a delayed one-shot which will generate a reset to the micro unless the micro wakes up and does some positive action within [time interval].