Grundlegende Informationen zu eingebettetem Speicher: EEPROM, FRAM, eMMC oder SD-Karten

Von Jacob Beningo

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Ein zentrales Element jedes Embedded-Systems auf Mikrocontroller-Basis ist der Speicher. So wird beispielsweise genügend RAM benötigt, um alle flüchtigen Variablen zu speichern, Puffer zu erstellen und verschiedene Anwendungsstapel zu managen. Neben RAM braucht ein Embedded-System jedoch auch einen Speicherort für den Anwendungscode, nicht flüchtige Daten und Konfigurationsdaten.

Die Auswahloptionen für nicht flüchtige Speichertechnik werden jedoch immer umfangreicher. Das erschwert es, den richtigen Speicher für eine Anwendung zu ermitteln.

In diesem Artikel werden die verschiedenen Technologien vorgestellt. Dann werden die Merkmale der einzelnen Speichertypen anhand von Beispielen von Anbietern wie ON Semiconductor, Adesto Technologies, Renesas, ISSI, Cypress Semiconductor, Advantech, GigaDevice Semiconductor und Silicon Motion erläutert. Außerdem wird erklärt, wo sich die einzelnen Speichertypen am besten einsetzen lassen, damit Entwickler sie effektiv nutzen können.

EEPROM und FRAM in Embedded-Systemen

Wenn es um eine Speicherkomponente für ein Embedded-System geht, ist die erste und häufigste Überlegung der Einsatz eines EEPROM-Speichers. Das ist ein nicht flüchtiger Speicher, der häufig für das Speichern von Systemkonfigurationsparametern für eine Embedded-Anwendung genutzt wird. Ein Gerät, das über CAN-Bus in ein Netzwerk eingebunden ist, kann beispielsweise die CAN-ID im EEPROM speichern.

Das EEPROM hat verschiedene Eigenschaften, die diesen Speichertyp für Entwickler von Embedded-Systemen zu einer guten Wahl machen:

  • geringer Platzbedarf
  • relativ preiswert
  • typische Bitraten, die von 100 bis 1000 Kbit/s reichen
  • eine standardisierte elektrische Schnittstelle
  • unterstützt in der Regel I2C- und SPI-Schnittstellen

Bei einer schnellen Suche nach EEPROM auf der Website von DigiKey findet man gegenwärtig neun EEPROM-Anbieter mit mehr als 5800 EEPROM-Produkten. Der CAT24C32WI-GT3 von ON Semiconductor beispielsweise ist eine EEPROM-Komponente mit 32 Kbit (4 Kbyte) in einem 8-poligen SOIC-Paket, das mit Geschwindigkeiten von bis zu 1 MHz an den I2C-Bus angeschlossen werden kann (Abbildung 1).

Bild: CAT24C32WI-GT3, ein 1-Kbit-EEPROM von ON SemiconductorAbbildung 1: Der CAT24C32WI-GT3 ist ein 1-Kbit-EEPROM von ON Semiconductor, der über einen I2C- oder SPI-Port an einen Mikrocontroller angeschlossen werden kann, um Konfigurations- und Anwendungsdaten zu speichern. (Bildquelle: ON Semiconductor)

Das Interessante an EEPROM ist, dass er mitunter in den eigentlichen Mikrocontroller integriert ist. Der 32-Bit-Mikrocontroller R7FS128783A01CFM#AA1 von Renesas bietet beispielsweise 4 Kbyte Onboard-EEPROM, den Entwickler nutzen können.

Das setzt voraus, dass für die Konfigurationsdaten nicht mehr als 4 KB benötigt werden. Falls nicht, müssen Entwickler entweder ein externes Gerät verwenden oder mithilfe des Flash-Speichers des Mikrocontrollers zusätzlichen EEPROM emulieren.

Trotz der weiten Verbreitung von EEPROM gibt es einige potenzielle Nachteile:

  • in der Regel auf 1 Million Lösch-/Schreibzyklen begrenzt
  • Schreibzyklen von rund 500 Nanosekunden (ns)
  • mehrere Anweisungen erforderlich, um eine Zelle zu beschreiben
  • Datenspeicherung von mindestens 10 Jahren (in letzter Zeit sind 100 Jahre und mehr üblich)
  • Anfälligkeit für Strahlung und hohe Betriebstemperaturen

