EEPROM data corruption after thermal shock - is it normal? - Page 1
Forum section: electronics / general

author: MichalPL
author_rank: Contributor
timestamp: July 12, 2016, 07:49:24 pm
content: Hi, I wonder if this phenomenon is normal. I was testing my breadboard prototype, which contains an I2C thermometer, with a freezer spray. I've noticed that once I cooled the uC (Atmega 1284P) area to approx. -30 deg C, the data read from EEPROM stopped passing my CRC check routine. Is it a normal reaction to such a 'thermal shock', a faulty microcontroller, or maybe just these built-in EEPROMs are so unreliable? Have you encountered such behaviour? I consider using FRAM instead because I want the product to be 100% reliable. Does it sound like a good idea or an overkill to you? I just need to store two dozen bytes of config. variables. The system is running on stable 3.3V with BOD on and an external quartz of 10 MHz.

author: Kjelt
author_rank: Super Contributor
timestamp: July 12, 2016, 08:04:49 pm
content: an external eeprom or the one inside the uC ?I never heard of this. I do know about hackers that use clock and voltage glitching to make the uC jump or force into strange behaviour, perhaps the sudden temperature drop did something similar to the internal clock and programcounter registers and perhaps rewrite one cell?Check the eeprom to see if it was only one bit that toggled or one byte or a whole page.

author: MichalPL
author_rank: Contributor
timestamp: July 12, 2016, 08:12:40 pm
content: Hi, I mean the built-in one. Maybe it has something to do with the fact that the crystal was cooled down as well (because everything is packed closely together) and it's not certified for temps lower than -20.

author: bktemp
author_rank: Super Contributor
timestamp: July 12, 2016, 08:24:29 pm
content: Maybe it is not the crystal itself but condensed water shorting pins and stopping the crystal oscillator. Despite being static, AVRs don't like rapid changes in clock frequency.

author: Kjelt
author_rank: Super Contributor
timestamp: July 12, 2016, 08:25:01 pm
content: Still an interesting find esp. for hardware hackers, researchers i meanCan you confirm your findings, with that I mean can you repeat the experiment more than one times and get the same results?

author: MichalPL
author_rank: Contributor
timestamp: July 12, 2016, 08:45:01 pm
content: Yes, it's repeatable and I guess condensation might be the issue, because a moment after freezing you can see a very tiny layer of ice on the uC.

author: wraper
author_rank: Unknown
timestamp: July 12, 2016, 08:52:55 pm
content: Does it read properly once the chip reaches room temperature again? What is temperature grade of the MCU,is it consumer grade 0-70oC? Checked the datasheet, there is no consumer grade for this MCU. However industrial is not guaranteed to work below -40oC.

author: MichalPL
author_rank: Contributor
timestamp: July 12, 2016, 08:57:00 pm
content: Quote from: wraper on July 12, 2016, 08:52:55 pmYes, when it warms up, it works OK. The uC should work at -40.

author: Kjelt
author_rank: Super Contributor
timestamp: July 12, 2016, 09:00:34 pm
content: Ah ok so the eeprom content is not modified but the checksum calculation goes wrong at extreme low temperature? Also when you keep the micrcontroller in reset cool it down and then let it run?

author: wraper
author_rank: Unknown
timestamp: July 12, 2016, 09:02:46 pm
content: Quote from: MichalPL on July 12, 2016, 08:57:00 pmthen you should check if your approx -30oC is a true figure and not something lower because most freezer sprays seem to claim ~-50oC

author: David Hess
author_rank: Super Contributor
timestamp: July 12, 2016, 09:50:07 pm
content: Floating gate transistor threshold voltage shifts with age and temperature which is why sometimes a failing EPROM can be read successfully by altering the supply voltage. If the EEPROM was programmed incorrectly, then it may not have enough margin to read correctly over its entire operating temperature range.Temperature will not cause the crystal to fail however the gain of the oscillator changes and may drop low enough to cause problems.

author: MichalPL
author_rank: Contributor
timestamp: July 12, 2016, 09:55:17 pm
content: Thank you. I'll start with checking whether it's the actual data that get corrupted or the CRC calculation because it sounds like a good suspect.

author: MichalPL
author_rank: Contributor
timestamp: July 13, 2016, 05:25:05 pm
content: Today I used a high quality crystal with industrial temperature range and the problem seems to be gone.