This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Non-volatile user memory

Other Parts Discussed in Thread: TM4C1294NCPDT

Hi All,

I want to have non-volatile memory to use it in project even electricty gone out.  I dont want to use EEPROM because it has limited read/write operation. I have configuration values to store always. 

I will set these values while program running and won't lost them. What should I perform ? ROM or On chip flash ? Which one is logical ? 

Thanks in advance.

*(I am using TM4c1294NCPDT)

  • I dont want to use EEPROM because it has limited read/write operation.

    What should I perform ? ROM or On chip flash ? Which one is logical ?

    If you look at the datasheets, the program Flash of an MCU has even less guaranteed R/W cycles than EEPROM.

    ROM means Read Only Memory, and it is usually exactly that ...

    There are other options, but this depends on your requirements, which you did not disclose here.

    How often do you need to write, estimated for what lifetime ?

    Under what conditions ? If you want to write during a power-off event while living on a cap charge, you need to consider energy requirements and programming times.

    How many data ? (bytes, kilobytes, Mega bytes ...)

    A "simple" storage, or with redundancy (multiple parameter sets, with history) ?

  • Thank you for your answer.
    When I talked about ROM I wonder is it possible to create spesific place in ROM side but it will act R/W.
    I will use maximum 15 registers which are uint_16 type for device configuration. In hardware design it has not planned to keep these registers.
    These register will be read when mcu starts.

    Best regards
  • ROM is usually mask-programmed, so no way to change the contents at all. Some implementation might implement it actually as Flash, but without any possibility for you (users) to erase/program it - for a good reason.

    If you have just a few values for a short duration, battery-backed RAM would be the best option for you. Often implemented in MCU hardware, you just need to attach the battery. Don't know if any of TM4C MCU has such an option - perhaps Amit knows ?
  • Hello tiva_Tick53

    ROM is "NOT" writable. And I am surprised that the on-chip EEPROM with 500K+ program erase cycles is insufficient for the case.

    If still the 500K+ is not sufficient then an off-chip EEPROM with I2C/SSI interface is what you must look for.
  • Amit Ashara said:
    And I am surprised that the on-chip EEPROM with 500K+ program erase cycles is insufficient for the case.

    It would fail if the idea was to provide a restore of value on power-up for a frequently changed value (say once every second).

    If the '129 errata is anything at all similar to the '123 then I'd avoid the EE in any case for anything other than values that are written occasionally for configuration.

    If frequent writes are needed than as f.m. suggests either battery backed RAM or use an external FRAM (my choice would be FRAM) would be necessary.

    Robert

  • Hello Robert

    There is no mention of power cycle. But yes, I agree using an external device would be a better choice.
  • Several Cortex M devices I know feature a certain "backup register area", which has it's own "VBAT" power domain. One can attach a battery and some glue logic, and have non-volatile storage - or simple connect the VBAT pin to Vcc. Not coincidently, a RTC peripheral is usually attached to the same power domain ...

    I didn't check TM4C datasheets for that feature, so I don't know it is available in this family.

  • Hello f.m.

    The Battery Backed memory is available for upto 16 32-bit locations on the TM4C devices.
  • Amit Ashara said:
    The Battery Backed memory is available for upto 16 32-bit locations on the TM4C devices.

    It's up to the O.P. to decide if this is sufficient for his purpose...

  • Hello f.m.

    The O.P mentioned 15 registers of uint16 Type.
  • Thank you for all your answers. I am going to use MCU's EEPROM

    Best Regards

  • Hello Tiva_Tick53

    But please be aware of the known errata with EEPROM.