
8XL51FA/FB/FC
PROGRAMMING ALGORITHM
Refer to Table 3 and Figures 10 and 11 for address,
data, and control signals set up. To program the
87L51FX the following sequence must be exercised.
1. Input the valid address on the address lines.
2. Input the appropriate data byte on the data
lines.
3. Activate the correct combination of control sig-
nals.
4. Raise EA/V
PP
from V
CC
to 12.75V
g
0.25V.
5. Pulse, ALE/PROG 5 times for the OTP ROM
array, and 25 times for the encryption table and
the lock bits.
Repeat 1 through 5 changing the address and data
for the entire array or until the end of the object file is
reached.
PROGRAM VERIFY
Program verify may be done after each byte or block
of bytes is programmed. In either case a complete
verify of the programmed array will ensure reliable
programming of the 87L51FX.
The lock bits cannot be directly verified. Verification
of the lock bits is done by observing that their fea-
tures are enabled.
272356–19
Figure 11. Programming Signals Waveforms
ROM and OTP ROM Lock System
The 87L51FX program lock system, when pro-
grammed, protects the onboard program against
software piracy.
The 83L51FX has a one-level program lock system
and a 64-byte encryption table. See line 2 of Table
4. If program protection is desired, the user submits
the encryption table with their code, and both the
lock-bit and encryption array are programmed by the
factory. The encryption array is not available without
the lock bit. For the lock bit to be programmed, the
user must submit an encryption table.
The 87L51FX has a 3-level program lock system
and a 64-byte encryption array. Since this is an OTP
ROM device, all locations are user-programmable.
See Table 4.
Encryption Array
Within the OTP ROM array are 64 bytes of Encryp-
tion Array that are initially unprogrammed (all 1’s).
Every time that a byte is addressed during a verify, 6
address lines are used to select a byte of the En-
cryption Array. This byte is then exclusive-NOR’ed
(XNOR) with the code byte, creating an Encryption
Verify byte. The algorithm, with the array in the un-
programmed state (all 1’s), will return the code in its
original, unmodified form. For programming the En-
cryption Array, refer to Table 3 (Programming the
OTP ROM).
When using the encryption array, one important fac-
tor needs to be considered. If a code byte has the
value 0FFH, verifying the byte will produce the en-
cryption byte value. lf a large block (
l
64 bytes) of
code is left unprogrammed, a verification routine will
display the contents of the encryption array. For this
reason all unused code bytes should be pro-
grammed with some value other than 0FFH, and not
all of them the same value. This will ensure maxi-
mum program protection.
17