EEPROMs funktionieren in vielen Anwendungen gut, aber bei Anwendungen, die eine hohe Ausfallsicherheit erfordern (wie z. B. bei Fahrzeug-, Medizin- oder Raumfahrttechnik), sollten Entwickler auf eine robustere Speicherlösung setzen, wie z. B. FRAM.

FRAM steht für „Ferroelectric Random Access Memory“ und bietet gegenüber EEPROM mehrere Vorteile:

  • ist schneller (Schreibzyklen dauern weniger als 50 ns)
  • ermöglicht mehr Schreibzyklen (über 1 Billion verglichen mit 1 Million bei EEPROM)
  • geringerer Leistungsbedarf (nur 1,5 Volt für den Betrieb)
  • weniger anfällig für Strahlung

FRAM ist in ähnlichen Speichergrößen wie EEPROM erhältlich. Die FRAM-Familie von Cypress Semiconductor reicht beispielsweise von 4 Kbit bis 4 Mbit. Der FM25L16B-GTR bietet 16 Kbit (Abbildung 2). Er wird in einem 8-poligen SOIC-Paket geliefert und kann mit bis zu 20 MHz betrieben werden.

Bild: FRAM-Familie von CypressAbbildung 2: Die FRAM-Familie von Cypress bietet Speicher verschiedener Größen von 4 Kbit bis 4 Mbit, die über SPI an einen Mikrocontroller angeschlossen werden können, um Konfigurations- und Anwendungsdaten zu speichern. Der FM25L16B-GTR (Abbildung) arbeitet mit bis zu 20 MHz. (Bildquelle: Cypress Semiconductor)

Der CY15B104Q-LHXIT von Cypress Semiconductor, der das obere Ende der Serie bildet, bietet 4 Mbit und unterstützt Schnittstellengeschwindigkeiten von bis zu 40 MHz (Abbildung 3). Dieser FRAM-Speicher bietet u. a. folgende interessante Merkmale:

  • Speichererhaltungszeit: 151 Jahre
  • 100 Billionen Lese-/Schreibzyklen
  • direkter Ersatz für seriellen Flash und EEPROM

Wie zu vermuten, ist FRAM teurer als EEPROM. Deshalb müssen bei der Auswahl des richtigen Speichers für eine Anwendung die Umgebungsfaktoren, unter denen ein Gerät arbeitet, sorgfältig abgewogen werden.

Bild: Der CY15B104Q-LHXIT von Cypress, eine 4-Mbit-KomponenteAbbildung 3: Der CY15B104Q-LHXIT ist eine 4-Mbit-Komponente mit einer Schnittstellengeschwindigkeit von bis zu 40 MHz. Er ist Teil der FRAM-Familie von Cypress, die von 4 Kbit bis 4 Mbit reicht. (Bildquelle: Cypress Semiconductor)

Flash, eMMC und SD-Karten in Embedded-Systemen

Flash-Speicher können in Embedded-Systemen für verschiedene Zwecke genutzt werden. Mit externem Flash-Speicher lässt sich der interne Flash-Speicher erweitern, um den verfügbaren Speicher für den Anwendungscode zu erhöhen. Das erfolgt üblicherweise mit SPI-Flash-Modulen wie dem GD25Q80CTIGR von GigaDevice Semiconductor (Abbildung 4). Mit dem GD25Q80CTIGR ließe sich der interne Speicher um 8 Mbit erweitern, sofern der Mikrocontroller dies über die gesamte SPI-Schnittstelle unterstützt.

Bild: Flash-Speicher GD25Q80CTIR von GigaDevice Semiconductor LimitedAbbildung 4: Mit dem Flash-Speicher GD25Q80CTIR von GigaDevice Semiconductor Limited lässt sich der interne Flash-Speicher über den SPI-Port um 8 Mbit erweitern. (Bildquelle: GigaDevice Semiconductor Limited)

