SPIinterface Tutorial. (Italiano)

Il bus SPI Interface(Serial Peripheral Interface)è un protocollo di comunicazione seriale a 3 fili ad alta velocità (4 se si include SSn-vedi sotto). Itsprimiary scopo è quello di ridurre on-PCB wire routing sostituendo thetraditional bus parallelo con un’interfaccia seriale. (Puoi solo gestire un bus a 8 bit instradandolo attraverso un PCB a più livelli, ma quando arrivi a 16, 32 bit e altro diventa molto più difficile).,

Le connessioni sono:

  • MOSI (Master Out Slave In) .
  • MISO (Master In Slave Out).
  • SCK (Orologio slave).
  • SS_n (Selezione slave).

– denota la nomenclatura PIC

Nota: L’ultimo segnale SS o slave select è separato dal protocollo e viene solitamente implementato come pin di controllo abilitante dal microcontrollore. È incluso qui per completezza.

L’interfaccia PIC SPI consente il collegamento di periferiche utilizzando un’interfaccia seriale ad alta velocità. SPI FlashMemory e SPI SRAM possono essere facilmente aggiunti a qualsiasi sistema., Altri tipi di dispositivi includono:

  • ADC.
  • DAC.
  • Flash.
  • EEPROM.
  • Accellerometri.
  • LCD.
  • Temperatura& Sensori di umidità.
  • …e molti altri.

Solo un’altra vera competizione è il bus I2C, motivo per cui spesso si vedono queste interfacce sia disponibili su processori che microcontrollori.

L’interfaccia SPI è stata progettata negli anni ‘ 70 da Motorola, che l’ha utilizzata nel suo processore 68000, ed è stata rapidamente adottata da molti altri produttori come standard defacto.,

è destinato alla trasmissione di dati da un dispositivo master a uno o più dispositivi slavedispositivi su brevi distanze e ad alte velocità (MHz).

Come funziona

Funziona trasferendo i dati un bit alla volta tra due dispositivi con il dispositivo master che invia il segnale di clock (SCK). L’orologio controlla i tempi del trasferimento dei dati.

I dati (MOSI) vengono inviati da un registro a turni nel dispositivo SPI Master insieme a un segnale di clock (SCK) mentre allo stesso tempo un altro registro a turni riceve i dati dallo slave (MISO,).,

Il Master è sempre in controllo e avvia il trasferimento dei dati utilizzando il segnale di clock. I dispositivi slave vengono selezionati utilizzando un segnale di selezione slave separato controllato dal software, ovvero tali segnali sono separati dal modulo hardware SPI.

Nota: Il numero di bit non è definito dal protocollo quindi non si è limitati a utilizzare solo 8-può essere qualsiasi numero di bit. Questo è utile quando si concatenano gli slave SPI in quanto è necessario impostare il numero di bit sulla somma di tutti i bit richiesti da ciascun dispositivo.,

Nota: SPI definisce un singolo sistema master.

Il protocollo alternativo, IIC, consente il funzionamento di più bus master.

Definizione dell’orologio dell’interfaccia SPI

L’orologio SPI non è affatto definito, il che significa che diversi dispositivi slave possono assumere un funzionamento diverso dell’orologio; Uno slave può richiedere un orologio inattivo alto, mentre un altro può richiedere uno stato inattivo basso. Altri reagiranno al fronte di salita mentre altri reagiscono al fronte di discesa!,

Il protocollo di interfaccia SPI consente di programmare questi dettagli sul modulo hardware SPI.

L’immagine seguente mostra l’interfaccia PIC per SPI (tutti i moduli hardware SPI in altri microcontrollori permetteranno la stessa operazione solo usando registri diversi).,

Interfaccia SPI PIC segnali (estratto da PIC datasheet DS39582B)

è a voi per impostare correttamente l’orologio del dispositivo quando viene attivato da un segnale slave select (o, nel caso di un singolo slave è sempre selezionato in modo che non ci sarà nessun segnale slave select).

Arduino SPI Connection

Lo schema seguente mostra l’interfaccia alle connessioni SPI che è anche il connettore di programmazione (ICSP), sulla scheda Arduino, che consente la programmazione diretta dell’ATmega328P.,p>

