Tutorials - PIC18 by Data Sheet

 

Pag 73 - FLASH Memory

 


La memoria Flash

 

La memoria programma dei PIC18 è realizzata in tecnologia Flash. Questa fa si che il contenuto delle celle sia modificabile alla stessa tensione di lavoro del processore: il contenuto della memoria programma può essere modificato, letto, scritto, cancellato direttamente durante il funzionamento del programma, senza bisogno di dispositivi esterni o tensioni ausiliarie.

  • La lettura della memoria flash è eseguibile 1 byte per volta.

  • La scrittura è effettuabile a blocchi di 8 bytes.

  • La cancellazione è effettuabile a blocchi di 64 bytes.

La memoria programma non è accessibile durante la scrittura o la cancellazione e un timer interno stabilisce le temporizzazioni di queste operazioni.

Allo scopo di fornire un valido supporto a queste operazioni, il set di istruzioni enhanced contiene alcune istruzioni specifiche per la lettura e la scrittura della memoria Flash.

 


Table Read & Table Write 

 

Le istruzioni di lettura e scrittura della memoria programma sono:

  • Table Read (TBLRD)

  • Table Write (TBLWT)


Va ricordato che, trattandosi di architettura Harvard, bus dati e bus codici sono separati e di diversa ampiezza: il bus della memoria programma (Flash) è a 16 bit, mentre quello della memoria dati (RAM) è a 8 bit. 
Per portare i registri della Flash in RAM e viceversa, le istruzioni di Table Write e Table Read fanno uso di un registro intermedio, chiamato TABLAT - TABle LaTch register), a 8 bit.

Table Read legge un dato a 8 bit da un registro di memoria programma e lo copia nel registro TABLAT, che è in RAM.

Un puntatore a 3 bytes TBLPTR punta una locazione di memoria programma e il contenuto di questa viene copiato nel TABLAT, che è mappato in RAM nell' area degli SFR.
TBLPTRU:H:L è indispensabile per coprire l' intero lo spazio di indirizzamento.

Analogamente avviene la scrittura della memoria Flash.



I registri di controllo

Alcuni registri di controllo sono associati alle istruzioni di lettura e scrittura della Flash.

  • EECON1

  • EECON2

  • TABLAT

  • TBLPTR

EECON1 e EECON2 sono comuni alle operazioni sulla EEPROM; in particolare EECON2 non è un registro reale ed è usato esclusivamente per le sequenze di scrittura e cancellazione della memoria. Una lettura diretta di EECON2 rende un byte uguale a 0.

EECON1, invece, è un registro reale, nell' area degli SFR, ed è dedicato al controllo delle operazioni di scrittura della memoria riscrivibile (sia Flash che EEPROM).

ATTENZIONE:

Non va fatta confusione tra Memoria Programma, o memoria FLASH, memoria EEPROM e memoria RAM, o memoria dati, che sono elementi ben differenti della memoria del microcontroller.

La memoria RAM non conserva i dati in mancanza di tensione ed ha la funzione di fornire registri di supporto temporanei alle operazioni logiche e matematiche svolte dalle istruzioni che compongono il programma, durante il suo svolgimento.

Flash e EEPROM sono entrambe cancellabili e riscrivibili e conservano i dati contenuti in assenza di tensione di alimentazione, ma:

  • La Memoria Programma, in tecnologia Flash, è dedicata a contenere il "programma".
  • La Memoria EEPROM NON ha lo scopo di contenere istruzioni, ma quello di conservare dati che vi vengono scritti per salvaguardarli nel caso di mancanza di tensione.

 



 

 

 

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