Darüber hinaus kann ein externer Flash-Speicher statt EEPROM oder FRAM für das Speichern von Konfigurations- oder Anwendungsdaten verwendet werden. Durch Verwendung eines externen Flash-Chips lassen sich die Stücklistenkosten senken oder der interne Speicher für gespeicherte Daten aus der Anwendung erweitern. Eine Mikrocontroller-Peripheriekomponente und eine Speicherzuordnung können so konfiguriert werden, dass sie diesen externen Flash-Speicher einschließen, damit der Entwickler einfacher darauf zugreifen kann, ohne dass dazu benutzerdefinierte Aufrufe an einen Treiber erfolgen müssen, der für die Etablierung der Schnittstelle zum EEPROM oder FRAM erforderlich wäre.

Ein Beispiel für eine externe Flash-Komponente, die für diesen Zweck verwendet werden würde, ist der AT25SF161 von Adesto Technologies (Abbildung 5). Es nutzt eine QSPI-Schnittstelle (Queued SPI). QSPI ist eine Erweiterung des SPI-Standardprotokolls, die für das System einen höheren Datendurchsatz ermöglicht. Das ist interessant für Entwickler, die bei einer einzelnen Transaktion große Datenmengen speichern oder abrufen müssen.

QSPI funktioniert so, dass der Eingriff der CPU in das QSPI-Peripheriegerät unterbunden und die Schnittstelle von den standardmäßigen vier Pins (MOSI, MISO, CLK und CS) auf sechs Pins (CLK, CS, IO0, IO1, IO2, IO3) umgestellt wird. Das ermöglicht die Verwendung von vier Pins für die Ein- und Ausgabe statt der herkömmlichen zwei Pins bei SPI.

Bild: externe Flash-Speicherkomponente AT25SF161 von Adesto TechnologiesAbbildung 5: Die externen Flash-Speicherkomponenten des Typs AT25SF161 von Adesto Technologies können genutzt werden, um den internen Flash-Speicher zu erweitern. Sie verfügen über eine QSPI-Schnittstelle für das schnellere Speichern und Abrufen von Daten. (Bildquelle: Adesto Technologies)

Außerdem kann Flash für das Speichern von Anwendungs- und Nutzdaten verwendet werden. So würde man bei einem GPS-System beispielsweise nicht versuchen, alle GPS-Karten lokal auf dem Prozessor zu speichern, sondern dafür ein externes Speichermedium wie eine SD-Karte oder ein eMMC-Gerät zu nutzen. Diese Speichermedien können über SPI oder eine dedizierte SDIO-Schnittstelle, die eine effiziente Verbindung mit der externen Speicherkomponente ermöglicht, an einen Mikrocontroller angebunden werden.

Der eMMC IS21ES04G-JCLI von ISSI kann beispielsweise direkt an eine SDIO-Schnittstelle des Mikrocontrollers angeschlossen werden und erweitert das Gerät so um 32 Gbit Flash-Speicher (Abbildung 6).

Bild: eMMC-Flash-Modul von ISSI mit 32 Gbit SpeicherAbbildung 6: Das eMMC-Flash-Modul von ISSI bietet 32 Gbit Speicher, die sich über SPI oder SDIO an einen Host anbinden lassen. (Bildquelle: ISSI)

Aus Sicht der elektrischen Schnittstelle sind SD-Karten und eMMC-Geräte identisch. Das heißt, es werden dieselben Pins für den Anschluss der Geräte an einen Mikrocontroller verwendet, auch wenn sich die Pakete mit Sicherheit unterscheiden. Trotzdem können beide Speichertypen starke Unterschiede aufweisen. Im Vergleich zu SD-Karten unterscheidet sich EMMC in der Regel wie folgt:

  • robuster und weniger anfällig für physische Beschädigung
  • schnellere Interaktion
  • kostenintensiver
  • auf die Platine gelötet und nicht entfernbar

Wenn der Benutzer den Speicher nicht entfernen muss, bietet die Verwendung von eMMC eine robustere Lösung. Das hängt jedoch von der Endanwendung ab. Auf jeden Fall muss ein Entwickler seinen Arbeitsspeicher sorgfältig auswählen, da nicht alle Arbeitsspeicher gleich sind.

