Wie werden MCUs und RAM für den programmgesteuerten Zugriff verdrahtet?

Ich bin neu in der Elektronik- und Mikrocontrollerprogrammierung und benötige entweder eine Bestätigung, dass mein Verständnis einiger Punkte korrekt ist, oder ich brauche dringend eine Korrektur!

Ich habe einen C-basierten Server, der etwa 2 GB RAM benötigt, um ordnungsgemäß zu funktionieren. Ich bin daran interessiert zu sehen, ob es eine Möglichkeit gibt, dieses Programm auf eine ARM-basierte MCU wie den Raspberry Pi oder den STM32 zu flashen. Wenn ich die MCU-Komponenten richtig verstehe, kann der Raspberry Pi diesen RAM-Bedarf einfach nicht bewältigen, da es sich um einen Broadcom/ARM-Chip handelt, der an einem SoC mit festen Speicher-ICs befestigt ist .

Ich verstehe jedoch auch , dass Nicht-SoCs wie der STM32 mit jeder Art von Speicherchip verkabelt werden können. Ich habe diese 4-GB- Speicherkarten gefunden und frage mich, ob es möglich ist, eine davon auf einer Leiterplatte neben einer ARM-basierten MCU zu platzieren, wodurch der ARM-Chip tatsächlich ein sehr großes Programm darauf ausführen kann.

Also frage ich: Ist das möglich? Wenn nicht, warum ? Wie sind sie miteinander inkompatibel? Wenn ja, wie werden sie normalerweise verkabelt? Sieht sich ein Ingenieur die Datenblätter für beide Chips an und findet die Verdrahtung/IO zwischen ihnen heraus?

Ich schätze, am Ende des Tages frage ich mich, warum es da draußen nicht mehr MCUs mit wahnsinnig großem Speicher gibt; und ich denke, es liegt entweder daran, dass die meisten eingebetteten / MCU-Programme nicht so viel Speicher benötigen, oder daran, dass sie es aus irgendeinem Grund nicht können.

Während es sicherlich ARM-Chips gibt, die für externen Speicher entwickelt wurden, ist die STM32-Serie kein wirkliches Beispiel - normalerweise haben diese ein paar zehn K RAM auf dem Chip, und das Sprechen außerhalb des Chips würde echte Kompromisse beinhalten. Sie könnten sich Entwicklungsplatinen ansehen, die auf mäßig aktuellen Smartphone-Chips basieren, aber es ist nicht klar, dass Sie gegenüber einem PC-Motherboard mit kleinem Formfaktor Geld sparen würden.

Antworten (3)

Die Antwort ist Wirtschaftlichkeit.

Die optimalen Prozesse für CPU und RAM sind unterschiedlich, wenn sich also beide auf demselben Chip befinden, muss ein Kompromiss gefunden werden. Für einen kleinen Chip (nicht so viel RAM) schadet dies nicht so sehr, weniger als das Hinzufügen eines externen RAM und die Verwendung vieler IO-Pins als Schnittstelle. Bei einem großen RAM (aktuell scheint die Umschaltung bei ~100Kb zu liegen) ist es sinnvoller, CPU und RAM auf unterschiedliche Chips zu stecken. Die Herstellung großer RAMs ist ein sehr spezialisiertes Geschäft mit hohem Volumen. Verwenden Sie also besser das, was auf dem Markt vorhanden ist, als einen neuen Chip zu entwickeln.

Der RAM, mit dem Sie eine Verbindung herstellen, ist ein dynamisches DDR3-RAM-Modul im PC-Stil. Ein solches Modul hat eine spezifische Schnittstelle, die nicht mit den (alten) Standard-Adressleitungen + Datenleitungen + Steuerbus kompatibel ist, die auf den meisten MCUs zu finden sind. Ich denke, Sie würden einen Klebechip (Brücke) benötigen, um eine solche Verbindung herzustellen. Und ja, Ingenieure lesen die Spezifikationen und nehmen die Verkabelung vor (einschließlich aller erforderlichen Klebechips, Stromversorgungssachen, sorgfältiges Timing usw.). Das mag einfach klingen, ist es aber nicht.

DRAM-Module benötigen einen Speichercontroller, um sowohl Auffrischungen auszulösen als auch den Zugriff zu arbitrieren. Dieser Controller ist mit Kosten in Bezug auf die Waferfläche, den Stromverbrauch und die Anzahl der Pins verbunden.

SRAM-Module existieren, verlieren aber gegenüber DRAM sowohl in Bezug auf die Kapazität (SRAM-Zellen benötigen 6 Transistoren als DRAMs einen Transistor und einen Kondensator) als auch auf die Wirtschaftlichkeit (geringerer Bedarf = höhere Kosten). Aber sie sind viel einfacher zu verbinden, und fast jede MCU-Familie hat mindestens ein Gerät mit einem einfachen externen Speicherbus.

Bei 2 GB ist das nicht mehr "Mikro" (heute). Es gibt viele Telefone, die mit weniger als dem versendet werden. Sind Sie sicher, dass Sie wirklich 2 GB Live-Daten haben? Kannst du es auf Flash umstellen? Was um alles in der Welt macht es?

Werfen Sie einen Blick auf Was ist eine gute Wahl für einen ARM als Schnittstelle zu externem Speicher? - aber ich denke, Ihre beste Option ist, sich eine Art Einplatinencomputer zu besorgen.

Sie können SoCs mit DRAM-Schnittstellen erhalten. Sie werden in der Regel in kleinen Mengen und in BGA-Gehäusen nicht verfügbar sein.