Puposet

home
EEPROM emulator

For uPSD34xx and Raisonance compiler

The EEPROM emulator provides non-volatile storage of from 1 to 255 bytes of variable data using several sectors of the uPSD34xx's flash ROM to emulate a small EEPROM. It also stores up to 251 bytes of quasi-constant data by emulating a small (unpaged) flash ROM.

The two records are both of fixed size, defined when the ROM is initialised.

Ideally the EEPROM data is read into RAM on detection of RAM corruption (e.g. on power-up) and saved to ROM during power-loss processing. This technique is transparent to the programmer and has no impact on device lifetime.

The flash record is used to store permanent and infrequently changed parameters. Typically this is used for settings which are manually entered and saved on user command. The save process involves erasing a flash sector which takes about a second (in parallel with normal processing). The point of this is to retain the functionality of a normal flash ROM regardless of page changes being done by the EEPROM emulator. If a large area of flash is needed then some sectors can be excluded from the emulator, but this requires the programmer to be aware of sector erase cycles being performed by the emulator.

The emulator is provided as public-domain source code suitable for the Raisonance RC51 compiler. It is intended as a replacement for the ST Microsystems example emulator code, being smaller, faster and more versatile.

Download uPSD3400 EEPROM emulator source code (37kB)