
www.ti.com
SLES208B – JUNE 2009 – REVISED MARCH 2011
The TAS3202 sequentially reads EEPROM memory and loads its internal memory, unless it does not find
a valid memory header block, is not able to read the next memory location because the end of memory
was reached, detects a checksum error, or reads an end-of-program header block. When it encounters an
invalid header or read error, the TAS3202 attempts to read the header or memory location three times
before it determines that it has an error. If the TAS3202 encounters a checksum error, it attempts to
reread the entire block of memory two more times before it determines that it has an error.
Once the microprocessor program memory has been loaded, it cannot be reloaded until the TAS3202 has
been reset.
If an error is encountered, TAS3202 terminates its memory-load operation, loads the default configuration
from ROM, and disables further master I2C bus operations.
If an end-of-program data block is read, the TAS3202 has completed the initial program load.
The I2C master mode uses the starting and ending I2C checksums to verify a proper EEPROM download.
The first 16-bit data word received from the EEPROM, the I2C checksum at subaddress 0x00, is stored
and compared against the 16-bit data word received for the last subaddress, the ending I2C checksum,
and the checksum that is computed during the download. These three values must be equal. If the read
and computed values do not match, the TAS3202 sets the memory read error bits in the status register
and repeats the download from the EEPROM two more times. If the comparison check fails the third time,
the TAS3202 sets the microprocessor program to the default value.
Table 6-6 shows the format of the EEPROM or other external memory load file. Each line of the file is a
byte (in ASCII format). The checksum is the summation of all the bytes (with beginning and ending
checksum fields = 00). The final checksum inserted into the checksum field is the lowest significant four
bytes of the checksum.
Example:
Given the following example 8051 data or program block (must be a multiple of 4 bytes for these blocks):
10h
20h
30h
40h
50h
60h
70h
80h
The checksum = 10h + 20h + 30h + 30h + 40h + 50h + 60h + 70h + 80h = 240h, so
the values put in the checksum fields are MS byte = 02h and LS byte = 40h.
If the checksum is >FFFFh, then the 2-byte checksum field is the least-significant 2 bytes.
For example, if the checksum is 1D 45B6h, the checksum field is MS byte = 45h and LS byte = B6h.
Copyright 2009–2011, Texas Instruments Incorporated
Microprocessor Controller
27