Corso di programmazione per microcontrollori ST626X. Terza Parte 2/3

microcontrollori ST626X programmazione

ST626X corso di programmazione per i microcontrollori ST626X. Il comando VERIF legge il contenuto della memoria programma del micro e testa se essa coincide con i dati presenti nel buffer del PC. Il comando BLANK viene utilizzato prima di procedere alla programmazione di un micro per verificare se la memoria di quest’ultimo è vuota, o meglio, nel caso di chip EPROM se è stata cancellata correttamente. Mediante il comando OPT è possibile leggere e scrivere l’EPROM CODE Option Byte del micro.

Tramite questo comando è anche possibile, al termine della programmazione, proteggere i dati contenuti nel chip da letture indesiderate. Nella maggior parte delle applicazioni a microcontrollore, il costo del software (cioè delle ore di lavoro necessarie alla stesura del programma) risulta di molto superiore al costo dell’hardware (ovvero del chip), per questo motivo è consigliabile rendere il contenuto del micro inaccessibile a terzi.

Il comando READ consente di leggere il contenuto della memoria programma del micro, a patto che questo non sia protetto, e di trasferire i dati nel buffer. Attraverso il comando SPACE è possibile selezionare la memoria su cui intendiamo lavorare con il nostro programmatore, possiamo cioè abilitare lo spazio programma (USER PROGRAM EPROM) o lo spazio elettricamente cancellabile (DATA EEPROM). Infine, con il comando EXIT chiudiamo il software di programmazione e torniamo al DOS. Abbiamo parlato fino ad ora di programmazione e di scrittura di dati all’interno della memoria del micro, vediamo ora com’è fatta realmente questa memoria.

LA MEMORIA PROGRAMMA

La memoria programma dei microcontrollori SGSThomson ST6260 e ST6265 è strutturalmente uguale a quella dei chip della precedente famiglia, ad eccezione dei chip ST6210 e ST6215 rispetto ai quali risulta di capacità doppia.

mappa_memoria_programma_mcu_st626x

Possiamo immaginare questa memoria come un’insieme di celle della capacità di un byte; ad ogni cella viene associato un numero che ne identifica la posizione e tale numero viene denominato indirizzo o locazione. Le celle di memoria programma del micro ST6260 sono identiche a quelle dell’ST6265 e vanno dalla locazione 0000 Hex alla 0FFF Hex. L’area di memoria compresa tra gli indirizzi 0000 Hex e 007F Hex è dedicata al ”core” del micro e non può essere né letta né scritta.

Lo spazio di memoria programma compreso tra le locazioni 0080 Hex e 0F9F Hex, per complessivi 3872 byte, contiene il programma vero e proprio. Quest’area viene letta dal Program Counter della CPU e scritta dalla scheda di programmazione dello Starter Kit. Durante la fase di sviluppo del software attribuiremo alla prima istruzione la locazione 0080 Hex mentre l’ultima istruzione possibile sarà allocata alla 0F9F Hex. L’area di memoria compresa tra gli indirizzi 0FF0 Hex e 0FFF Hex contiene i vettori di interruzione, termine con cui indichiamo uno spazio di memoria il cui contenuto viene letto dalla CPU solo durante una interruzione o interrupt.

Per essere più chiari, mentre le normali istruzioni vengono processate una dopo l’altra, le istruzioni contenute nei vettori vengono eseguite in tempo reale dalla CPU quando avviene una precisa richiesta hardware. I vettori disponibili nei nuovi microcontrollori ST626X, che sono diversi da quelli dei micro ST621X e ST622X, sono sei e ognuno di essi occupa uno spazio di due byte. Analizziamo subito le precise locazioni e le interruzioni associate. Iniziamo con il vettore di Reset che viene letto dalla CPU all’atto della prima accensione o quando viene rilevato uno 0 logico sul piedino di Reset. La locazione di tale vettore è la 0FFE Hex e la 0FFF Hex.

Le istruzioni contenute nel vettore numero 0 vengono eseguite quando la causa dell’interruzione è il pin di ingresso NMI; si tratta delle locazioni FFC Hex e FFD Hex. Il vettore numero 1 è associato alle periferiche di ingresso/uscita A e B e occupa gli indirizzi FF6 Hex e FF7 Hex. Il vettore numero 2 viene letto quando la causa dell’interruzione è la periferica C di I/O oppure la periferica seriale; le locazioni sono la FF4 Hex e la FF5 Hex.

st626x_programma_rom

Il vettore numero 3 viene processato allo scadere del tempo impostato nel timer autoricaricabile e i relativi indirizzi sono: FF2 Hex e FF3 Hex. Infine, il contenuto del vettore numero 4 viene letto quando scade il tempo impostato nel timer 1 oppure al termine della conversione analogica/digitale: gli indirizzi occupati sono l’FF0 Hex e l’FF1 Hex.

Il kit è disponibile da Futura Elettronica

STAMPA     Tags:

Leave a Reply