| 전자부품 데이터시트 검색엔진 |
|
18F8680 데이터시트(PDF) 92 Page - Microchip Technology |
|
|
|||||||||||||||||||||||||||||
18F8680 데이터시트(HTML) 92 Page - Microchip Technology |
|
92 / 496 page ![]() PIC18F6585/8585/6680/8680 DS30491C-page 90 2004 Microchip Technology Inc. 5.5.1 FLASH PROGRAM MEMORY WRITE SEQUENCE The sequence of events for programming an internal program memory location should be: 1. Read 64 bytes into RAM. 2. Update data values in RAM as necessary. 3. Load table pointer with address being erased. 4. Do the row erase procedure. 5. Load table pointer with address of first byte being written. 6. Write the first 8 bytes into the holding registers with auto-increment. 7. Set the EECON1 register for the write operation: • set EEPGD bit to point to program memory; • clear the CFGS bit to access program memory; • set WREN to enable byte writes. 8. Disable interrupts. 9. Write 55h to EECON2. 10. Write 0AAh to EECON2. 11. Set the WR bit. This will begin the write cycle. 12. The CPU will stall for duration of the write (about 5 ms using internal timer). 13. Execute a NOP. 14. Re-enable interrupts. 15. Repeat steps 6-14 seven times to write 64 bytes. 16. Verify the memory (table read). This procedure will require about 40 ms to update one row of 64 bytes of memory. An example of the required code is given in Example 5-3. EXAMPLE 5-3: WRITING TO FLASH PROGRAM MEMORY Note: Before setting the WR bit, the Table Pointer address needs to be within the intended address range of the eight bytes in the holding register. MOVLW D’64 ; number of bytes in erase block MOVWF COUNTER MOVLW high(BUFFER_ADDR) ; point to buffer MOVWF FSR0H MOVLW low(BUFFER_ADDR) MOVWF FSR0L MOVLW upper(CODE_ADDR) ; Load TBLPTR with the base MOVWF TBLPTRU ; address of the memory block MOVLW high(CODE_ADDR) MOVWF TBLPTRH MOVLW low(CODE_ADDR) MOVWF TBLPTRL READ_BLOCK TBLRD*+ ; read into TABLAT, and inc MOVF TABLAT, W ; get data MOVWF POSTINC0 ; store data DECFSZ COUNTER ; done? BRA READ_BLOCK ; repeat MODIFY_WORD MOVLW high(DATA_ADDR) ; point to buffer MOVWF FSR0H MOVLW low(DATA_ADDR) MOVWF FSR0L MOVLW low(NEW_DATA) ; update buffer word MOVWF POSTINC0 MOVLW high(NEW_DATA) MOVWF INDF0 |
|
링크 URL |
| ALLDATASHEET 가 귀하에 도움이 되셨나요? [ DONATE ] |
Alldatasheet는? | 광고문의 | 운영자에게 연락하기 | 개인정보취급방침 | 링크 투 데이터시트 | 링크교환 | 제조사별 검색 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 |