Datasheet

PIC12F609/12F615/12F617/16F610/16F616 AND PIC12HV609/12HV615/16HV610/16HV616
DS41396A-page 22 2009 Microchip Technology Inc.
TABLE 6-1: CHECKSUM COMPUTATIONS
Device
Code
Protect
Checksum*
Blank
Value
0x25E6 at 0
and Max.
Address
PIC12F615/HV615 CP
= 1 SUM[0x000:0x03FF] + (CFGW & 0x03FF) 0xFFFF 0xCBCD
CP
= 0 (CFGW & 0x03FF) + SUM_ID 0x03BE 0xCF8C
PIC12F617
CP
= 1 SUM[0x000:0x07FF] + (CFGW & 0x03FF) 0xFBFF 0xC7CD
CP
= 0 (CFGW & 0x03FF) + SUM_ID 0x03BE 0xCF8C
PIC12F609/HV609 CP = 1
SUM[0x000:0x03FF] + (CFGW & 0x03FF) 0xFFFF 0xCBCD
CP
= 0
(CFGW &0x03FF) + SUM_ID 0x03BE 0xCF8C
PIC16F610/HV610 CP
= 1
SUM[0x000:0x03FF] + (CFGW & 0x03FF) 0xFFFF 0xCBCD
C
P = 0
(CFGW & 0x03FF) + SUM_ID 0x03BE 0xCF8C
PIC16F616/HV616 CP
= 1 SUM[0x000:0x07FF] + (CFGW & 0x03FF) 0xFBFF 0xC7CD
CP = 0 (CFGW & 0x03FF) + SUM_ID 0x03BE 0xCF8C
Legend: CFGW = Configuration Word. Example calculations assume Configuration Word is erased (all ‘1’s).
SUM[a:b] = [Sum of locations a to b inclusive]
SUM_ID = User ID locations masked by 0xF then made into a 16-bit value with ID0 as the Most Significant
nibble. For example, ID0 = 0x1, ID1 = 0x2, ID3 = 0x3, ID4 = 0x4, then SUM_ID = 0x1234. The 4 LSb’s of
the unprotected checksum is used for the example calculations.
*Checksum = [Sum of all the individual expressions] MODULO [0xFFFF]
+ = Addition
& = Bitwise AND