So kann es beispielsweise sein, dass der Speicher für ein Subsystem, das in ein Fahrzeug eingebaut wird, eine Zertifizierung nach einem höheren Standard als Flash-Standardkomponenten haben muss. In diesem Fall müsste der Entwickler nach Speicher mit Zulassung für den Fahrzeugbau wie dem 4-Gbyte-eMMC-Modul SM668GE4-AC von Silicon Motion suchen.

Wenn es um SD-Karten geht, müssen Entwickler genau darauf achten, was sie kaufen, weil es wie bei eMMC auch bei SD-Karten große Unterschiede gibt. Entwickler müssen auf die Geschwindigkeitsklasse und die Betriebstemperatur der Karte achten. Die meisten SD-Karten sind beispielsweise auf Temperaturen von 0 bis 70 °C ausgelegt, was für Unterhaltungselektronik ausreicht.

Zudem fällt jede Karte in eine Geschwindigkeitsklasse, die die maximal zu erwartende Schnittstellengeschwindigkeit angibt. Klasse 2 heißt beispielsweise, dass eine Karte für das Speichern von Bildern zu langsam wäre. Eine Karte der Klasse 10 wie die 4-Gbyte-SQFlash-microSD-Karte SQF-MSDM1-4G-21C von Advantech ist hingegen für HD-Video ausgelegt.

Bild: SQFlash-microSD-Karte SQF-MSDM1-4G-21C von AdvantechAbbildung 7: Die SQFlash-microSD-Karte SQF-MSDM1-4G-21C von Advantech bietet 4 Gbyte Speicher und eine Geschwindigkeitkeitsbewertung der Klasse 10. (Bildquelle: Advantech Corp)

Tipps und Tricks für die Auswahl von Speicher

Die Auswahl des richtigen Speichertyps und der richtigen Schnittstelle für ein Embedded-Produkt kann schwierig sein. Nachstehend finden Sie einige „Tipps und Tricks“, die Entwickler bei der Auswahl des richtigen Speichers für eine Anwendung beherzigen sollten:

  • Ermitteln Sie exakt die Betriebsbedingungen für den Speicher:
    • erwartete Lösch-/Schreibzyklen
    • Umgebungsbedingungen und Faktoren wie Temperatur, Vibrationen und Strahlung
    • Anforderungen an das Laden von Daten
  • Ermitteln Sie die minimale, die gewünschte und die maximale Bitrate, die für die erfolgreiche Verwendung des Speichers für die Anwendung erforderlich ist.
  • Wählen Sie den Speicherschnittstellentyp, der sich für die ermittelte gewünschte Bitrate am besten eignet.
  • Für raue Umgebungsbedingungen wie Automobil- oder Raumfahrtsysteme wählen Sie Speicher mit Kfz-Zulassung oder Strahlungstoleranz.
  • Testen Sie die ausgewählte Speicherkomponente mit Hilfe einer Breakout-Karte und Integration in das Mikrocontroller-Entwicklungskit.

Wenn Entwickler diese Tipps beherzigen, sollte gewährleistet sein, dass sie den richtigen Speicher für ihre Embedded-Anwendung auswählen.

Fazit

Heutzutage steht Entwicklern eine große Auswahl an nicht flüchtigen Speicherkomponenten zur Verfügung, auf denen Daten vom Anwendungscode bis hin zu Konfigurationsinformationen gespeichert werden können. Wie geschildert, müssen Entwickler ihre Anwendungsanforderungen eingehend prüfen und anschließend sorgfältig den Speichertyp und die Schnittstelle auswählen, um diese Anforderungen mit den Kosten in Einklang zu bringen.

 
DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Autor

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo ist ein Berater für eingebettete Software, der derzeit mit Kunden in mehr als einem Dutzend Ländern zusammenarbeitet, um ihr Unternehmen durch die Verbesserung von Produktqualität, Kosten und Markteinführungszeit dramatisch zu transformieren. Er hat mehr als 200 Artikel über Entwicklungstechniken für eingebettete Software veröffentlicht, ist ein gefragter Redner und technischer Trainer und verfügt über drei Abschlüsse, darunter einen Masters of Engineering der University of Michigan. Bei Interesse können Sie ihn unter jacob@beningo.com kontaktieren oder besuchen Sie seine Website www.beningo.com und melden Sie sich für seinen monatlichen Embedded Bytes Newsletter an.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey