TS80C52X2
ROM Structure
ROM Lock System
Encryption Array
Program Lock Bits
Signature bytes
Verify Algorithm
TS8xCx2X2
The TS80C52X2 ROM memory is divided in three different arrays:
• the code array:8 Kbytes.
• the encryption array:64 bytes.
• the signature array:4 bytes.
The program Lock system, when programmed, protects the on-chip program against
software piracy.
Within the ROM array are 64 bytes of encryption array that are initially unprogrammed
(all FF’s). Every time a byte is addressed during program verify, 6 address lines are
used to select a byte of the encryption array. This byte is then exclusive-NOR’ed
(XNOR) with the code byte, creating an encrypted verify byte. The algorithm, with the
encryption array in the unprogrammed state, will return the code in its original, unmodi-
fied form.
When using the encryption array, one important factor needs to be considered. If a byte
has the value FFh, verifying the byte will produce the encryption byte value. If a large
block (>64 bytes) of code is left unprogrammed, a verification routine will display the
content of the encryption array. For this reason all the unused code bytes should be pro-
grammed with random values. This will ensure program protection.
The lock bits when programmed according to Table 19. will provide different level of pro-
tection for the on-chip code and data.
Table 19. Program Lock bits
Program Lock Bits
Security
level
LB1 LB2 LB3 Protection Description
No program lock features enabled. Code verify will still be
1
U
U
U
encrypted by the encryption array if programmed. MOVC instruction
executed from external program memory returns non encrypted
data.
MOVC instruction executed from external program memory are
2
P
U
U disabled from fetching code bytes from internal memory, EA is
sampled and latched on reset.
U: unprogrammed
P: programmed
The TS80C52X2 contains 4 factory programmed signatures bytes. To read these bytes,
perform the process described in section 9.
Refer to Section “Verify Algorithm”.
31
4184I–8051–02/08