Use of flash memory for series 5000 chips – Echelon Neuron C User Manual

Page 198

Advertising
background image

186 Memory

Management

Any direct write by the application to the flash memory causes a programming

cycle, even if the flash memory is write protected. This condition is an error that
occurs when the application bypasses the Neuron firmware for accessing the

flash memory. The Neuron firmware uses the software write protection feature

of the flash memory, so the invalid write does not change the contents of the flash
memory, but a programming cycle is initiated. The flash memory provides

invalid data during the programming cycle, causing a watchdog reset. It is
possible for the reset to occur during a write cycle, which could, in the worst case,

cause recurring resets. Therefore, having the system image in flash memory

requires that there be a hardware mechanism to extend the device’s reset state
for at least the duration of the write cycle (typically 10 msec). The LVI circuitry

described in the Smart Transceivers databooks can accomplish this. See also the

Neuron 3150 Chip External Memory Interface

engineering bulletin for more

information.
When writing to EEPROM, if a power cycle or other reset occurs, the data

corruption is localized to the area being written. However, with flash memory,
because an entire sector is always programmed at once, all data in the sector

which was being written at the time of the failure is suspect. It is up to the

application program to protect any critical non-checksummed read/write data
through duplication, voting, journaling, or whatever technique is appropriate.
Because loading of flash memory occurs a sector at a time, it is important that
the load image data be contiguous. Thus, uninit eeprom data and initialized

eeprom data should not be interleaved. The linker processes declarations in the

order they appear in the program, thus you can reduce loading time by grouping
uninit eeprom declarations together.

Use of Flash Memory for Series 5000 Chips

For Series 5000 devices, the firmware supports the following flash memory parts:

• Atmel AT25F512B 512-Kilobit 2.7-volt Minimum SPI Serial Flash

Memory

• Numonyx™ M25P05-A 512-Kbit, serial flash memory, 50 MHz SPI bus

interface

• Silicon Storage Technology SST25VF512A 512 Kbit SPI Serial Flash

You can use flash memory for the Extended Non-Volatile memory region for

EECODE data. You can also use an additional 16 KB of the flash memory to

store an alternate Neuron firmware system image. Because of the large sector
size of these flash memory parts, you cannot use flash memory for EENEAR or

EEFAR data (eeprom class variables); the entire data region must be erased to

modify data in this memory region. The use of flash memory for Series 5000
chips does not require additional RAM, but does require additional EEPROM for

the storage of a device-specific flash memory driver.
If you use the uninit eeprom far keywords to create storage variables in flash
memory, that application has access to memory that is initially erased to an “all

ones” state after application load. This memory can only be modified by setting
data bits to the zero state through memory writes.
When using a 32 KB sector flash device, the available space for the Extended

Non-Volatile memory region is limited to 32 KB. For a smaller sector flash
device (such as the SST25VF512A) the available space is 42 KB.

Advertising