Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori ST626X. Quarta parte 3/4

microcontrollori ST626X

La CPU viene gestita dal software attraverso cinque diversi registri a cui associamo la sigla di registro accumulatore, registro X, registro Y, registro V, registro W. L’accumulatore è il registro più importante all’interno della CPU e quasi tutti i comandi e le istruzioni software utilizzano per lo svolgimento questo registro.

I registri X e Y vengono definiti anche come registri indiretti poiché il loro compito principale è quello di indirizzare in modo indiretto la memoria dati. I registri V e W vengono definiti short register e sono utilizzati per l’indirizzamento diretto della memoria dati. In seguito parleremo anche dei tipi di indirizzamento disponibili nei micro ST6. Tutte le operazioni matematiche vengono svolte dall’unità ALU alla quale spetta anche l’aggiornamento del Carry flag e dello Zero flag.

Questi ultimi sono sostanzialmente dei registri ad un solo bit che vengono scritti dalla ALU al termine di una operazione matematica e che possono essere letti dal programma software per sapere se due numeri sono uguali o diversi, oppure quale dei due è il maggiore, oppure ancora se un numero è negativo o positivo.

schema_oscillatore_e_divisore_st626x

All’interno di un microcontrollore la sequenza degli eventi o meglio la velocità con cui questi avvengono è regolata dal clock di sistema.

IL CLOCK

Il clock viene generato da un particolare circuito, interno al micro, denominato oscillatore. Per funzionare l’oscillatore necessita di qualche componente esterno, ovvero di un quarzo o risuonatore ceramico e di due condensatori.

Se il tutto viene collegato correttamente all’atto della prima accensione, trascorso il ritardo di reset, la CPU inizierà a lavorare “mossa” dal clock generato dall’oscillatore. La velocità con cui la CPU svolge le sue mansioni è ovviamente correlata alla frequenza di oscillazione del quarzo esterno.

Quanto più alta sarà la frequenza del quarzo, tanto più alta sarà la velocità di lavoro del micro e il consumo di corrente, al contrario, abbassando la frequenza del quarzo, andremo a diminuire la velocità del micro ed anche il suo consumo di corrente. E’ evidente che se la frequenza del quarzo non varia, anche la velocità di esecuzione del micro rimane sempre la stessa, ovvero la CPU processa le istruzioni sempre con la stessa velocità.

Per stabilire il legame tra frequenza di oscillazione del quarzo e velocità di esecuzione del micro si usa il termine “machine cycle” o ciclo temporale di macchina. Nel data-book dei micro ST6 è riportato, a fianco di ogni singola istruzione, anche il numero di cicli macchina necessari per l’esecuzione. Ad esempio, l’istruzione LDI A,nn (trasferisci il numero ad otto bit nn all’interno del registro accumulatore) richiede per essere eseguita dalla CPU quattro cicli macchina. Supponendo di collegare esternamente al micro un quarzo da 8 MHz, il periodo dell’impulso di clock sarà di 0,125 microsecondi: 1/8 MHz.

Il tempo di ciascun ciclo macchina sarà di 1,625 microsecondi (13 x 0,125 microsecondi). Infine, il tempo di esecuzione dell’istruzione sopra citata sarà di 1,625 x 4 cicli = 6,5 microsecondi. Abbiamo moltiplicato per 13 il periodo di clock poiché l’oscillatore interno pilota il core del micro con una frequenza pari a quella del clock diviso 13. Per essere precisi le esatte frequenze che vengono applicate alle diverse unità sono: core e periferica seriale uguale a clock diviso 13; timer 1, watchdog e convertitore A/D clock diviso 12; infine, il timer autoricaricabile viene pilotato direttamente con la frequenza di clock.

linee_ingresso-uscita_micro_st626x

E’ possibile dividere ulteriormente le frequenze applicate alle varie unità agendo sul registro di controllo dell’oscillatore OSCR (Oscillator Control Register). Esso si trova fisicamente nella memoria dati alla locazione DC Hex, può essere solo scritto ed è composto da 8 bit che rappresentiamo con le sigle da D0 (bit 0) a D7 (bit 7). Di questo registro vengono usati solo due bit, il D0 e il D1, per selezionare il fattore di divisione dell’oscillatore in funzione della seguente tabella:

D1  D0     fattore di divisione
0    0            1
0    1            2
1    0            4
1    1            4

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ultimi Commenti