16-29
PROGRAMMING THE NONVOLATILE MEMORY
If the security key verification is successful, the routine loads the programming pulse width
(PPW) value from the external EPROM into the internal PPW register. It then asserts PACT#, in-
dicating that programming has begun. (PACT# is also active during reset, although no program-
ming is in progress.) PVER is initially asserted and remains asserted unless an error is detected,
in which case it is deasserted.
The routine then reads the contents of the external EPROM, beginning at 4000H (2000H for the
8XC196MH). It skips any word that contains FFFFH (unprogrammed state). When it reads a
word that contains any value other than FFFFH, the routine calls the modified quick-pulse algo-
rithm, which writes that value to the OTPROM, using the appropriate number of pulses for the
device, then verifies the result. The routine repeats this activity until the entire OTPROM is pro-
grammed, then deasserts PACT# and enters an endless loop.
16.9.4 Auto Programming Procedure
If a glitch or reset occurs while programming the security key and lock bits, an unknown security
key might accidentally be written, rendering the device inaccessible for further programming. To
minimize this possibility, follow this recommended programming procedure.
NOTE
All addresses are given for the circuit shown in Figure 16-12 on page 16-26. If
you choose a different circuit, you must adjust the addresses accordingly.
1. Using a blank EPROM device, follow these steps to skip programming of CCB0 and
program the rest of the OTPROM array, including the security key.
— Place the programming pulse width (PPW) in external EPROM locations 14H–15H
(for the 8XC196MC, MD) or 105E–105FH (for the 8XC196MH).
— Leave the external CCB0 location (4018H) unprogrammed (0FFFFH).
— Place the appropriate CCB1 value at external location 401AH.
— Place the security key to be programmed in external EPROM locations 4020H–402FH
(for the 8XC196MC, MD) or 0020–002FH (for the 8XC196MH).
— Place the value 20H in external EPROM locations 4019H and 401BH (for the reserved
OTPROM locations that require this value).
— Place the desired code in the remaining external EPROM locations 4000–7FFFH (for
the 8XC196MC, MD) or 2000–9FFFH (for the 8XC196MH).
— Execute the power-up sequence (page 16-14) to initiate auto programming.
— When programming is complete, execute the powerdown sequence (page 16-14) before
continuing to step 2.