English
Language : 

PIC18F6585 Datasheet, PDF (93/496 Pages) Microchip Technology – 64/68/80-Pin High-Performance, 64-Kbyte Enhanced Flash Microcontrollers with ECAN Module
PIC18F6585/8585/6680/8680
EXAMPLE 5-3: WRITING TO FLASH PROGRAM MEMORY (CONTINUED)
ERASE_BLOCK
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
BCF
BSF
BSF
BCF
MOVLW
MOVWF
Required MOVLW
Sequence MOVWF
BSF
NOP
BSF
TBLRD*-
WRITE_BUFFER_BACK
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
PROGRAM_LOOP
MOVLW
MOVWF
WRITE_WORD_TO_HREGS
MOVFW
MOVWF
TBLWT+*
upper(CODE_ADDR)
TBLPTRU
high(CODE_ADDR)
TBLPTRH
low(CODE_ADDR)
TBLPTRL
EECON1, EEPGD
EECON1, CFGS
EECON1, WREN
EECON1, FREE
INTCON, GIE
55h
EECON2
0AAh
EECON2
EECON1, WR
INTCON, GIE
8
COUNTER_HI
high(BUFFER_ADDR)
FSR0H
low(BUFFER_ADDR)
FSR0L
8
COUNTER
POSTINC0, W
TABLAT
DECFSZ
BRA
PROGRAM_MEMORY
BSF
BCF
BSF
BCF
MOVLW
MOVWF
Required MOVLW
Sequence MOVWF
BSF
NOP
BSF
DECFSZ
BRA
BCF
COUNTER
WRITE_WORD_TO_HREGS
EECON1, EEPGD
EECON1, CFGS
EECON1, WREN
INTCON, GIE
55h
EECON2
0AAh
EECON2
EECON1, WR
INTCON, GIE
COUNTER_HI
PROGRAM_LOOP
EECON1, WREN
; load TBLPTR with the base
; address of the memory block
; point to Flash program memory
; access Flash program memory
; enable write to memory
; enable Row Erase operation
; disable interrupts
; write 55H
; write AAH
; start erase (CPU stall)
; re-enable interrupts
; dummy read decrement
; number of write buffer groups of 8 bytes
; point to buffer
; number of bytes in holding register
; get low byte of buffer data
; present data to table latch
; write data, perform a short write
; to internal TBLWT holding register.
; loop until buffers are full
; point to Flash program memory
; access Flash program memory
; enable write to memory
; disable interrupts
; write 55h
; write 0AAh
; start program (CPU stall)
; re-enable interrupts
; loop until done
; disable write to memory
 2004 Microchip Technology Inc.
DS30491C-page 91