Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori ST626X. Settima parte 1

Corso di programmazione per microcontrollori ST626X

Nelle precedenti puntate del Corso abbiamo appreso i vari modi di funzionamento e di programmazione dei micro della SGS-Thomson. Proseguiamo ora nell’esplorazione dei chip ST6 dedicando la prima parte di questa puntata alla periferica seriale: la SPI (Serial Peripheral Interface). Prima di entrare nel vivo dell’argomento, ricordiamo che il trasferimento di dati tra due generici dispositivi elettronici può essere realizzato in due soli modi: spostando tutti i dati simultaneamente (trasferimento parallelo) oppure muovendo un dato dopo l’altro (trasferimento seriale).

Ognuno di questi due metodi presenta pregi e difetti: la trasmissione parallela è più veloce ma richiede un numero maggiore di linee (uguale al numero di bit da spostare più qualche linea di controllo) mentre la trasmissione seriale è più lenta ma “consuma” meno linee. Salvo casi particolari, il trasferimento parallelo è utilizzato in applicazioni gestite da microprocessore mentre il metodo seriale viene ampiamente utilizzato in sistemi a microcontrollore specialmente se appartenenti alla “fascia” medio-bassa.

Si pensi anche, ad esempio, al notevole sviluppo in questi ultimi anni delle EEPROM seriali o dei display alfanumerici oppure, ancora, alla nascita di nuovi dispositivi quali oscillatori, linee di ritardo, driver tutti gestiti con protocolli seriali. Il problema che ora si viene a creare, parlando dal punto di vista del software, è la maggiore complessità del controllo seriale rispetto a quello parallelo. Fortunatamente a tutto ciò hanno pensato i tecnici della SGS-Thomson implementando una completa periferica seriale semplice ed immediata da utilizzare. Osservando il relativo schema a blocchi riportato nell’articolo, possiamo notare che tutto fa capo ad uno “shift register” ad otto bit.

I dati in uscita dal registro vengono presentati al mondo esterno attraverso il piedino Sout, mentre i dati in ingresso sono letti sul pin siglato Sin.

L’Sout coincide con il terzo bit della periferica PORT C e deve essere ovviamente programmato come uscita agendo sul relativo registro direzione (DDRC) e sul registro miscellaneo ( Miscellaneous Register) disponibile nella memoria dati alla locazione DD hex.

periferica_seriale_nei_st626x

Il piedino Sin è, invece, il secondo bit del PORT C e va inizializzato come ingresso agendo solo sul registro di direzione DDRC. Lo “shift register”, a cui diamo la sigla SPIDSR (Serial Peripheral Interface Data Shift Register), è disponibile nella memoria dati all’indirizzo E0 hex e può essere sia letto che scritto con istruzioni software. Questo registro viene “mosso” da un impulso di clock che proviene dall’oscillatore interno, previa opportuna divisione, oppure dal piedino siglato SCK che corrisponde al quarto bit del PORT C e che va, allo scopo, inizializzato come ingresso. Per chiarirci le idee, supponiamo di scambiare dei dati tra due micro ST6: nel trasmittente dovremo collegare il clock interno alla periferica SPI mentre, nel ricevente, il clock della SPI risulterà controllato dal piedino SCK.

L’INIZIALIZZAZIONE DELLA PERIFERICA SERIALE

Per inizializzare correttamente la periferica SPI dobbiamo agire su due registri, propri della periferica, a cui associamo le sigle SPIMOD (SPI Mode Control Register) e SPIDIV (SPI Divide Register). L’SPIMOD è un registro a otto bit che può essere letto o scritto alla locazione E2 hex; ogni bit di questo registro ha un preciso significato. Mediante il bit 0 e il bit 5 di questo registro, denominati rispettivamente CPOL (Clock Polarity Selection) e CPHA (Clock Phase Selection), è possibile stabilire il modo di lavoro dei piedini Sin e Sout in funzione del segnale di clock. Agendo su CPOL e su CPHA si possono così ottenere quattro diversi sistemi di gestione del clock, ovvero si può stabilire quale transizione di CLK deve attivare la periferica alla lettura del dato. Nelle illustrazioni riportiamo la tabella con le quattro possibili combinazioni.

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

Ci sono attualmente 18 utenti e 67 visitatori collegati.

Ultimi Commenti