Externer RAM mit ARM Cortex M-3

Ich plane, mit uclinux mit meiner ARM Cortex M-3-basierten MCU zu beginnen.

Die Anforderungen von Uclinux umfassen ~4 MB RAM (SRAM - DRAM - ... was auch immer) und Flash (SD-Karte - NAND Flash - ... was auch immer).

Mein MCU-Speichercontroller unterstützt externes SRAM (in verschiedenen Modi).

Ich habe ein paar Gedanken und brauche jemanden, der sie für mich erklärt:

  • Angenommen, ich möchte 4 MB externen SRAM hinzufügen (trotz interner Organisation). Dies erfordert beispielsweise 8 Pins für Daten und 22 Pins für Adressen. Die meisten Pins werden also nur für externen Speicher verwendet. Dies ist für eingebettete Geräte, bei denen die Anzahl der Pins begrenzt ist, nicht akzeptabel.
  • Wie das folgende Bild beschreibt, könnten Anweisungen vom internen Flash (I-Bus), vom internen RAM oder von der externen Busschnittstelle (D-Bus) ausgeführt werden, ist dies nicht ein Engpass? (Daten und Anweisungen werden aus denselben Zeilen abgerufen, da ARM eine Von-Neumann-Architektur ist).
  • Eine allgemeine Frage (es macht vielleicht keinen Sinn), aber könnte ich stattdessen einen SRAM-Chip mit SPI-Schnittstelle verwenden? könnte ich auf diese Weise Anweisungen aus dem SRAM abrufen? Was ist auch mit Geschwindigkeitsproblemen bei Verwendung von SPI anstelle von parallelen Busleitungen?
    Geben Sie hier die Bildbeschreibung ein

Antworten (1)

Wenn der Mikrocontroller externe Speicher unterstützt, hat er dedizierte Pins für die Adress- und Datenbusse. Sie können einem Bus nicht irgendeinen Pin zuweisen. Ich denke nicht, dass Sie sich Sorgen machen müssen, alle Pins zu verbrauchen. Kleine Mikrocontroller mit relativ geringer Pinzahl unterstützen wahrscheinlich keine externen Speicher. Lesen Sie das Datenblatt des Mikrocontrollers.

Nun, ich nehme an, man könnte sagen, dass es immer irgendwo einen Engpass gibt, aber die eigentliche Frage ist, ob der Engpass ein Problem darstellt. Ich glaube, die Mikrocontroller-Designer hätten beim Entwerfen des Chips an Engpässe gedacht und diese minimiert. Ich denke nicht, dass Sie sich darüber Sorgen machen müssen.

Die serielle Schnittstelle wird um Größenordnungen langsamer sein als die parallele Schnittstelle. Über einen Flaschenhals auf dem parallelen Bus kann man sich nicht ernsthaft Sorgen machen und als Alternative eine serielle Schnittstelle in Betracht ziehen.