English
Language : 

71M6533 Datasheet, PDF (40/132 Pages) Teridian Semiconductor Corporation – Energy Meter IC
71M6533/G/H and 71M6534/H Data Sheet
FDS_6533_6534_004
The flash memory is segmented into individually erasable pages that contain 1024 bytes.
Flash space allocated for the CE program is limited to 4096 16-bit words (8 KB). The CE program must
begin on a 1 KB boundary of the flash address space. The CE_LCTN[7:0] word defines which 1 KB
boundary contains the CE code. Thus, the first CE instruction is located at 1024*CE_LCTN[7:0].
Flash Write Procedures
The MPU may write to the flash memory. This is one of the non-volatile storage options available to the
user in addition to external EEPROM.
FLSH_PWE (flash program write enable) differentiates 80515 data store instructions (MOVX@DPTR,A)
between Flash and XRAM writes. This bit must be cleared by the MPU after each byte write operation.
Write operations to this bit are inhibited when interrupts are enabled.
The MPU cannot write to flash while the CE is executing its code from flash. Two interrupts warn of collisions
between the MPU firmware and the CE timing. If a flash write operation is attempted while the CE is
busy, the flash write will not execute and the FWCOL0 interrupt will be issued. If a flash write is still in
progress when the CE would otherwise begin a code pass, the code pass is skipped, the write operation
is completed, and the FWCOL1 interrupt is issued.
The simplest flash write procedure disables the CE during the write operation and interpolates the metering
measurements. However, this results in the loss of at least one second of data, because the CE has to
resynchronize with the mains voltage.
There is a brief guaranteed interval (typically 1/32768 s) between CE executions which occurs 2520 times
per second. The start of the interval can be detected with the CE_BUSY interrupt which occurs on the
falling edge of CE_BUSY (an internal signal measurable from TMUXOUT). However, this guaranteed idle
time (30.5 µs) is too short to write a byte which takes 42 µs or to erase a page of flash memory which
takes at least 20 ms. Some CE code has substantially longer idle times, but in those cases, firmware
interrupt latencies can easily consume the available write time. If a flash write fails in this scheme, the
failure can be detected with the FWCOL0 or FWCOL1 interrupt and the write can be retried.
It is practical to pre-erase pages, disable interrupts and poll the CE_BUSY interrupt flag, IRCON[2]. This
method avoids problems with interrupt latency, but can still result in a write failure if the CE code takes
too much time. As mentioned above, polling FWCOL0 and FWCOL1 can detect write failures. However,
the speed in a polling write is only 2520 bytes per second and the firmware cannot respond to interrupts.
As an alternative to using flash, a small EEPROM can store data without compromises. EEPROM interfaces
are included in the device.
Updating Individual Bytes in Flash Memory
The original state of a flash byte is 0xFF (all ones). Once a value other than 0xFF is written to a flash
memory cell, overwriting with a different value usually requires that the cell be erased first. Since cells
cannot be erased individually, the page has to be copied to RAM, followed by a page erase. After this,
the page can be updated in RAM and then written back to the flash memory.
Flash Erase Procedures
Flash erasure is initiated by writing a specific data pattern to specific SFR registers in the proper sequence.
These special pattern/sequence requirements prevent inadvertent erasure of the flash memory.
The mass erase sequence is:
1. Write 1 to the FLSH_MEEN bit (SFR 0xB2[1]).
2. Write the pattern 0xAA to FLSH_ERASE (SFR 0x94).
The mass erase cycle can only be initiated when the ICE port is enabled.
40
Rev 2