Datasheet

PIC24FJXXXGA1/GB1
DS39907A-page 28 © 2007 Microchip Technology Inc.
4.4 Blank Check
The term “Blank Check” implies verifying that the
device has been successfully erased and has no
programmed memory locations. A blank or erased
memory location is always read as ‘1’.
The Device ID registers (FF0002h:FF0000h) can be
ignored by the Blank Check since this region stores
device information that cannot be erased. The device
Configuration registers are also ignored by the Blank
Check. Additionally, all unimplemented memory space
should be ignored by the Blank Check.
The QBLANK command is used for the Blank Check. It
determines if the code memory is erased by testing
these memory regions. A ‘BLANK’ or ‘NOT BLANK’
response is returned. If it is determined that the device
is not blank, it must be erased before attempting to
program the chip.
4.5 Code Memory Programming
4.5.1 PROGRAMMING METHODOLOGY
Code memory is programmed with the PROGP
command. PROGP programs one row of code memory
starting from the memory address specified in the
command. The number of PROGP commands
required to program a device depends on the number
of write blocks that must be programmed in the device.
A flowchart for programming the code memory of the
PIC24FJXXXGA1/GB1 families is shown in Figure 4-4.
In this example, all 87K instruction words of a
256 Kbyte device are programmed. First, the number
of commands to send (called ‘RemainingCmds’ in the
flowchart) is set to 1368 and the destination address
(called ‘BaseAddress’) is set to0’. Next, one write
block in the device is programmed with a PROGP
command. Each PROGP command contains data for
one row of code memory of the device. After the first
command is processed successfully, ‘RemainingCmds
is decremented by 1 and compared with 0. Since there
are more PROGP commands to send, ‘BaseAddress’
is incremented by 80h to point to the next row of
memory.
On the second PROGP command, the second row is
programmed. This process is repeated until the entire
device is programmed. No special handling must be
performed when a panel boundary is crossed.
FIGURE 4-4: FLOWCHART FOR
PROGRAMMING CODE
MEMORY
4.5.2 PROGRAMMING VERIFICATION
After code memory is programmed, the contents of
memory can be verified to ensure that programming
was successful. Verification requires code memory to
be read back and compared against the copy held in
the programmer’s buffer.
The READP command can be used to read back all of
the programmed code memory.
Alternatively, you can have the programmer perform
the verification after the entire device is programmed
using a checksum computation.
Is
PROGP response
PASS?
Are
RemainingCmds
0?
BaseAddress = 00h
RemainingCmds = 1368
RemainingCmds =
RemainingCmds – 1
BaseAddress =
BaseAddress + 80h
No
No
Yes
Yes
Start
Failure
Report Error
Send PROGP
Command to Program
BaseAddress
Finish