Moin, Ich habe mich heute gefragt, wieso 16bit-Flash wie der Microchip SST39VF1602-70-4I-EKE im TSOP-Gehäuse den Pinout hat, den er hat (siehe Anhang). Also mit den Adressbits geordnet, den Datenbits aber so „verwoben“. Andere Hersteller bauen Flash auch in zumindest ähnlichem Pinout. Gibt es da sowas wie einen „Standard“ (zB von einem alten Baustein), zu dem die alle kompatibel sind? Oder hat es sonst irgendwelche Vorteile, dass die Datenpins nicht in einer Reihe von DQ0 … DQ15, sodern die beiden Bytes abwechselnd „verwoben“ angeordnet sind? Beim Layouten heute fand ich das ganz schön nervig. Macht das die Ansteuerung in anderen Fällen einfacher? Bonusfrage: Muss ich bei dem Flash, wenn ich seine Geschwindigkeit ausreizen möchte, schon darauf achten, dass die Leiterbahnen möglichst gleich lang sind? VG
D3l T. schrieb: > Beim Layouten heute fand ich das ganz schön nervig. Wieso? Da dieser Speicher nicht mal High- und Lowbyte getrennt anwählen kann, ist es doch völlig wurscht, wie die Daten an den Pins anliegen. Kein Mensch verlangt, das D0 auch im Speicher auf D0 liegt. Du kannst also D0-D15 belegen, wie du willst.
Die Reihenfolge der Datenpins spielt doch keine Rolle. Die kann man so Anschließen wie es am besten vom Layout her passt. Solange immer vom selben Mikrocontroller aus gelesen/geschrieben wird, passiert die "Vertauschung" immer gleich. Macht man bei DDR RAM oft genauso. Da würfelt man die Datenleitungen innerhalb einer Select-Gruppe so durcheinander, dass das Layout möglichst platzsparend bleibt. (Der Längenausgleich wird dann einfacher) Nur wenn du mit einem extra Adapter den Flash programmieren willst oder vorprogrammierte Bausteine verwenden willst, muss man dann die Vertauschungen beachten wenn man die Abbilder erzeugt.
Es ist nicht gesagt, dass da nur ein Siliziumplättchen drin ist. Es können genauso gut zwei 8-Bit Speicherbausteine übereinander enthalten sein. Dann wäre das Pinout durch den Bonding-Prozess erforderlich, denn die Bonddrähte dürfen sich ja nicht kreuzen. Es kann auch sein, dass da jetzt nur ein Chip enthalten ist, früher aber zwei übereinander enthalten waren, und um kompatibel zu sein, hat man das Pinout so gelassen. fchk
Matthias S. schrieb: > D3l T. schrieb: >> Beim Layouten heute fand ich das ganz schön nervig. > > Wieso? Da dieser Speicher nicht mal High- und Lowbyte getrennt anwählen > kann, ist es doch völlig wurscht, wie die Daten an den Pins anliegen. > Kein Mensch verlangt, das D0 auch im Speicher auf D0 liegt. Du kannst > also D0-D15 belegen, wie du willst. Da habe ich tatsächlich dran gedacht, es aber verworfen, weil ich irrtümlicherweise dachte, dass man dann Probleme mit den Grenzen der Seiten oder den Befehlen bekommt. Aber da fällt mir gerade auf, dass ersteres nicht stimmt und zweiteres korrigierbar ist. Gut und danke, dass ihr das sagt. ^^ Frank K. schrieb: > Es ist nicht gesagt, dass da nur ein Siliziumplättchen drin ist. Es > können genauso gut zwei 8-Bit Speicherbausteine übereinander enthalten > sein. Dann wäre das Pinout durch den Bonding-Prozess erforderlich, denn > die Bonddrähte dürfen sich ja nicht kreuzen. > > Es kann auch sein, dass da jetzt nur ein Chip enthalten ist, früher aber > zwei übereinander enthalten waren, und um kompatibel zu sein, hat man > das Pinout so gelassen. > > fchk Das klingt sinnvoll.
Matthias S. schrieb: > ist es doch völlig wurscht, wie die Daten an den Pins anliegen. > Kein Mensch verlangt, das D0 auch im Speicher auf D0 liegt. Du kannst > also D0-D15 belegen, wie du willst. Bei einem SRAM mag das ja stimmen und wird wohl oft so gemacht. Bei einem FLASH würde ich die Finger davon lassen! Schau mal ins Datenblatt unter: Table 6: Software Command Sequence, page11 und überleg dir wie einfach du das mit deiner random D0..D15 Belegung hinkriegst? Sicher du kannst das über "Mapper Funktionen" hinbiegen, wird aber aufwendig und Fehleranfällig. SW Treiber für dein FLASH, die du wohl im Internet findest, werden sicher nicht auf Anhieb laufen! Cheers
Felix B. schrieb: > und überleg dir wie einfach du das mit deiner random D0..D15 Belegung > hinkriegst? Da hast du sicher recht.
D3l T. schrieb: > Oder hat es sonst > irgendwelche Vorteile, dass die Datenpins nicht in einer Reihe von DQ0 … > DQ15, sodern die beiden Bytes abwechselnd „verwoben“ angeordnet sind? Low und High Byte sind verschachtelt - passt also prima zu einem 8 Bit Bus, der Low und High byte per Multiplexer sequentiell überträgt.
Felix B. schrieb: > Schau mal ins Datenblatt unter: > Table 6: Software Command Sequence, page11 > und überleg dir wie einfach du das mit deiner random D0..D15 Belegung > hinkriegst? Solange man kein CFI benutzen möchte, sehe ich da nur Konstanten für den Datenbus. Die tauscht man sich einmal statisch zurecht und gut ist. > Sicher du kannst das über "Mapper Funktionen" hinbiegen, wird aber > aufwendig und Fehleranfällig. SW Treiber für dein FLASH, die du wohl im > Internet findest, werden sicher nicht auf Anhieb laufen! Die zwei Kommandos sind schneller selbst implementiert als irgendwelchen Fremdcode zu suchen, runterzuladen, zu prüfen und zu integrieren. Der größte Aufwand ist vermutlich eh die Mikrocontrollerperipherie die den Speicher ansteuert korrekt zu konfigurieren.
Andreas M. schrieb: > sehe ich da nur Konstanten für den Datenbus. Die tauscht man sich einmal > statisch zurecht und gut ist. Wenn man Zugriff auf die Software hat, diese anpassen kann und nicht irgendwie portabel oder kompatibel sein muss, dann könnt eman das machen. Ich würde das aber fett im Schaltplan und noch fetter im Code kommentieren.
Felix B. schrieb: > Bei einem FLASH würde ich die Finger davon lassen! Ja. Sonst hätte der Hersteller des Chips die Pins auch linear bzw. beliebig anders benennen können.
Felix B. schrieb: > Matthias S. schrieb: >> ist es doch völlig wurscht, wie die Daten an den Pins anliegen. >> Kein Mensch verlangt, das D0 auch im Speicher auf D0 liegt. Du kannst >> also D0-D15 belegen, wie du willst. > > Bei einem SRAM mag das ja stimmen und wird wohl oft so gemacht. > > Bei einem FLASH würde ich die Finger davon lassen! > > Schau mal ins Datenblatt unter: > Table 6: Software Command Sequence, page11 > und überleg dir wie einfach du das mit deiner random D0..D15 Belegung > hinkriegst? > > Sicher du kannst das über "Mapper Funktionen" hinbiegen, wird aber > aufwendig und Fehleranfällig. SW Treiber für dein FLASH, die du wohl im > Internet findest, werden sicher nicht auf Anhieb laufen! > > Cheers Das habe ich gesehen und hätte ich tatsächlich per SW zurechtgebogen (kann man ja entsprechend dokumentieren). Inzwischen habe ich das Layout aber auch mit der „richtigen“ Belegung gemacht; da noch Latches im Spiel sind, wurde es eh etwas unschön (auch bei den Leiterbahnlängenunterschieden) (zumindest bei mir als unerfahrener PCB-Designer ;) ). Stichwort External Memory Bus bei einem PIC. Da werden die Adressleitungen über Latches verbunden, um Pins zu sparen. Lothar M. schrieb: > Andreas M. schrieb: >> sehe ich da nur Konstanten für den Datenbus. Die tauscht man sich einmal >> statisch zurecht und gut ist. > Wenn man Zugriff auf die Software hat, diese anpassen kann und nicht > irgendwie portabel oder kompatibel sein muss, dann könnt eman das > machen. Ich würde das aber fett im Schaltplan und noch fetter im Code > kommentieren. Dies SW schreibe ich noch selbst, wäre also kein Problem gewesen. HildeK schrieb: > Felix B. schrieb: >> Bei einem FLASH würde ich die Finger davon lassen! > > Ja. > Sonst hätte der Hersteller des Chips die Pins auch linear bzw. beliebig > anders benennen können. Nicht, wenn er zu irgendwas kompatibel bleiben möchte, zB einem etablierten Pinout.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.