Ist die Pin-Reihenfolge für diesen RAM überhaupt wichtig?

11

Ich versuche, einen pic32-Chip an einen 128-kB-SRAM weiterzuleitenChip und es fällt ein bisschen schwer, alle 17 Adressleitungen und alle 8 Datenleitungen miteinander zu verbinden. Ich versuche, die ersten 16 Adresspins mit PortB-Pins 0-15 und die Datenpins mit PortD 0-7 zu verbinden. Nachdem ich eine Weile darüber nachgedacht hatte, wurde mir klar, dass ich mein Leben wahrscheinlich schwieriger mache, indem ich versuche, rb0 mit a0, rb1 mit a1 usw. auszurichten. Alles, was ich wirklich tun möchte, ist, einen 16-Bit-Wert in portB zu schreiben und haben den größten Teil der Adresse geladen und bereit. Wenn ich Pin-Zuweisungen basierend auf der Einfachheit des Routings vornehme, unterscheidet sich die logische Adresse zwischen dem mcu und dem RAM, sollte aber zumindest konsistent sein. Da nichts anderes mit dem RAM kommunizieren muss, denke ich nicht, dass es ein Problem sein wird, wenn das mcu nach der Adresse 0x101 fragt und der RAM ihm die Adresse 0x110 gibt.

Ich frage mich jedoch, ob es eine gute Idee ist. Wenn es eine interne Struktur im RAM gibt, die dazu dient, sequentielle Lesevorgänge effizienter zu gestalten, oder so etwas, dann möchte ich vielleicht die Mühe machen, sie 1: 1 weiterzuleiten. Die Anordnung der Pins auf beiden Chips ist für mich etwas zufällig, so dass es für mich viel einfacher wäre, wenn ich die bestimmten Zahlen ignorieren könnte. Gibt es einen guten Grund, warum ich das tun sollte oder nicht?

captncraig
quelle

Antworten:

12

In diesem Fall erscheint es völlig akzeptabel, Datenbits und Adressbits auszutauschen. Dies ist nicht allgemein der Fall, wie Sie in Ihrer Frage anspielen.

In diesem Fall handelt es sich bei dem Gerät um einen statischen RAM. Ein kurzer Blick durch das AS6C1008-Datenblatt zeigte keine Möglichkeit, schnelle Zugriffe jeglicher Art oder adressbezogene Zeitabhängigkeiten durchzuführen.


Allgemeines:

Einige dynamische Speicher ermöglichen das Platzen von Daten, indem ein hoher Teil der Adresse zwischengespeichert und dann niedrige Adressbits sequenziert werden. Dies kann einer veröffentlichten logischen Zeilen- und Spaltenstruktur oder einem arkanen inneren Mechanismus entsprechen, der äußerlich nicht offensichtlich ist. In solchen Fällen müssen Sie sich an die Angaben im Datenblatt halten, um Speicherfehler zu vermeiden.

Einige frühe dynamische Speicher beruhten auf Adresssequenzierung und Zugriffszeitpunkt, um eine Aktualisierung der Speicherzellen zu erreichen. Es ist heutzutage unwahrscheinlich, dass Sie viele davon treffen.

Einige Speicher (Flash, Eerom, andere) haben Lebensdauern, die von der Anzahl der Zugriffe abhängen, die pro Zugriff (Lesen oder Schreiben) oder üblicherweise nur pro Schreibvorgang und möglicherweise pro Speicherort oder pro Teilmenge von Speicherzellen erfolgen können . Im letzteren Fall können Sie beim Verwürfeln von Adressleitungen die Algorithmen für den Verschleißausgleich stören. Dies wird nur bei ziemlich speziellen Geräten ein potenzielles Problem sein, und Datenblätter können in Bezug auf die Anforderungen hinreichend klar sein

Russell McMahon
quelle
+1 für das Qualifikationsmerkmal "In diesem Fall" und Erklärung, wann dies möglicherweise nicht der Fall ist.
SplinterReality
5

Nein, Reihenfolge spielt keine Rolle. Adressleitungen können in beliebiger Reihenfolge sein, ebenso wie Datenleitungen.

mikeselectricstuff
quelle