English
Language : 

PIC18F2331 Datasheet, PDF (84/396 Pages) Microchip Technology – 28/40/44-Pin Enhanced Flash Microcontrollers with nanoWatt Technology, High Performance PWM and A/D
PIC18F2331/2431/4331/4431
EXAMPLE 6-3: WRITING TO FLASH PROGRAM MEMORY
MOVLW D'64
MOVWF COUNTER
MOVLW BUFFER_ADDR_HIGH
MOVWF FSR0H
MOVLW BUFFER_ADDR_LOW
MOVWF FSR0L
MOVLW CODE_ADDR_UPPER
MOVWF TBLPTRU
MOVLW CODE_ADDR_HIGH
MOVWF TBLPTRH
MOVLW CODE_ADDR_LOW
MOVWF TBLPTRL
READ_BLOCK
TBLRD*+
MOVFW TABLAT
MOVWF POSTINC0
DECFSZ COUNTER
GOTO READ_BLOCK
MODIFY_WORD
MOVLW DATA_ADDR_HIGH
MOVWF FSR0H
MOVLW DATA_ADDR_LOW
MOVWF FSR0L
MOVLW NEW_DATA_LOW
MOVWF POSTINC0
MOVLW NEW_DATA_HIGH
MOVWF INDF0
ERASE_BLOCK
MOVLW CODE_ADDR_UPPER
MOVWF TBLPTRU
MOVLW CODE_ADDR_HIGH
MOVWF TBLPTRH
MOVLW CODE_ADDR_LOW
MOVWF TBLPTRL
BCF
EECON1,CFGS
BSF
EECON1,EEPGD
BSF
EECON1,WREN
BSF
EECON1,FREE
BCF
INTCON,GIE
MOVLW 55h
MOVWF EECON2
MOVLW AAh
MOVWF EECON2
BSF
EECON1,WR
NOP
BSF
INTCON,GIE
WRITE_BUFFER_BACK
MOVLW 8
MOVWF COUNTER_HI
MOVLW BUFFER_ADDR_HIGH
MOVWF FSR0H
MOVLW BUFFER_ADDR_LOW
MOVWF FSR0L
PROGRAM_LOOP
MOVLW 8
MOVWF COUNTER
WRITE_WORD_TO_HREGS
MOVFW POSTINC0
MOVWF TABLAT
TBLWT+*
DECFSZ COUNTER
GOTO WRITE_WORD_TO_HREGS
; number of bytes in erase block
; point to buffer
; Load TBLPTR with the base
; address of the memory block
; 6 LSB = 0
; read into TABLAT, and inc
; get data
; store data and increment FSR0
; done?
; repeat
; point to buffer
; update buffer word and increment FSR0
; update buffer word
; load TBLPTR with the base
; address of the memory block
; 6 LSB = 0
; point to PROG/EEPROM memory
; point to Flash program memory
; enable write to memory
; enable Row Erase operation
; disable interrupts
; Required sequence
; write 55H
; write AAH
; start erase (CPU stall)
; re-enable interrupts
; number of write buffer groups of 8 bytes
; point to buffer
; number of bytes in holding register
; get low byte of buffer data and increment FSR0
; present data to table latch
; short write
; to internal TBLWT holding register, increment
; TBLPTR
; loop until buffers are full
DS39616B-page 82
Preliminary
 2003 Microchip Technology Inc.