Ich habe zwei verbleibende 2 GB RAM-Module, die ich bei einem Upgrade von meinem MacBook Pro entfernt habe. Ich habe mich nur gefragt, ob diese zum Beispiel mit einem Arduino verwendet werden können. Ich wäre ein zu großer Anfänger, um dies jetzt tatsächlich zu versuchen, aber ich bin neugierig, ob es überhaupt möglich ist oder ob das einfach zu viel Speicher ist, als dass ein Mikrocontroller dies ansprechen könnte.
arduino
microcontroller
memory
johndeo
quelle
quelle
Antworten:
Ich werde nein sagen: Die grundlegendste Inkompatibilität ist, dass es zu viele Pins auf diesen Modulen gibt, um sie physisch an ein Arduino anzuschließen. Das Gleiche gilt für ähnliche kleine Mikrocontroller. Ein ARM Cortex M3 rückt näher, aber nur wenige von ihnen verfügen tatsächlich über den externen Bus, der für eine solche Schnittstelle zum RAM erforderlich ist (glaube ich).
Aber ich werde weiter spielen. Angenommen, Sie könnten den Chip auf irgendeine Weise mit dem Arduino verbinden. Ein weiteres grundlegendes elektrisches Kompatibilitätsproblem sind die erforderlichen Spannungen. Ich denke, diese RAM-Module verwenden etwas Seltsames wie 2,2 V - nicht vorhanden auf einem Vanille-Arduino-Board oder wirklich einem anderen grundlegenden Hobby-Mikrocontroller.
Angenommen, das wäre erledigt, dann würde der Chip so ziemlich wie jeder andere externe Speicher des Arduino funktionieren. Dies ist wirklich die ganze Zeit getan - Menschen fügen externe EEPROMs hinzu, um wichtige Konstanten oder SD / MMC-Karten für die Speicherung von Webserver-Protokollen und dergleichen zu speichern. In diesem Zusammenhang bieten die RAM-Module dem Arduino natürlich keinen wirklichen Vorteil. Sein Hauptmerkmal ist die Geschwindigkeit, und der Arduino (und ja, andere Hobby-Mikrocontroller) unterbrechen in der Regel nicht die Taktfrequenz von 25 MHz. Sie sind zu langsam, um auf Geschwindigkeit zu achten. Und die Speichergröße ist kein großes Problem, da die Anbindung an eine SD / MMC-Karte deutlich einfacher ist und ebenso viel Platz zum Spielen bietet.
Selbst wenn es möglich wäre, wäre es nicht wirklich ratsam.
quelle
Ich würde nein sagen, nicht ohne ein gutes (Pin Count) -FPGA dazwischen zu stecken, das FPGA spricht mit dem Speicher und der Mikrocontroller spricht mit dem FPGA unter Verwendung eines Paging-Schemas.
quelle
Sie könnten denkbarerweise ein System von Latches verwenden, um es so etwas wie einem Arduino zu ermöglichen, 32 Adressbits zu generieren, und Sie könnten wahrscheinlich ein Schema zum Generieren der Auffrischungszyklen entwickeln, aber es hätte fast keinen Sinn, dies zu tun, außer aus technischen Gründen Übung.
Die Schnittstellenschaltung wäre wahrscheinlich der komplexeste Teil des resultierenden Systems, und das Ergebnis hätte nur einen geringen praktischen Wert. Das Arduino wäre nicht in der Lage, Code aus dem RAM auszuführen, der Speicher wäre flüchtig und würde wahrscheinlich auch mehr Strom verbrauchen als das Arduino. Wenn Sie Daten speichern möchten, ist ein SPI-EEPROM wahrscheinlich eine viel bessere Lösung.
quelle
Wenn Sie sich jemals DRAM-Chip-Datenblätter ansehen, gibt es für DDR2 eine minimale Taktrate von etwa 50 MHz +. Nein, Sie können sie nicht mit einem Mikrocontroller verbinden (es sei denn, er verfügt über eine integrierte Hardware-Unterstützung).
quelle
Die kurze Antwort lautet nein.
Der Arduino kann die DDR- oder DDR2-Speicherschnittstelle nicht ansteuern. Sie könnten einen DDR / DDR2-Controller mit einer SPI-Schnittstelle mit einem FPGA herstellen, aber das ist ein bedeutendes Unterfangen.
quelle
Sie benötigen einen Niederspannungstreiber (SSTL) und eine Möglichkeit, etwa 100 Kanäle zu steuern (jedes Differential, also etwa 200 Pins. Denken Sie an BGA.)
Der meiste DRAM muss mit mindestens 1 kHz und wahrscheinlich mehr aufgefrischt werden, um eine niedrige Bitfehlerrate zu haben. Dies wird dann eine wichtige Hintergrundaufgabe bilden und den größten Teil der Verarbeitungsleistung des Arduino verbrauchen, wenn es überhaupt möglich ist, den Speicher mit einer solchen Geschwindigkeit aufzufrischen.
Was Sie jedoch sehen können, ist, dass einige Mikrocontroller, z. B. PIC24F / H / dsPIC33F, eine parallele Master-Bus-Schnittstelle unterstützen, über die auf einige Typen von parallelen SRAM zugegriffen werden kann. Es gibt sogar Unterstützung für C, da dieser externe Speicher mehreren Codevariablen und sogar Blöcken zugeordnet werden kann, die sowohl interne als auch externe Speicher kombinieren. Für den externen Speicher müssen Sie PMB-Code schreiben. Damit können Sie jedoch nur bis zu 1 MB ansprechen.
quelle
Nein, nicht ohne irgendeine Paging-Schnittstelle zwischen dem Speicher und der MCU. Einige der AVR-MCUs verfügen tatsächlich über eine integrierte externe Speicherschnittstelle, z. B. Atmega2560 (siehe Abschnitt 8 des Datenblattes ATmega640 / 1280/1281/2560/2561). Der Adressraum wird jedoch in Kilobyte und nicht in Gigabyte angegeben.
quelle