2010 Microchip Technology Inc. DS39622L-page 37
PIC18F2XXX/4XXX FAMILY
5.3 Single-Supply ICSP Programming
The LVP bit in Configuration register, CONFIG4L,
enables Single-Supply (Low-Voltage) ICSP Program-
ming. The LVP bit defaults to a ‘1’ (enabled) from the
factory.
If Single-Supply Programming mode is not used, the
LVP bit can be programmed to a ‘0’ and RB5/PGM
becomes a digital I/O pi n. However , the LVP bit may only
be programmed by entering the High-Voltage ICSP
mode, where MCLR/VPP/RE3 is raised to VIHH. Once
the L VP bit is programmed to a ‘0’, only the High-V oltage
ICSP mode is available and on ly the High-Voltage ICSP
mode can be used to program the de vice.
5.4 Embedding Configuration Word
Info rmatio n in th e H EX Fi le
To allow portability of code, a PIC18F2XXX/4XXX
fam il y programmer is required to read the Configura-
tion Word locations from the hex file. If Configuration
Word information is not present in the hex file, then a
simple warning message should be issued. Similarly,
while saving a hex file, a ll C on fig ura tion Word informa-
tion must be included. An option to not include the
Configuration Word information may be provided.
When embedding Configuration Word information in
the hex file, it should start at address, 300000h.
Microchip Technology Inc. feels strongly that this
featur e is imp orta nt for th e bene fit of t he end cu stome r.
5.5 Embedding Data EEPROM
Info rmatio n In th e H EX Fi le
To allow portability of code, a PIC18F2XXX/4XXX
family programmer is required to read the data
EEPROM information from the hex file. If data
EEPROM information is not present, a simple warning
message should be issued. Similarly, when saving a
hex file, all data EEPROM information must be
included. An option to not include the data EEPROM
information may be provided. When embedding data
EEPROM information in the hex file, it should start at
address, F00000h.
Microchip Technology Inc. believes that this feature is
important for the benefit of the end customer.
5.6 Checksum Comput ation
The check s um is cal cu lat ed by sum mi ng the foll owing:
• The contents of all code memo ry locations
• The Configu rati on Words, approp riat ely m asked
• ID locations (if any block is code-protected)
The Least Significant 16 bits of this sum is the checksum.
The cont ent s of the dat a EEPROM are no t used.
5.6.1 PROGRAM MEMORY
When program memory contents are summed, each
16-bit word is added to the checksum. The contents of
program memory, from 000000h to the end of the last
program memory block, are used for this calculation.
Overflows from bit 15 may be ignored.
5.6.2 CONFIGURATION WORDS
For checksum calculations, unimplemented bits in
Configuration Words should be ignored as such bits
always read back as ‘1’s. Each 8-bit Configuration
Word is ANDed with a corresponding mask to prevent
unused bits from affecting checksum calculations.
The mask contain s a ‘0’ in uni mplemented bit positions ,
or a ‘1’ where a choice can be made. When ANDed
with the value read out of a Configuration Word, only
implemented bits remain. A list of suitable masks is
provided in Table 5-5.
5.6.3 ID LOCATIONS
Normally, the contents of these locations are defined by
the user, but MPLAB® IDE provides the option of writing
the device’s unprotected 16-bit checksum in the 16 Most
Significant bits of the ID locations (see MPLAB IDE Con-
figure/ID Memory” menu). The l ower 16 bits are not used
and remain clear . This is the sum of all program memory
contents and Configuration Words (appropriately
masked) before any code protec tion is enab led.
If the user elects to define the contents of the ID
locations, nothing about protected blocks can be
known. If the user uses the preprotected checksum,
provided by MPLAB IDE, an indirect characteristic of
the programmed code is provided.
5.6.4 CODE PROTECTION
Blocks that are code-p rotected read back as all ‘0’s and
have no effect on checksum calculations. If any block
is cod e-protecte d, then the c on ten t s of the ID location s
are included in the checksum calculation.
All Configuration Words and the ID locations can
always be read out normally, even when the device is
fully c ode-prot ect ed. Chec king t he code prot ection se t-
tings in Confi gurati on W ords c an dire ct wh ich, if any, of
the program memory blocks can be read, and if the ID
locations should be used for checksum calculations.
Note1: The High-Voltage ICSP mode is
always available, regardless of the
state of the LVP bit, by applying V IHH to
the MCLR/VPP/RE3 pin.
2: While in Low-Voltage ICSP mode, the
RB5 pin can no longer be used as a
general purpose I/O.