This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Flash access problem at high temperatures

Hello,
I am using C8051F124 processor for one of the project. The processor has 128KB on-chip, reprogrammable Flash memory for program code or non-volatile data storage. I use GUI to read the flash parameters and display it.
I am able to read and write the flash during runtime without any problem.

Problem: When the module temperature increses above ~65 degree Celsius, I get a flash read error. (The MCU operating temperature is much higher at around ~115 degree Celsius)
When I cool down the module, and powercycle it, everything seems to work again and all previous values (settable) are retained.

Has anyone come across such issue ?

Please let me know if you would like to have some specific information, I will post it here.

Thank you in advance.

Regards,

--CM

Parents
  • The problem with data retention is that you need to wait weeks, months or years to find out.

    The effect of temperature is probably varying a lot between different technologies, but I have seen a number of diagrams showing that every 10C has halved the retention time. So 40C higher than the temperature where the rentetion is specified as 10 years means about 6 months - unless that extra temperature kills the chip.

    Another thing is that the rentention time is affected by the number of writes you do to the flash.

Reply
  • The problem with data retention is that you need to wait weeks, months or years to find out.

    The effect of temperature is probably varying a lot between different technologies, but I have seen a number of diagrams showing that every 10C has halved the retention time. So 40C higher than the temperature where the rentetion is specified as 10 years means about 6 months - unless that extra temperature kills the chip.

    Another thing is that the rentention time is affected by the number of writes you do to the flash.

Children
  • If you measure the surface temperature of a running chip to 70C, then the internal temperature will be much higher.

    The specification for the encapsulation will tell how many degrees difference you get between chip and surface for a given power loss in the chip.

    What was the surrounding temperature when you measured 70C surface temperature?

  • The chip is inside the casing, where the case heats up to about 65 Degree Celsius.
    The case is placed at room temperature.

    I also believe that when the data sheet says that the operating temperature should be 85 degree Celsius or less, I should be able to do all operations if the ambient operating temperature does not exceed that value.

    The flash read and write are getting messed up at high temperatures.

    Also I send read and write commands through serial Com port. I do not think that baud rate is getting affected either.

  • you keep speaking of 'surface temperature', that is meaningless on its own, if external heat that means one thing, if internally generated heat that means something totally different.. What is the ambient temperature

    possibilities:
    a) you run the chip beyond some other max (port current, supply voltage, ...) that makes the chip itself generate the heat in which case a high surface temperature means the chip is in the process of self destructing.
    b) your temprature measuring device/method is faulty.

    My bet is on a)

    Erik

    one I once saw was an input to a push-pull configured pin, that will generate some heat

  • System validation includes testing at various temperature settings... a "Thermal Soak," as it is called, can mean to heat/cool the system up/down to a specified temperature for a specified period of time to let the system 'soak' allowing all components to equalize to the new operating temperature.

    If it is Environmental Stress Screening (ESS) where you need to test the system at temperature extremes, then WE can consider the inside and outside temp being the same. (So we don't have to quibble about surface temperature vs internal temperature)

    Now, for the Flash problem at temperature, you have to know the internal workings of the Flash Read/Write operations. Typically, there is an on-chip charge-pump to elevate the supply voltage to a "programming voltage." (This is usually why it can take "5 msec" to write/erase a sector).

    These charge-pumps can use capacitors, and as we all know, temperature affects the capacitance... especially in these tiny ICs. (the charge pump is an analog circuit, and these component's values do change with temperature: caps or not).

    Your best bet, since the data-sheets rarely tell you the needed information for ESS, is to contact the vendor and talk to their QA personnel (it helps if you are some big company/agency, and not Joe Hobbyist who wants to make a toaster oven that is re-programmable in situ).

    Next to that, you can alter your Flash timing specifications to allow for longer charge-pump times... which means you would have to write your own programming algorithm if you already haven't.

    If this is part of an ESS, you'll then have to justify the test criteria, so you will still need more information from the vendor. "It passed because I tried increasing the write-cycle by about fifty-five percent" won't cut it with some customers.

    --Cpt. Vince Foster
    2nd Cannon Place
    Fort Marcy Park, VA

  • The 'endurance' of flash is greatly affected by temperature.

    the core of the chip is specified to 125C the flash to 85C

    Erik

  • I also believe that when the data sheet says that the operating temperature should be 85 degree Celsius or less, I should be able to do all operations if the ambient operating temperature does not exceed that value.

    That is not a correct belief. The data sheet show the temperature as measured on the silicon die. Not the package, and not ambient.