SPI (Serial Peripheral Interface)




Introduzione all'interfaccia SPI


L’interfaccia SPI acronimo di (Serial peripheral interface) è una delle interfacce più utilizzate tra microcontrollore e CI periferici come sensori, ADC, DAC, registri a scorrimento, SRAM e altri.  Questo tutorial  fornisce una breve descrizione dell'interfaccia SPI. Questo articolo si concentra sul popolare interfaccia SPI a 4 fili.

 
Descrizione dell'interfaccia


La SPI è un'interfaccia master-slave sincrona, full duplex. I dati scambiati tra il master e lo slave sono sincronizzati sul fronte di salita o di discesa del clock ( linea SCK). Sia master che lo slave possono trasmettere dati allo stesso tempo.  L'interfaccia SPI può essere a 3 o 4 fili.

I dispositivi SPI a 4 fili utilizzano 4 linee di  segnali:

  1. Linea del clock SCLK
  2. Linea di selezione  CS ( chip select)
  3. Linea DATI dal master allo slave (MOSI: Master Out Slave Input)
  4. Linea dati dallo slave al master (MISO: Master Input Slave Out )


La figura 1 mostra una tipica connessione SPI tra master e slave a 4 fili

microst.it - configurazione SPI con master e slave.

Figura 1. Configurazione SPI a 4 file con master e slave.

 

Il dispositivo che genera il segnale di clock è chiamato il master. Il dato trasmesso tra il master e lo slave è sincronizzato con il clock generato dal master. I dispositivi SPI supportano un clock molto più alto in frequenza rispetto alle interfacce I2C.  Le interfacce SPI possono avere solo un master e possono avere uno o più slave.

Il segnale di selezione CS (Chip select) e’ utlizzato dal master per selezionare lo slave. Questo è normalmente un segnale attivo basso e viene tirato in alto per scollegare lo slave dal bus SPI. Quando vengono utilizzati più slave, il master gestisce il CS per ogni slave presente nel bus. In questo articolo, il chip selezionare il segnale è sempre un segnale basso attivo.

Le linee MOSI e MISO sono le linee dati. La linea MOSI (Master Output Slave Input) trasmette i dati dal master vero lo slave mentre la linea MISO (Master Input Slave Output) trasmette i dati dallo slave vero il master.