I fondamenti della memoria embedded: EEPROM, FeRAM, eMMC, schede SD
Contributo di Editori nordamericani di DigiKey
2019-10-16
La memoria è un elemento importante di ogni sistema embedded basato su microcontroller. Ad esempio, gli sviluppatori hanno bisogno di una quantità di RAM sufficiente per tutte le variabili volatili, per creare i buffer e gestire vari stack di applicazioni. Malgrado l'importanza della RAM per un sistema embedded, agli sviluppatori serve anche un luogo in cui memorizzare il codice applicativo, i dati non volatili e le informazioni di configurazione.
Il problema è dato dall'aumento delle opzioni della tecnologia della memoria non volatile, che rende difficile stabilire qual è la memoria giusta per una determinata applicazione.
Questo articolo fornisce un'introduzione alle varie tecnologie disponibili. Utilizza quindi esempi di fornitori come ON Semiconductor, Adesto Technologies, Renesas, ISSI, Cypress Semiconductor, Advantech, GigaDevice Semiconductor e Silicon Motion per aiutarvi a capire le caratteristiche di ogni tipo di memoria. Ne illustra infine l'applicazione migliore, così che possiate utilizzarle in modo efficace.
EEPROM e FeRAM in sistemi embedded
Quando si tratta di aggiungere un dispositivo di memoria a un sistema embedded, la scelta più comune è la EEPROM. Si tratta di una memoria non volatile che viene spesso utilizzata per memorizzare i parametri di configurazione del sistema per un'applicazione embedded. Ad esempio, un dispositivo collegato a una rete come un bus CAN potrebbe memorizzare l'ID CAN nella EEPROM.
La EEPROM ha diverse caratteristiche che ne fanno una buona scelta per gli sviluppatori di sistemi embedded:
- Ha un ingombro fisico ridotto
- È relativamente poco costosa
- Ha velocità bit tipiche che vanno da 100 kbit/s a 1000 kbit/s
- Ha un'interfaccia elettrica standardizzata
- In genere supporta interfacce I2C e SPI
Facendo una rapida ricerca di EEPROM sul sito Web di DigiKey si può vedere che al momento sono presenti nove fornitori con oltre 5.800 varianti di questo dispositivo. Ad esempio, CAT24C32WI-GT3 di ON Semiconductor è una EEPROM da 32 kbit (4 kbyte) in un contenitore SOIC a 8 pin che può essere collegata al bus I2C a velocità fino a 1 MHz (Figura 1).
Figura 1: CAT24C32WI-GT3 è una EEPROM da 32 kbit di ON Semiconductor che può collegarsi a un microcontroller tramite una porta I2C o SPI per memorizzare i dati di configurazione e dell'applicazione. (Immagine per gentile concessione di ON Semiconductor)
La cosa interessante è che, a volte, la EEPROM è anche inclusa nel microcontroller. Ad esempio, nel microcontroller a 32 bit R7FS128783A01CFM#AA1 di Renesas sono integrati 4 kbyte di EEPROM a disposizione degli sviluppatori.
Ciò presuppone che le esigenze di configurazione non superino i 4 kbyte. In caso contrario, occorre utilizzare un dispositivo esterno oppure emulare una EEPROM supplementare utilizzando la memoria flash del microcontroller.
Malgrado la sua popolarità, la EEPROM presenta anche dei potenziali svantaggi:
- In genere è limitata a 1.000.000 di cicli di cancellazione/scrittura
- Ha cicli di scrittura di circa 500 nanosecondi
- Per scrivere una cella servono diverse istruzioni
- Ha una conservazione dei dati di 10 anni o più (ultimamente è più comune che arrivi a 100 anni o più)
- È suscettibile alle radiazioni e a temperature di funzionamento elevate
Le EEPROM funzionano bene in molte applicazioni, ma per quelle che richiedono un'elevata affidabilità - come nel caso del settore automotive, medico o dei sistemi spaziali - gli sviluppatori dovranno ricorrere a una soluzione di memoria più robusta, come la FeRAM.
FeRAM è l'acronimo di "memoria ad accesso casuale ferroelettrica" e offre diversi vantaggi rispetto alla memoria EEPROM:
- È più veloce (i cicli di scrittura sono inferiori a 50 ns)
- Ha più cicli di scrittura (oltre 1 miliardo rispetto a 1 milione della EEPROM)
- Consuma meno (per funzionare richiede 1,5 V)
- Resiste meglio alle radiazioni
La FeRAM è disponibile in dimensioni di memoria simili a quelle della EEPROM. Ad esempio, la famiglia di FeRAM di Cypress Semiconductor è offerta da 4 kbit a 4 Mbit. FM25L16B-GTR ha 16 kbit (Figura 2). È disponibile in un contenitore SOIC a 8 pin e può funzionare fino a 20 MHz.
Figura 2: La famiglia di FeRAM di Cypress comprende una gamma di dimensioni da 4 kbit a 4 Mbit e può connettersi a un microcontroller tramite SPI per memorizzare i dati di configurazione e dell'applicazione. FM25L16B-GTR (in figura) opera fino a 20 MHz. (Immagine per gentile concessione di Cypress Semiconductor)
Nella fascia superiore, CY15B104Q-LHXIT di Cypress Semiconductor ha 4 Mbit e supporta velocità di interfaccia fino a 40 MHz (Figura 3). Fra le caratteristiche interessanti di questa memoria FeRAM vi sono:
- Conservazione dei dati per 151 anni
- 100 miliardi di cicli di lettura/scrittura
- È un dispositivo sostitutivo diretto della flash seriale e della EEPROM
Ovviamente la FeRAM è più costosa della EEPROM, pertanto per selezionare la memoria giusta per un'applicazione è importante valutare attentamente i fattori ambientali in cui un dispositivo opererà.
Figura 3: CY15B104Q-LHXIT è un dispositivo da 4 Mbit che opera fino a 40 MHz. Fa parte della famiglia di FeRAM di Cypress che va da 4 kbit a 4 Mbit. (Immagine per gentile concessione di Cypress Semiconductor)
Flash, eMMC e schede SD nei sistemi embedded
La memoria flash in un sistema embedded può essere utilizzata per diversi scopi. Innanzitutto, si potrebbe sfruttare la memoria flash esterna per espandere quella interna e aumentare così la memoria disponibile per il codice dell'applicazione. Per questo si ricorre comunemente a moduli di flash SPI come GD25Q80CTIGR di GigaDevice Semiconductor (Figura 4). GD25Q80CTIGR potrebbe essere utilizzato per espandere di 8 Mbit la memoria interna, supponendo che il microcontroller sia in grado di supportarla, tramite l'interfaccia SPI.
Figura 4: La memoria flash GD25Q80CTIR di GigaDevice Semiconductor Limited può essere utilizzata per espandere di 8 Mbit lo spazio della memoria flash interna attraverso la porta SPI. (Immagine per gentile concessione di GigaDevice Semiconductor Limited)
In secondo luogo, la memoria flash esterna potrebbe essere utilizzata al posto di una EEPROM o di una FeRAM per immagazzinare le informazioni di configurazione o i dati dell'applicazione. Si potrebbe invece utilizzare un chip flash esterno per ridurre i costi della distinta base o per aumentare la memoria interna per i dati memorizzati dell'applicazione. Una periferica basata su microcontroller e una mappa della memoria possono essere configurate per includere questa flash esterna e permettere così allo sviluppatore di accedervi senza dover effettuare chiamate personalizzate a un driver che sarebbero necessarie per interfacciarsi con una EEPROM o una FeRAM.
Un esempio di dispositivo flash esterno che verrebbe utilizzato a tale scopo è AT25SF161 di Adesto Technologies (Figura 5). Utilizza un'interfaccia SPI (QSPI) in coda. Una QSPI è un'estensione del normale protocollo SPI che consente un maggiore throughput di dati per il sistema. È una soluzione estremamente interessante per gli sviluppatori che devono memorizzare o recuperare grandi quantità di dati durante una singola transazione.
QSPI elimina l'intervento della CPU all'interno della periferica QSPI e cambia l'interfaccia dai quattro pin standard (MOSI, MISO, CLK e CS) a sei pin (CLK, CS, IO0, IO1, IO2, IO3). Ciò consente di utilizzare quattro pin per l'ingresso e l'uscita rispetto ai due pin tradizionali della SPI.
Figura 5: I dispositivi di memoria flash esterna AT25SF161 di Adesto Technologies possono essere utilizzati per estendere la flash interna. Hanno un'interfaccia QSPI per memorizzare e recuperare più rapidamente i dati. (Immagine per gentile concessione di Adesto Technologies)
Infine, la flash può essere utilizzata per memorizzare i dati dell'applicazione e le informazioni sul carico utile. Ad esempio, un sistema GPS non tenterebbe di memorizzare localmente tutte le mappe GPS sul processore, ma utilizzerebbe un dispositivo di memorizzazione esterno come una scheda SD o un dispositivo eMMC. Questi supporti di memorizzazione possono essere collegati a un microcontroller tramite SPI o un'interfaccia SDIO dedicata, efficiente collegamento con il dispositivo di memoria esterna.
Ad esempio, il modulo eMMC IS21ES04G-JCLI di ISSI può essere collegato direttamente a un'interfaccia SDIO sul microcontroller per aggiungere 32 Gbit di memoria flash al dispositivo (Figura 6).
Figura 6: Il modulo flash eMMC di ISSI da 32 Gbit di memoria può essere collegato a un host tramite SPI o SDIO. (Immagine per gentile concessione di ISSI)
Dal punto di vista dell'interfaccia elettrica, le schede SD e i dispositivi eMMC sono identici. Ovvero, hanno gli stessi pin comuni che sono utilizzati per collegare i dispositivi a un microcontroller, anche se i contenitori sono diversi. Tuttavia, i due tipi di memoria possono essere molto diversi l'uno dall'altro. In genere i dispositivi eMMC si distinguono dalle schede SD perché:
- Sono più robusti e meno soggetti a danni fisici
- Hanno un'interazione più rapida
- Sono più costosi
- Sono saldati sulla scheda e non possono essere rimossi
Se l'utente non ha bisogno di rimuovere la memoria, un eMMC offre una soluzione più robusta, ma questo dipenderà dall'applicazione finale. In ogni caso, uno sviluppatore deve selezionare attentamente la memoria, perché non sono tutte uguali.
Ad esempio, un sottosistema destinato a essere inserito in un'automobile potrebbe richiedere una memoria di consolidata e certificata affidabilità secondo uno standard più elevato rispetto ai dispositivi flash standard. In questo caso, uno sviluppatore si indirizzerebbe verso una memoria qualificata per veicoli come il modulo eMMC da 4 Gbyte SM668GE4-AC di Silicon Motion.
Nel caso delle schede SD, gli sviluppatori devono prestare molta attenzione perché, come visto per eMMC, non sono tutte uguali. Devono esaminare attentamente la loro classe di velocità e la temperatura di funzionamento. Ad esempio, la maggior parte delle schede SD sono classificate per funzionare tra 0 e 70 °C, il che è appropriato per i prodotti elettronici consumer.
Esistono anche classi di velocità associate a ogni scheda che descrivono la massima velocità di interfaccia prevista. Ad esempio, una classificazione di Classe 2 significa che la scheda sarà lenta per un'applicazione che memorizza immagini rispetto a una scheda di Classe 10 progettata per video HD, come la microSD da 4 Gbyte SQFlash SQF-MSDM1-4G-21C di Advantech.
Figura 7: La scheda microSD SQFlash SQF-MSDM1-4G-21C di Advantech contiene 4 Gbyte di memoria e ha una velocità nominale di fascia alta di Classe 10. (Immagine per gentile concessione di Advantech Corp)
Suggerimenti e consigli per la scelta della memoria
Scegliere il tipo giusto di memoria e di interfaccia per un prodotto embedded può essere un'impresa. Ecco una serie di suggerimenti e consigli di cui gli sviluppatori devono tener conto per scegliere la memoria giusta per un'applicazione:
- Identificare chiaramente le condizioni operative della memoria, ad esempio:
- Cicli di cancellazione/scrittura previsti
- Condizioni ambientali e fattori quali temperatura, vibrazioni e radiazioni
- Requisiti di carico dei dati
- Documentare le velocità bit minime, desiderate e massime necessarie per utilizzare con successo la memoria per l'applicazione
- Scegliere il tipo di interfaccia di memoria più idoneo per la velocità bit documentata desiderata
- Per condizioni ambientali difficili, come quelle del settore automotive o spaziale, scegliere una memoria che abbia una classificazione automotive o sia resistente alle radiazioni.
- Utilizzare una scheda di breakout per testare il dispositivo di memoria selezionato integrandolo con il kit di sviluppo del microcontroller.
Gli sviluppatori che seguono questi suggerimenti avranno meno difficoltà a scegliere la memoria giusta per la loro applicazione embedded.
Conclusione
Oggi gli sviluppatori dispongono di un'ampia scelta di dispositivi di memoria non volatile per memorizzare i dati, dal codice dell'applicazione alle informazioni di configurazione. Come è stato illustrato, devono valutare attentamente le esigenze della propria applicazione e scegliere con altrettanta attenzione il tipo di memoria e l'interfaccia che bilancino queste esigenze con i costi.

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.