Tutorials - PIC18 by Data Sheet

 

Pag 74 - EECON1

 


Il Registro EECON1

Il registro EECON1 contiene vari  bit di controllo per le operazioni su FLASH e EEPROM.

La scelta è dovuta al fatto che sia EEPROM che FLASH richiedono un certo tempo per completare le operazioni di scrittura e la scrittura, su entrambe le aree di memoria, è una operazione particolare e che richiede una certa procedura.
.

EEECON1 bit EEPGD   CFGS - FREE WRERR WREN WR RD
funzione R/W R/W 0 R/W R/W R/W R/W R/W
  • bit 7      EEPGD : selezione tra FLASH e EEPROM
                 1 = accesso alla Flash
                 0 = accesso alla EEPROM

  • bit 6      CFGS : accesso alla configurazione o ai registri
                  1 = accesso al configuration register
                  0 = accesso alla Flash o alla EEPROM

  • bit 5      non utlizzato - se letto, riporta 0

  • bit 4      FREE : Flash Row Erase Enable
                 1 = cancella la riga indrizzata da TBLPTR
                 0 = solo scrittura 

  • bit 3      WRERR : flag di errore
                 1 =
    fase di scrittura terminata prima del tempo
                 0 =
    fase di scrittura completata

  • bit 2     WREN : bit abilitazione scrittura
                  1 =
    scrittura abilitata
                  0 =
    scrittura disabilitata

  • bit 1     WR : bit controllo scrittura
                  1 = inizializza un ciclo di cancellazione/scrittura
                  0 =
    ciclo di scrittura completato

  • bit 0      RD : bit controllo lettura
                 1 =
    inizializza una lettura
                 0 =
    non inizializza
     

Il bit EEPGD  determina se si vuole operare sulla FLASH o sulla EEPROM: se posto a 1, le successive operazioni saranno dirette alla FLASH, altrimenti alla EEPROM.

Il bit CFGS determina se l' accesso è indirizzato al registro di configurazione/calibrazione oppure alla memoria. Queste funzioni saranno dettagliate più avanti quando si parlerà delle funzioni speciali del microcontroller.

Il bit FREE se posto a 1 determina l' inizio di una operazione di cancellazione della memoria programma che si avierà col successivo comando WR. Se il bit è a 0 sono effettuate solo operazioni di scrittura.

Il bit WREN se posto a 1 determina l' inizio di una operazione di scrittura (o cancellazione). Di conseguenza il bit WRERR verrà posto a 1 e azzerato dal timer interno quando l' operazione è completata.
Questo flag sarà a 1 quando una operazione di scrittura risulterà terminata prematuramente a causa di un  reset o di un comando di scrittura errato.

Il bit WRE se posto a 1 determina l' inizio di una operazione di scrittura (o cancellazione). Questo bit può essere solo portato a 1 dal programma, ma non azzerato. Si azzera da se quando l' operazione è completata.

Maggiori dettagli ed esempi di codice saranno dati più avanti.

 


Table Pointer 

 

Il TBLPTR punta una locazione di memoria programma su cui si vuole operare.
Come detto più sopra, si tratta di un registro a 3 bytes, dato che sono necessari 22 bit per indirizzare tutta l' area di memoria programma (2 MB).
I 22 bit permetto anche l' accesso all' User ID, al Device ID e ai bit di CONFIG. 

Il TBLPTR è utilizzato da alcune istruzioni specifiche per l' accesso alla memoria programma:

  • TBLRD per la lettura

  • TBLWT per la scrittura


Queste istruzioni speciali hanno una sintassi "C like".

Istruzione

Funzione

TBLRD*
TBLWT*
Legge la locazione puntata da TBLPTR
TBLRD*+
TBLWT*
+
Legge la locazione puntata da TBLPTR.
TBLPTR è incrementato dopo l'operazione.
TBLRD*-
TBLWT*
-
Legge la locazione puntata da TBLPTR.
TBLPTR è
decrementato dopo l'operazione.
TBLRD+*
TBLWT
+
*
Legge la locazione puntata da TBLPTR.
TBLPTR è incrementato
prima dell'operazione.

In lettura, tutti e 22 i bit di TBLPTR sono utilizzati per puntare una locazione.

In scrittura i tre bit più bassi (TBLPTR2:0) determina quale area (8 bytes) e i rimanenti, quale blocco.
Durante la cancellazione, TBLPTR21:6 puntano il blocco da 64 bytes che sarà cancellato.

TBLPTRU contiene i bit da 21 a 16
TBLPTRH contiene i bit da 15 a 8
TBLPTRL contiene i bit da 7 a 0

Va notato che per i PIC con un massimo di 64 k di memoria programma, TBLPTRU vale smpre 0 e può essere ignorato, mentre sarà necessario considerarlo per PIC con più di 64 k o con espansione di memoria esterna.



 

 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 04/12/10.