SPI o I2C: qual è il protocollo migliore per i chip di memoria PCB?

 Icon of memory chip

L’altro giorno cercavo un nuovo paio di scarpe e ho capito esattamente perché non ne compro così spesso: troppi parametri. Ero alla ricerca di scarpe da ginnastica, quindi le metriche riguardavano comodità, rimbalzo, durata, resistenza all’acqua, peso, spazio per le dita, supporto dell’arcata plantare e molto altro. Talvolta sembra che serva una laurea per trovare la scarpa giusta per i propri piedi. Per me si tratta di un sovraccarico di informazioni. 

Vi troverete ad affrontare una decisione altrettanto complessa nella progettazione elettronica, quando dovrete scegliere tra i protocolli Serial Peripheral Interface (SPI) o Inter-Integrated Circuit (I2C) per i chip di memoria. La vostra decisione diventa ancora più difficile quando entrambe le scelte non si differenziano molto in termini di costo. Le esigenze dei parametri del chip di memoria sono legate alla vostra conoscenza di ciò che le diverse funzioni possono offrire al vostro prodotto. 

Concetti fondamentali dei protocolli SPI e I2C

Il protocollo SPI è un protocollo di comunicazione con una configurazione full-duplex. Utilizza quattro segnali: Chip Select (CS), Clock (SCK), Master Out / Slave In (MOSI) e Master In / Slave Out (MISO) per le comunicazioni tra un master e uno slave. Una connessione master-slave singola richiede un segnale CS. Ciò significa che il numero di segnali CS aumenta se più di un singolo slave è connesso allo stesso bus. 

Non vi è un limite ufficiale alla velocità di un bus SPI. È normale che i microcontrollori utilizzino velocità fino a 10Mhz per il bus SPI. Esistono quattro modalità di SPI nelle quali i dati si collegano ai diversi fronti e alle polarità del segnale di clock. Non esiste tuttavia un meccanismo standard che consenta a un master di confermare che i dati siano stati ricevuti e memorizzati con successo dallo slave.

Al contrario, il protocollo I2C bus, richiede solo due linee: Serial Data (SDA) e Serial Clock (SCLK). Funziona ad una velocità molto inferiore, pari a 100 kHz, sebbene siano possibili velocità più elevate che potrebbero non essere supportate dalla maggior parte dei microcontrollori. I dispositivi slave collegati al bus I2C sono identificati dall’indirizzo del chip, definito dall’hardware. Con il protocollo I2C, i pin di segnale del microcontrollore sono al minimo.

Uno standard per I2C ben definito riguarda la velocità del protocollo, così come i comandi, l’inizializzazione, il trasferimento dei dati e il riconoscimento tra dispositivi master e slave. Ciò garantisce che tutti i dispositivi che supportano il protocollo I2C osservino un unico standard per facilitare l’implementazione. 

Considerazioni importanti durante la scelta tra SPI e I2C per i chip di memoria

SPI e I2C sono protocolli molto diffusi tra i chip di memoria seriale, come Static Random Access Memory (SRAM), Flash or Electrically Erasable Programmable Read-Only Memory (EEPROM). La scelta del protocollo migliore per la propria progettazione implica molto di più che la semplice comparazione dei prezzi. Ecco alcune considerazioni importanti che potrebbero semplificare il vostro processo decisionale:

1. Velocità

Quando si trasferiscono dati in massa oppure si dispone di una finestra molto ristretta per verificare l’input dell’utente rispetto ai dati conservati su un chip di memoria, ogni singolo microsecondo è prezioso. Se l’aspetto più importante per voi è quello della velocità, scegliete il protocollo SPI per usufruire di velocità di trasferimento dei dati pari a 10 MHz, molto più veloci rispetto alla velocità massima del protocollo I2C, pari a 400 Khz.

 Car zooming with lights all around

Se la velocità è importante, scegliete SPI per la vostra memoria PCB.

2. Pin limitati

Non tutti i progettisti di hardware hanno la fortuna di utilizzare microcontrollori di fascia alta, con più di 100 pin. Alcuni fanno fatica a collegare chip di memoria con microcontrollori da 28 pin. In queste situazioni, il protocollo I2C è l’ideale, poiché richiede solo un paio di tracce per la comunicazione.

3. Dimensioni del PCB

Se non siete vincolati da alcun limite di dimensioni per il PCB, andranno benissimo sia il protocollo SPI che il protocollo I2C. Tuttavia, se state cercando di inserire il vostro PCB in un alloggiamento di piccole dimensioni, una minore quantità di tracce corrisponderà a un PCB più piccolo, il che rende il protocollo I2C la scelta migliore.

4. Malfunzionamenti e risoluzione degli errori

I progettisti non sono perfetti, né lo è il protocollo I2C. Il bus I2C è sensibile agli errori e ai blocchi, poiché sia la trasmissione che la ricezione avvengono sulle stesse tracce fisiche. Quando un master non riesce a rilasciare il bus per tempo, lo slave potrebbe entrare in uno stato di blocco, poiché ha inviato una risposta che il master non ha ricevuto. La gestione degli errori può rivelarsi complessa, poiché alcuni casi potrebbero richiedere un riavvio dei dispositivi bloccati. 

5. Alimentazione

Se state progettando dispositivi alimentati a batteria o tramite energia solare, i consumi devono essere ridotti al minimo. I dispositivi I2C consumano generalmente più energia rispetto al protocollo SPI e, laddove i consumi siano per voi importanti, dovreste scegliere il protocollo SPI per il vostro progetto.

Small single-board PCB

Scegliete il protocollo I2C per la vostra memoria PCB se il vostro circuito  deve essere piccolo. 

Prendete le decisioni migliori per il vostro progetto

Indipendentemente dalla vostra scelta finale, entrambi i protocolli SPI e I2C richiedono l’instradamento dei segnali in parallelo, così come lunghezze simili per evitare qualsiasi errore di segnale. La vostra decisione influisce sulla funzionalità del vostro circuito stampato, sulle tempistiche e sull’efficienza complessiva. 

Utilizzando un software di PCB design in grado di offrire le funzionalità e gli strumenti necessari per passare facilmente dallo schema al layout e poi all’output, sarete in grado di fare facilmente queste scelte. Sfruttate i tanti strumenti di routing del segnale e i contenuti di progettazione illimitati per semplificare il processo con Altium’s CircuitStudio.

Vi state ancora chiedendo quale sia il protocollo migliore per il vostro progetto? Parlate con un esperto di Altium.

Articolo precedente
Come utilizzare i disegni CAD schematici per gruppi di cavi parte 3: creazione di socket PCB e pin per crimpatura
Come utilizzare i disegni CAD schematici per gruppi di cavi parte 3: creazione di socket PCB e pin per crimpatura

Impara con Altium come agire per aggiungere i componenti socket PCB e pin al tuo design e procedere con le ...

Articolo successivo
Come semplificare il routing con lo scambio di pcb pins
Come semplificare il routing con lo scambio di pcb pins

Impara con Altium come ottimizzare il design della scheda con lo scambio dei PCB pins nelle connessioni inc...