RAM satt – Das 4MB-RAM-Modul M035
von Enrico Grämer
In der letzten News gab es schon mal einen kleinen Vorgeschmack mit dem Foto des ersten Prototypen. Viele neue Erkenntnisse gibt es zu dem RAM-Modul nicht mehr, mit einer Ausnahme: Es funktioniert! Leider war die ganze Elektronik nicht mehr in den CPLD 9572 hineinzubekommen. Dafür muss nun der grösste Nicht-SMD-CPLD von Xilinx, der XC95108 mit 108 Macrozellen und 2400 Gattern, herhalten. Dieser übernimmt die gesamte Steuerung der vier 1MB-Module, das Autodetect der SIMMs (dazu später mehr) und die Ansteuerung der beiden 7-Segment-Anzeigen.
Schaltplan: C3 und R26 bilden zusammen ein RC-Glied, um die Flipflops im CPLD beim Einschalten des KCs definiert zurückzusetzen. Das gleiche ist auch auf den Plänen der Original-RAM-Module wieder zu finden.
Die Widerstände R1 bis R11 und R20 bis R25 mit 33 Ohm dienen der Entstörung in sämtlichen Leitungen zu den RAM-Modulen. Durch die kapazitiven Lasten der RAMs kann es bei den Schaltflanken zu Unter- oder Überschwingen der Pegel außerhalb der Betriebsspannung kommen. Ähnliches gilt für die 100 Ohm Widerstände R12 bis R19 und R31 bis R38 in den Datenleitungen. Diese werden durch die Datenleitungen mit deren Wellenwiderstand abgeschlossen (terminiert). Ohne diese Widerstände war das Modul in den höheren Schächten nicht stabil zum Laufen zu bekommen.
Die LEDs zeigen den Schaltzustand der einzelnen Module an: D1 für Modulschacht + 0 bis D4 für Modulschacht + 3. Wer andere LEDs einbauen möchte, muss dabei beachten, dass nur maximal 20 mA pro Anschluss zulässig sind. J2 dient im Bedarfsfall der Programmierung der CPLD entsprechend JTAG-Standard.
Die Pins 1 und 30 der SIMMs sind normalerweise beide für deren Stromversorgung gedacht und auf dem RAM-Modul miteinander verbunden. Im M035 wird Pin 30 dagegen als Detect-Anschluss verwendet. Ist ein SIMM-Modul gesteckt, so wird der jeweilige Detect-Eingang auf +5V gezogen und somit von der CPLD das Vorhandensein des RAM-Moduls erkannt. Die Anzahl der RAM-Module und deren Bestückungsreihenfolge ist beliebig. Ein Strukturbyte wird nur gesendet, wenn das dazu gehörige RAM-Modul gesteckt ist. Gleiches gilt für das Schalten des Moduls.
Wer noch 4MB-SIMMs hat, kann diese auch verwenden. Dazu ist der Jumper J3 zu setzen. Das 4MB-SIMM-Modul (in diesem Fall maximal eins) kann in eine beliebige der vier vorhanden Fassungen gesteckt werden. Die Jumper J4 und J5 sind zum Testen der RAM-Module gedacht. Mit ihnen wird der Refresh auf die Hälfte bzw. ein Viertel ausgedünnt.
Zusätzlich besteht für “Case-Modder“ und Programmierer, die den genauen Schaltzustand der RAMs wissen möchten, die Möglichkeit, zwei 7-Segment-Anzeigen anzuschließen. Die dazu benötigten Bauteile sind nicht im Bausatz enthalten. Es können Anzeigen mit einer Ziffernhöhe von 7...10 mm und gemeinsamer Anode verwendet werden.
Vom Schaltzustand wird die Blocknummer (Bits 2...7 des Modulsteuerwortes als 00h... 3FH) des eingeschalteten 1MB-Teilmoduls mit der höchsten Priorität dargestellt. Ist keines der vier Teilmodule aktiv geschaltet, bleibt die Anzeige dunkel. Der rechte Dezimalpunkt zeigt den gesetzten Schreibschutz des Teilmoduls (invertiertes Bit 1 des Modulsteuerwortes) an. Der linke Dezimalpunkt zeigt an, ob gerade ein Speicherzugriff (Schreiben oder Lesen) in das Modul stattfindet.
Leider waren am CPLD keine 16 freien Anschlüsse mehr verfügbar. Deswegen werden die fertig dekodierten Informationen für die Anzeige seriell (über die Signale SDA und STA) an die beiden Schieberegister U6 und U7 weitergereicht, die diese Daten wieder parallelisieren. Wegen akutem Platzmangel kommen hier SMD-Bauteile zum Einsatz. Das sollte aber kein Problem darstellen, denn wer die Anzeige benötigt, der kann auch mit dem Lötkolben umgehen ;–). Der Wert für die Vorwiderstände R46 bis R61 richtet sich nach den Daten der verwendeten Anzeigen und liegt zwischen 100 und 470 Ohm.
Aufbau: Und nun wird es ernst. Besonders hohe Löterfahrungen werden von den Bauteilen nicht gestellt. Es hat sich aber erwiesen, dass eine bestimmte Reihenfolge bei der Bestückung vieles leichter macht.
Als erstes möchte ich empfehlen, die Kontaktleiste, z.B. mit Sandpapier, anzuschrägen. Dadurch lässt sich später das Modul leichter in den KC stecken. Für die Modulbuchsen im Gerät ist das auch von Vorteil. Dann wird die Fassung für den CPLD bestückt. Dabei ist darauf zu achten, dass die schräge Außenkante rechts oben (siehe Platinenaufdruck) ihren Platz findet. Anschließend geht es mit den Widerständen weiter. Hier habe ich mich aus Platzgründen für die bedrahtete Bauform 0204 entschieden. Diese sind nur ca. 2 mm lang. Die Anschlussdrähte werden kürzestmöglich direkt am Widerstand umgebogen und entsprechend dem Platinenaufdruck bestückt. Genauso geht es mit den restlichen Bauteilen weiter, zuerst die flachen, dann die höheren Bauteile. Als letztes sind also die SIMM-Fassungen und die Elkos dran. Die quadratischen Lötaugen der LEDs kennzeichnen deren Kathode.
Ist alles fertig bestückt, kann nach einer letzten optischen Überprüfung das Modul getestet werden. Hierzu wird es beliebig mit RAM-Modulen bestückt, die aber nicht höher als 15 mm sein dürfen. Im Höchstfall sind 17 mm zulässig, wenn die Plaste des Moduloberteils unter dem Alu-Schild herausgeschnitten wird. Zum Testen von RAM-Modulen haben Frank und Mario ein prima Testprogramm geschrieben (siehe Beitrag zum Programm RAMTEST in dieser Ausgabe). Allerdings dauert es ziemlich lange, das 4MB-Modul komplett zu überprüfen.
Bevor ich es noch vergesse: Meinen herzlichen Dank an Frank und Mario für das Testen des Moduls, besonders an Frank, weil er das Verilog-Programm für den CPLD geschrieben hat. Mittels Schaltplan ist das viel aufwändiger.
Also dann, viel Spass!
Bild 8: Platinenlayout des M035 (oben: Leiterseite, unten: Bestückungsseite).
Bild 9: Bestückungsplan (oben) und Stückliste (unten) des M035.
(volle Größe)
Bild 10: Schaltplan des M035, Teil 1
(volle Größe)
Bild 11: Schaltplan des M035, Teil 2
Bild 12: Aufgebautes M035 (ohne Blockanzeige), bestückt mit vier 1MB-RAM-Modulen.
Bild 7: Clubtreffen 2004: Da steckt viel Handarbeit drin: Blick in den geöffneten Z1013 von Silvio Güldner.
