Datasheet
2003-2013 Microchip Technology Inc. DS39609C-page 255
PIC18F6520/8520/6620/8620/6720/8720
23.4.1 PROGRAM MEMORY
CODE PROTECTION
The user memory may be read to, or written from, any
location using the table read and table write instruc-
tions. The device ID may be read with table reads. The
configuration registers may be read and written with the
table read and table write instructions.
In user mode, the CPn bits have no direct effect. CPn
bits inhibit external reads and writes. A block of user
memory may be protected from table writes if the
WRTn configuration bit is ‘0’. The EBTRn bits control
table reads. For a block of user memory with the
EBTRn bit set to ‘0’, a table read instruction that
executes from within that block is allowed to read. A
table read instruction that executes from a location out-
side of that block is not allowed to read and will result
in reading ‘0’s. Figures 23-5 through 23-7 illustrate
table write and table read protection using devices with
a 16-Kbyte block size as the models. The principles
illustrated are identical for devices with an 8-Kbyte
block size.
FIGURE 23-5: TABLE WRITE (WRTn) DISALLOWED
Note: Code protection bits may only be written to
a ‘0’ from a ‘1’ state. It is not possible to
write a ‘1’ to a bit in the ‘0’ state. Code pro-
tection bits are only set to ‘1’ by a full chip
erase or block erase function. The full chip
erase and block erase functions can only
be initiated via ICSP or an external
programmer.
000000h
0001FFh
000200h
003FFFh
004000h
007FFFh
008000h
00BFFFh
00C000h
00FFFFh
WRTB, EBTRB = 11
WRT0, EBTR0 = 01
WRT1, EBTR1 = 11
WRT2, EBTR2 = 11
WRT3, EBTR3 = 11
TBLWT *
TBLPTR = 000FFFh
PC = 003FFEh
TBLWT *
PC = 008FFEh
Register Values Program Memory
Configuration Bit Settings
Results: All table writes disabled to Block n whenever WRTn = 0
.