5 – Reset

6 – GND

Location of the SPI connector on Arduino Uno R3

Photo Credit : kenming_wang (mod shows ICSP)

Different SPI Interface operational Modes

There are three ways of using the SPI interface

  1. Single Master – Single Slave.,
  2. Master singolo-Slave multipli-Chip selezionato.
  3. Master singolo-Schiavi multipli-Dasiy incatenato.

Singolo Master – Singolo Slave.

Ecco la configurazione per una singola connessione del dispositivo SPI:

Nota: Il segnale di selezione del chip SS è opzionale per un singolo sistema di dispositivi, in quanto normalmente si legherà l’SSinput allo slave basso (se le altre linee sono dedicate all’uso SPI).,

Interfaccia SIP: Utilizzando chip seleziona

Con questo schema si controlla ogni dispositivo slave usingits chip selezionare linea (di solito attivo low – red frecce mostrano controllines). Quando disabilitato, l’uscita dei dati dalla slave entra in uno stato di alta impedenza in modo che non interferisca con lo slave selezionato attualmente e l’input dei dati dello slave viene ignorato (checkdatasheet).,
Il vantaggio di questo schema è che è possibile considerare (controllare) ciascun dispositivoseparatamente quando lo si confronta con il metodo daisy chain – consentendo la connessione di dispositivi SPI che richiedono diversi schemi di clock.

Se si dispone di slave SPI che operano utilizzando diversi clock (bordi/stati di inattività) è possibile riprogrammare il modulo hardware SPI master prima di abilitare un CS specifico in modo che ogni slave abbia i segnali corretti inviati ad esso.

Se si utilizza il metodo Daisy chain, è necessario assicurarsi che tutti i chip utilizzino lo stesso bordo di clock e lo stesso stato di clock inattivo.,

SPIInterface :Daisy chaining

Con questo schema tutti i dati inviati dal master vengono spostati in tutti i dispositivi e tutti i dati inviati da ciascun dispositivo vengono spostati al successivo (mostrato dalla freccia rossa tratteggiata). Perché questo schema funzioni devi assicurarti che ogni slave usi l’orologio allo stesso modo e devi ottenere il giusto numero di bit, quindi c’è più lavoro da fare nel software.

Nota: Il vantaggio del metodo Daisy-Chain è che si salva un segnale di selezione del chip per ogni dispositivo SPI slave.

Maggiori informazioni su Wikipedia.,

Interfaccia SPI Daisy Chain

SPI Daisy Chain Example

Utilizzare diversi chip HC595, collegati a margherita, dando un facile aumento del numero di uscite disponibili senza utilizzare molti pin del microcontrollore.

I limiti di funzionamento sono la velocità di HC, la velocità dell’uscita SPI. Anche la considerazione di progettazione, ad esempio se si guida un set di LED che deve essere aggiornato ogni 20 ms.

Parallelo contro seriale SPI

Il compromesso tra l’utilizzo di un’interfaccia parallela e l’interfaccia SPI è la velocità, ad esempio, se yourread un parallelo 12bit ADC a 200ksps allora si potrebbe leggere il dispositivo ata 200 kHz tasso, ma se si desidera ottenere la stessa velocità di dati utilizzando SPI thenyou bisogno di una velocità seriale di 200 kHz x 12 = 2.4 MHz. Quindi il compromesso effettivo è la velocità e il rumore conseguente introdotto nel circuito.

Sommario

L’interfaccia SPI definisce un protocollo molto popolare che funziona ad alta velocità. Il problema principale è che i dispositivi slave non sono vincolati da alcun particolare schema di clock, quindi possono funzionare in modo diverso l’uno dall’altro e ciò può rendere difficile il loro controllo, ad esempio, l’orologio idle e edge devono essere impostati correttamente per ciascun dispositivo.

Vantaggi:

  • Ad alta velocità.
  • Interfaccia estremamente semplice che è facile da replicare nel software.

Svantaggi:

  • I chip slave sono liberi di adottare qualsiasi schema di clock richiesto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *