DRAM - ist die Reihenfolge der Datenpins beim Routing auf der Leiterplatte wichtig?

Kurze Frage: Ich habe SDRAM (SDR) und versuche, es mit uC zu verbinden.

Kann ich Datenbits in beliebiger Reihenfolge von SDRAM zu uC routen? Sie sind also nicht verbunden (d0->d0, d1->d2 ... d15->d15), sondern in beliebiger Reihenfolge (wie d0->d5, d1->d13 usw.)?

Wenn ich das richtig verstehe, sollte es keine Rolle spielen - wenn ich in dieser Reihenfolge schreibe und in derselben lese, sollte es in Ordnung sein. Habe ich recht?

(Ich weiß, dass dies aufgrund von Burst-Lesen, Spalten / Zeilen usw. nicht für den Adressbus gilt).

Ja, es sollte in Ordnung sein.
Es sollte in Ordnung sein, aber ein bisschen verwirrend. Und sehr verwirrend, wenn etwas schief geht und jemand es debuggt. Oder wenn Sie sich entscheiden, etwas anderes Zeug auf diesen Bus zu legen (wie DMA-Controller).
Normalerweise gibt es einen Onboard-Speichercontroller und die Fähigkeit, Datenleitungen neu zuzuordnen, kann begrenzt sein. Es ist wahrscheinlich machbar, fügt aber unnötige Verwirrung und Komplikationen hinzu.
Sofern der RAM-Chip nicht über weniger gebräuchliche Signatur- oder Sperrfunktionen verfügt, für die Sie bestimmte (außerbandige) Signaturdaten schreiben müssen (die so erwartet werden, wie sie im Datenblatt stehen), kann der RAM nicht wissen, was Daten, die Sie eingeben, und so wird dasselbe herauskommen. Das Mischen mit anderen Chips auf dem Bus oder extern vorprogrammierten Chips wird jedoch interessant, da der EPROM-Programmierer eine 1-zu-1-Karte sein wird.
Wenn Sie Flash- oder andere ROM-Geräte anschließen, sollten Sie es sich vielleicht zweimal überlegen, da Sie den Inhalt konvertieren müssten, bevor Sie ihn programmieren.
Vertauschen Sie jedoch nicht die Adresszeilen. Oder wenn Sie wirklich müssen, schreiben Sie den Teil "Load Mode Register" der Initialisierungssequenz neu, um ihn anzupassen ...
Ich denke, Sie müssen die Datenzeilen im Wert von jedem Byte zusammenhalten, da sie von den DQM-Zeilen maskiert werden. Sie könnten also D0 mit D1 bis D7 austauschen, aber nicht D8 bis D15.
@BrianDrummond bringt einen interessanten Punkt zur Sprache. Ich bin mir nicht sicher, was "Load Mode Register" tut, vielleicht tippe ich ungefähr dasselbe: Ich erinnere mich vor vielen Jahren daran, dass nachfolgende (inkrementelle) Lesevorgänge aus dem RAM viel schneller sind als echte wahlfreie Zugriffe. Keine Ahnung, ob das heute noch so ist.
Ich kenne mich mit Adresszeilen (wie ich in meinem ersten Post schrieb) und nachträglichen Readis noch schneller aus. Guter Punkt DoxyLover, ich habe die DQM-Zeilen vergessen. Übrigens, warum gibt es diese DQM-Maskierung? Es verwirrt mich immer. Und was Sie sagen, gilt nicht für SRAM?
Das Modusregister verwendet die Adressbits, um die Burstlänge, eine gewisse interne Verzögerung und (glaube ich) die Takt-DLL zu aktivieren/deaktivieren. Details sind alle im Datenblatt des DRAMs zu finden.
DQM-Leitungen sind die Bytefreigaben für Schreibvorgänge. Wenn der Speicherchip über eine Schnittstelle verfügt, die mehr als 8 Bit breit ist, ermöglichen die DQM-Leitungen die selektive Aktivierung von Schreibvorgängen in Gruppen von 8 Leitungen, sodass Sie Schreibvorgänge von weniger als einer vollen Wortgröße durchführen können, ohne eine Lese-Modifikation durchführen zu müssen. Schreibvorgang.
Danke alex.forencich gestern, das dachte ich, aber ich bin mir unsicherer: Wenn ich immer 16 Bit lesen und schreiben möchte, kann ich diese DQM einfach nicht verwenden?

Antworten (1)

Stellen Sie sicher, dass die Assoziation mit den Byte-Freigaben korrekt bleibt. Es sollte kein Problem geben, Datenleitungen innerhalb jedes Bytes umzuschalten oder die Bytes zu vertauschen, solange Sie die Byte-Aktivierungen im Auge behalten. Es wäre jedoch eine gute Idee, das Datenblatt zu überprüfen, um sicherzustellen, dass es keine seltsamen Anforderungen in Bezug auf Bursts oder den Zugriff auf interne Steuerregister gibt. Außerdem können Sie möglicherweise einige Adresszeilen umschalten, aber Sie sollten die niederwertigen Adresszeilen unvertauscht lassen, damit bei sequentiellen Zugriffen keine Zeitnachteile entstehen. Stellen Sie außerdem sicher, dass Sie keine Adresszeilen vertauschen, die Konfigurationsbefehlen entsprechen, oder verfolgen Sie zumindest, was ausgetauscht wurde, damit Sie den richtigen Befehl an den Chip senden können.