Forum: Analoge Elektronik und Schaltungstechnik Pinout TSSOP


von D3l T. (d3lta)


Angehängte Dateien:

Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Andreas M. (amesser)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

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

von D3l T. (d3lta)


Lesenswert?

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.

von Felix B. (e-b)


Angehängte Dateien:

Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Felix B. schrieb:
> und überleg dir wie einfach du das mit deiner random D0..D15 Belegung
> hinkriegst?

Da hast du sicher recht.

von Wolfgang (Gast)


Lesenswert?

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.

von Andreas M. (amesser)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

von HildeK (Gast)


Lesenswert?

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.

von D3l T. (d3lta)


Lesenswert?

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
Noch kein Account? Hier anmelden.