EEPROM memória használata

 

 EEPROM memória. D: 34 old.


73. old.

Különböző memóriák írásvédelmét lehet beállítani:

CONFIGURATION WORD 4H (30 0007h) - Konfigurációs részben lehet beállítani

WRTD: Data EEPROM Write Protection bit(1,4)
1 = Data EEPROM NOT write-protected (Nem írásvédett és ez az alapértelmezett)
0 = Data EEPROM write-protected  (Írásvédett, amit a bit 0-ra állításával lehet megoldani)


CONFIGURATION WORD 5L (30 0008h)

CP: User Program Flash Memory and Data EEPROM Code Protection bit
1 = User Program Flash Memory and Data EEPROM code protection is disabled (Ez az alapértelmezett)
      (A felhasználói program flash memória és az adatok EEPROM kód védelme le van tiltva)
0 = User Program Flash Memory and Data EEPROM code protection is enabled


80. old.

3F FF06h - 3F FF07hEESIZ  Data EEPROM memory size 256


189. old.
NVMDAT-ba kell beírni az adatot és innen olvasható ki ha engedélyezve van a konfigorációban.


192. old.

NCMCON1 és NVMCON2 regiszterekkel lehet konfiguránl


206. oldaltól
208. oldalon van az olvasási és írási művelet!
  

212. oldalon van a regiszter összesítő.

 



  Konfigurációban két beállítás szükséges az írás/olvasáshoz:

 WRTD = OFF   ;        Data EEPROM not write-protected (Írható az EEPROM)

    CP = OFF   ;          PFM and Data EEPROM code protection disabled (Nincs kódvédelem)

 

 

 



 

    tablat kezdo_vagy_vegcim; Megadunk egy címet, amit majd jelzünk, hogy kezdő, vagy végcím

    tblptr   

 

http://technology.niagarac.on.ca/staff/mboldin/18F_Instruction_Set/TBLRD.html

Letölteni: https://owd.tcnj.edu/~hernande/ELC343/Chapter_02.pdf

 

 

; DATA EEPROM READ
; Data Memory Address to read  D:208. old
    CLRF NVMCON1          ; Setup Data EEPROM Access
    MOVF EE_ADDRL, W      ;
    MOVWF    NVMADRL      ; Setup Address
    BSF NVMCON1, RD       ; Issue EE Read
    MOVF NVMDAT, W        ; W = EE_DATA

; DATA EEPROM WRITE
; Data Memory Address to write
    CLRF NVMCON1          ; Setup Data EEPROM Access
    MOVF EE_ADDRL,W       ;
    MOVWF NVMADRL         ; Setup Address
; Data Memory Value to write
    MOVF EE_DATA,W        ;
    MOVWF NVMDAT          ;
; Enable writesBSF      
    NVMCON1,WREN          ;
; Disable interruptsBCF      
    INTCON0,GIE           ;
; Required unlock sequence

    MOVLW    55h             ;
    MOVWF NVMCON2         ;
    MOVLW AAh             ;
    MOVWF    NVMCON2      ;
; Set WR bit to begin write
    BSF NVMCON1, WR       ;
; Enable INT
    BSF INTCON0, GIE      ;
; Wait for interrupt, write done
    SLEEP                 ;
; Disable writes
    BCF NVMCON1, WREN      ;

DATA EEPROM REFRESH ROUTINE
    CLRF NVMADRL           ; Start at address 0
    BCF NVMCON1, CFGS      ; Set for memory
    BCF NVMCON1, EEPGD     ; Set for Data EEPROM
    BCF INTCON0, GIE       ; Disable interrupts
    BSF NVMCON1, WREN      ; Enable writes
Loop                   ; Loop to refresh array
    BSF NVMCON1, RD        ; Read current address
    MOVLW 55h              ;
    MOVWF NVMCON2          ; Write 55h
    MOVLW 0AAh             ;
    MOVWF NVMCOM2          ; Write 0AAh
    BSF NVMCON1, WR        ; Set WR bit to begin write
    BTFSC NVMCON1, WR      ; Wait for write to complete
    BRA $-2
    INCFSZ NVMADRL, F      ; Increment address
    BRA LOOP               ; Not zero, do it again

    BCF NVMCON1, WREN      ; Disable writes
    BSF INTCON0, GIE       ; Enable interrupts