![Microchip Technology PIC24FV16KM204 FAMILY Скачать руководство пользователя страница 70](http://html1.mh-extra.com/html/microchip-technology/pic24fv16km204-family/pic24fv16km204-family_datasheet_1785842070.webp)
PIC24FV16KM204 FAMILY
DS33030A-page 70
Advance Information
2013 Microchip Technology Inc.
5.5.1
PROGRAMMING ALGORITHM FOR
FLASH PROGRAM MEMORY
The user can program one row of Flash program
memory at a time by erasing the programmable row.
The general process is:
1.
Read a row of program memory (32 instructions)
and store in data RAM.
2.
Update the program data in RAM with the
desired new data.
3.
a)
Set the NVMOP bits (NVMCON<5:0>) to
‘
011000
’ to configure for row erase. Set the
ERASE (NVMCON<6>) and WREN
(NVMCON<14>) bits.
b)
Write the starting address of the block to be
erased into the TBLPAG and W registers.
c)
Write 55h to NVMKEY.
d)
Write AAh to NVMKEY.
e)
Set the WR bit (NVMCON<15>). The erase
cycle begins and the CPU stalls for the
duration of the erase cycle. When the erase is
done, the WR bit is cleared automatically.
4.
Write the first 32 instructions from data RAM into
the program memory buffers (see
5.
Write the program block to Flash memory:
a) Set the NVMOP bits to ‘
000100
’ to
configure for row programming. Clear the
ERASE bit and set the WREN bit.
b) Write 55h to NVMKEY.
c)
Write AAh to NVMKEY.
d) Set the WR bit. The programming cycle
begins and the CPU stalls for the duration
of the write cycle. When the write to Flash
memory is done, the WR bit is cleared
automatically.
For protection against accidental operations, the write
initiate sequence for NVMKEY must be used to allow
any erase or program operation to proceed. After the
programming command has been executed, the user
must wait for the programming time until programming
is complete. The two instructions following the start of
the programming sequence should be
NOP
s, as
.
EXAMPLE 5-1:
ERASING A PROGRAM MEMORY ROW – ASSEMBLY LANGUAGE CODE
EXAMPLE 5-2:
ERASING A PROGRAM MEMORY ROW – ‘C’ LANGUAGE CODE
; Set up NVMCON for row erase operation
MOV
#0x4058, W0
;
MOV
W0, NVMCON
; Initialize NVMCON
; Init pointer to row to be ERASED
MOV
#tblpage(PROG_ADDR), W0
;
MOV
W0, TBLPAG
; Initialize PM Page Boundary SFR
MOV
#tbloffset(PROG_ADDR), W0
; Initialize in-page EA[15:0] pointer
TBLWTL W0, [W0]
; Set base address of erase block
DISI
#5
; Block all interrupts
for next 5 instructions
MOV
#0x55, W0
MOV
W0, NVMKEY
; Write the 55 key
MOV #0xAA, W1
;
MOV
W1, NVMKEY
; Write the AA key
BSET
NVMCON, #WR
; Start the erase sequence
NOP
; Insert two NOPs after the erase
NOP
; command is asserted
// C example using MPLAB C30
int __attribute__ ((space(auto_psv))) progAddr = 0x1234;
// Variable located in Pgm Memory, declared as a
// global variable
unsigned int offset;
//Set up pointer to the first memory location to be written
TBLPAG = __builtin_tblpage(&progAddr);
// Initialize PM Page Boundary SFR
offset = __builtin_tbloffset(&progAddr);
// Initialize lower word of address
__builtin_tblwtl(offset, 0x0000);
// Set base address of erase block
// with dummy latch write
NVMCON = 0x4058;
// Initialize NVMCON
asm("DISI #5");
// Block all interrupts for next 5 instructions
__builtin_write_NVM();
// C30 function to perform unlock
// sequence and set WR
Содержание PIC24FV16KM204 FAMILY
Страница 12: ...PIC24FV16KM204 FAMILY DS33030A page 12 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 28: ...PIC24FV16KM204 FAMILY DS33030A page 28 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 34: ...PIC24FV16KM204 FAMILY DS33030A page 34 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 120: ...PIC24FV16KM204 FAMILY DS33030A page 120 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 130: ...PIC24FV16KM204 FAMILY DS33030A page 130 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 136: ...PIC24FV16KM204 FAMILY DS33030A page 136 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 158: ...PIC24FV16KM204 FAMILY DS33030A page 158 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 172: ...PIC24FV16KM204 FAMILY DS33030A page 172 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 194: ...PIC24FV16KM204 FAMILY DS33030A page 194 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 206: ...PIC24FV16KM204 FAMILY DS33030A page 206 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 228: ...PIC24FV16KM204 FAMILY DS33030A page 228 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 232: ...PIC24FV16KM204 FAMILY DS33030A page 232 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 260: ...PIC24FV16KM204 FAMILY DS33030A page 260 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 312: ...PIC24FV16KM204 FAMILY DS33030A page 312 Advance Information 2013 Microchip Technology Inc ...
Страница 313: ... 2013 Microchip Technology Inc Advance Information DS33030A page 313 PIC24FV16KM204 FAMILY ...
Страница 315: ... 2013 Microchip Technology Inc Advance Information DS33030A page 315 PIC24FV16KM204 FAMILY ...
Страница 316: ...PIC24FV16KM204 FAMILY DS33030A page 316 Advance Information 2013 Microchip Technology Inc ...
Страница 317: ... 2013 Microchip Technology Inc Advance Information DS33030A page 317 PIC24FV16KM204 FAMILY ...
Страница 322: ...PIC24FV16KM204 FAMILY DS33030A page 322 Advance Information 2013 Microchip Technology Inc ...
Страница 324: ...PIC24FV16KM204 FAMILY DS33030A page 324 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 330: ...PIC24FV16KM204 FAMILY DS33030A page 330 Advance Information 2013 Microchip Technology Inc NOTES ...
Страница 334: ...PIC24FV16KM204 FAMILY DS33030A page 334 Advance Information 2013 Microchip Technology Inc NOTES ...