| Electronic Components Datasheet Search |
|
PIC16F87X Datasheet(PDF) 44 Page - Microchip Technology |
|
|
|||||||||||||||||||||||||||||
PIC16F87X Datasheet(HTML) 44 Page - Microchip Technology |
|
44 / 218 page ![]() PIC16F87X DS30292D-page 44 1998-2013 Microchip Technology Inc. 4.4 Reading the FLASH Program Memory Reading FLASH program memory is much like that of EEPROM data memory, only two NOP instructions must be inserted after the RD bit is set. These two instruction cycles that the NOP instructions execute, will be used by the microcontroller to read the data out of program memory and insert the value into the EEDATH:EEDATA registers. Data will be available fol- lowing the second NOP instruction. EEDATH and EEDATA will hold their value until another read opera- tion is initiated, or until they are written by firmware. The steps to reading the FLASH program memory are: 1. Write the address to EEADRH:EEADR. Make sure that the address is not larger than the mem- ory size of the PIC16F87X device. 2. Set the EEPGD bit to point to FLASH program memory. 3. Set the RD bit to start the read operation. 4. Execute two NOP instructions to allow the micro- controller to read out of program memory. 5. Read the data from the EEDATH:EEDATA registers. EXAMPLE 4-3: FLASH PROGRAM READ 4.5 Writing to the FLASH Program Memory Writing to FLASH program memory is unique, in that the microcontroller does not execute instructions while programming is taking place. The oscillator continues to run and all peripherals continue to operate and queue interrupts, if enabled. Once the write operation completes (specification D133), the processor begins executing code from where it left off. The other impor- tant difference when writing to FLASH program mem- ory, is that the WRT configuration bit, when clear, prevents any writes to program memory (see Table 4-1). Just like EEPROM data memory, there are many steps in writing to the FLASH program memory. Both address and data values must be written to the SFRs. The EEPGD bit must be set, and the WREN bit must be set to enable writes. The WREN bit should be kept clear at all times, except when writing to the FLASH Program memory. The WR bit can only be set if the WREN bit was set in a previous operation, i.e., they both cannot be set in the same operation. The WREN bit should then be cleared by firmware after the write. Clearing the WREN bit before the write actually completes will not terminate the write in progress. Writes to program memory must also be prefaced with a special sequence of instructions that prevent inad- vertent write operations. This is a sequence of five instructions that must be executed without interruption for each byte written. These instructions must then be followed by two NOP instructions to allow the microcon- troller to setup for the write operation. Once the write is complete, the execution of instructions starts with the instruction after the second NOP. The steps to write to program memory are: 1. Write the address to EEADRH:EEADR. Make sure that the address is not larger than the mem- ory size of the PIC16F87X device. 2. Write the 14-bit data value to be programmed in the EEDATH:EEDATA registers. 3. Set the EEPGD bit to point to FLASH program memory. 4. Set the WREN bit to enable program operations. 5. Disable interrupts (if enabled). 6. Execute the special five instruction sequence: • Write 55h to EECON2 in two steps (first to W, then to EECON2) • Write AAh to EECON2 in two steps (first to W, then to EECON2) • Set the WR bit 7. Execute two NOP instructions to allow the micro- controller to setup for write operation. 8. Enable interrupts (if using interrupts). 9. Clear the WREN bit to disable program operations. BSF STATUS, RP1 ; BCF STATUS, RP0 ;Bank 2 MOVF ADDRL, W ;Write the MOVWF EEADR ;address bytes MOVF ADDRH,W ;for the desired MOVWF EEADRH ;address to read BSF STATUS, RP0 ;Bank 3 BSF EECON1, EEPGD ;Point to Program memory BSF EECON1, RD ;Start read operation NOP ;Required two NOPs NOP ; BCF STATUS, RP0 ;Bank 2 MOVF EEDATA, W ;DATAL = EEDATA MOVWF DATAL ; MOVF EEDATH,W ;DATAH = EEDATH MOVWF DATAH ; |
|
Link URL |
| Does ALLDATASHEET help your business so far? [ DONATE ] |
About Alldatasheet | Advertisement | Contact us | Privacy Policy | Link to Datasheet | Link Exchange | Manufacturer List All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |