Microchip Technology DV164136 Data Sheet
2007-2012 Microchip Technology Inc.
DS39778E-page 103
PIC18F87J11 FAMILY
7.5.2
FLASH PROGRAM MEMORY WRITE
SEQUENCE (WORD
PROGRAMMING).
SEQUENCE (WORD
PROGRAMMING).
The PIC18F87J11 family of devices have a feature that
allows programming a single word (two bytes). This
feature is enable when the WPROG bit is set. If the
memory location is already erased, the following
sequence is required to enable this feature:
1.
allows programming a single word (two bytes). This
feature is enable when the WPROG bit is set. If the
memory location is already erased, the following
sequence is required to enable this feature:
1.
Load the Table Pointer register with the address
of the data to be written
of the data to be written
2.
Write the 2 bytes into the holding registers and
perform a table write
perform a table write
3.
Set the WREN bit (EECON1<2>) to enable byte
writes.
writes.
4.
Disable interrupts.
5.
Write H
'
55
'
to EECON2.
6.
Write H
'
AA
'
to EECON2.
7.
Set the WR bit. This will begin the write cycle.
8.
The CPU will stall for duration of the write for T
IW
(see Parameter
9.
Re-enable interrupts.
EXAMPLE 7-4:
SINGLE-WORD WRITE TO FLASH PROGRAM MEMORY
MOVLW CODE_ADDR_UPPER
; Load TBLPTR with the base address
MOVWF TBLPTRU
MOVLW CODE_ADDR_HIGH
MOVWF TBLPTRH
MOVLW CODE_ADDR_LOW
MOVWF TBLPTRL
MOVLW DATA0
MOVWF TABLAT
TBLWT*+
MOVLW DATA1
MOVWF TABLAT
TBLWT*
PROGRAM_MEMORY
BSF
EECON1, WPROG
; enable single word write
BSF
EECON1, WREN
; enable write to memory
BCF
INTCON, GIE
; disable interrupts
MOVLW
H'55'
Required
MOVWF
EECON2
; write H'55'
Sequence MOVLW
H'AA'
MOVWF
EECON2
; write H'AA'
BSF
EECON1, WR
; start program (CPU stall)
BSF
INTCON, GIE
; re-enable interrupts
BCF
EECON1, WPROG
; disable single word write
BCF
EECON1, WREN
; disable write to memory