Funkamateur 12/87

 

Speichererweiterung auf 64 KByte
für den Amateurcomputer "AC1"

H. NERSTHEIMER

Durch die rasche Entwicklung der Mikrorechentechnik und der Bauelemente besteht auch für den Elektronikamateur die Möglichkeit, seinen Kleincomputer zu einem attraktiven Arbeitsmittel auszubauen. Dabei ist die Verbesserung des Kleincomputers vor allem hinsichtlich seines Speicherbereichs zu sehen, so daß dann mit größeren BASIC-Programmen gearbeitet werden kann.
Im Beitrag soll eine Speichererweiterung für den Amateurcomputer "AC1" vorgestellt werden. Dabei sollen die dynamischen RAM U 2164 D zum Einsatz kommen. Mit acht Stück U 2164 D läßt sich der volle, adressierbare Speicherbereich der ZVE U 880 D ausnutzen. Lediglich die Adressen des "AC1" von 0000H bis 1FFFH werden durch diese Erweiterung nicht selektiert, da sie bereits durch das Grundmodul belegt sind. Das aber ist kein Verlust von 8 KByte, sondern es ist denkbar, diese 8 KByte später als Hintergrundspeicher zu nutzen.

Der Speicherschaltkreis U 2164 D

Der U 2164 D ist ein dynamischer RAM-Schaltkreis, der zu 64 K x 1 Bit organisiert ist. Für die Wortbreite eines Datenbusses werden also acht Stück dieser IS benötigt. Gegenüber dem dynamischen RAM U 256 D ist der Einsatz unkomplizierter, da nur eine Betriebsspannung von + 5 V erforderlich ist. Es entfallen also Schutzmaßnahmen zur Verhütung von Schaltkreisschäden durch das Fehlen der -5-V-Spannung. Hier einige technische Angaben zum U 2164 D nach [1]:
- dynamischer RAM, Refreshzeit = 2 ms, 128 Refreshzyklen;
- Speicherkapazität 64 Kbit, bitorgan.;
- Zugriffszeit von /RAS ist tRAC = 200 ns;
- Zugriffszeit von /CAS ist tCAC = 115 ns;
- eine Betriebsspannung Ucc = + 5 V;
- Tristate-Ausgangsstufen;
- 16poliges DIL-Gehäuse.
Auf die Arbeitsweise des U 2164 D sei hier nicht weiter eingegangen, sie wurde anhand des U 256 D in [2] ausführlich beschrieben. Unterschiede gibt es hauptsächlich durch den größeren Speicherbereich, ansonsten bestehen viele Ähnlichkeiten zwischen beiden Bausteinen. Wichtig ist, daß entgegen den Gewohnheiten am Pin 8 (Ucc) + 5 V anliegt und am Pin 16 (Uss) Masse. Die Anschlußbelegung ist im Bild 1 dargestellt.

Zum Schaltungskonzept

Ausgangspunkt war die Schaltung in [3]. Der Adreßbereich von 64 KByte wird durch den Dekoder MH 7442 in 8-KByte-Schritte unterteilt. Dadurch ist es möglich, z.B. EPROM-Adressen, die schon im System liegen, auszublenden bzw. einzelne Speicherbereiche abzuschalten. Alle erforderlichen CS-Signale gelangen über Brücken an das NAND-Gatter D 130 D. Nach einer Negation am Gatter D2.3 wird der Treiber DS 8216 D am /OE-Eingang selektiert. Dadurch, daß man Daten eines RAMs sowohl lesen als auch einschreiben muß, erfolgt durch die ZVE eine Umschaltung in den Lesezustand durch /RD = L-Potential, /WR hat H-Potential. Soll geschrieben werden, tauschen die Signale /RD und /WR ihre logischen Zustände, also /RD = H und /WR = L. /RD bestimmt die Richtung des Datentransports der DS 8216 D; so schaltet /RD = L die Speicherausgänge (DO) auf den Datenbus, bei /WR = H wird gelesen. /RD = H legt die Speichereingänge (DI) auf den Datenbus. Wird dann /WR = L, kann ein Schreiben in den Speicher erfolgen.
Das erforderliche /RAS-Signal entsteht durch /MREQ. Um eine zu große Belastung des /MREQ-Signals der ZVE zu vermeiden, verstärken die Gatter D3.1 und D3.2 das Signal, das erst dann an die /RAS-Eingänge der acht U 2164 D gelangt. Da das /CAS-Signal zeitlich später als das /RAS-Signal am U 2164 D liegen muß, wird es aus dem /MREQ über eine Verzögerungskette aus sechs Gattern gewonnen. Am Ausgang des Gatters D1.4 liegt das Multiplexsignal für die zwei Adreßmultiplexer DL 257 D. Der Eingang des Gatters D2.2 erhält das /RFSH-Signal der ZVE U 880 D, um ein ständiges Auffrischen des Speicherinhalts der dRAMs zu gewährleisten. Die Eingänge der DL 257 D sind mit dem Adreßbus verbunden (A0 bis A15).
Es ist besonders darauf zu achten, daß die niederwertigen Adressen nicht vertauscht werden, da es dann nicht zu einem eindeutigen "Refresh" kommt, der Speicher "vergißt" dann. Die Ausgänge sind zur Pegelanpassung über Widerstände von 33 Ω mit den Adressen des U 2164 D verbunden. Die Datenausgänge liegen an den Y-Eingängen bzw. die Dateneingänge an den A-Eingängen des DS 8216 D. Die Ausgänge der Treiber des DS 8216 D (B1 bis B4 sowie B1' bis B4') sind direkt mit dem Datenbus des Rechners verbunden. Wichtig ist es, alle U 2164 D mit einem Kondensator von 100 nF von + 5 V gegen Masse jeweils abzublocken. Diese sollen Störimpulse, die beim Lesen oder Beschreiben der RAMs auftreten, unterdrücken.

Aufbau und Testhinweise

Der Aufbau der Schaltung erfolgte auf einer Universalleiterplatine 170 mm x 95 mm. Sie wurde handverdrahtet und funktioniert problemlos. Alle Anschlüsse des U 2164 D sind bis auf die Dateneingänge (DI) und die Datenausgänge (DO) in gleicher Weise beschaltet. Besonderer Wert ist auf eine saubere und kurze Verdrahtung der Adressen, Daten und Steuersignale der dRAMs zu legen.
Für alle U 2164 D wurden IS-Fassungen eingesetzt, um einmal die Bausteine zu schützen bzw. sie später eventuell durch 256-KByte-RAM-Schaltkreise austauschen zu können. Ein Test des Speichers erfolgt vorab durch mehrmaliges Lesen der Checksumme von 2000H bis FFFFH. Sollte sich zeigen, daß sich diese nach jedem Lesen ändert, müssen die beiden Kondensatoren 1 nF etwas variiert werden. Danach versucht man den Speicher zu beschreiben. Treten dabei Fehler auf, so ist der Schaltungsaufbau nochmals zu überprüfen. Manchmal treten aber auch Fehler durch eine ZVE auf, die als Bastlerschaltkreis erworben wurde. dRAMs fordern ihre Parameter und sind gegenüber Zeitabweichungen bei Impulsen wesentlich kritischer als statische RAMs. Läuft dann alles richtig, sollte man sich etwas Zeit nehmen, um das in [4] beschriebene Testprogramm einzulesen und laufen zu lassen. Hinweise dazu findet man in dem zitierten Beitrag,

Literatur

[1] Kieser/Meder: Mikroprozessortechnik,
VEB Verlag Technik, Berlin 1986, 3. Auflage, S. 260, 265 und 266
[2] Barthels, E.: Ein 32-KByte-RAM für U-880-Mikrorechner,
FUNKAMATEUR 34 (1985), H. 6, S. 306 bis 308
[3] Wolan, M.: 64-KByte-RAM-Baugruppe,
radio-fernsehen-elektronik, 36 (1987), H.1, S.50 und 51
[4] Heyder, F.: Ein Speichertestprogramm für den Amateurcomputer "AC1",
FUNKAMATEUR 35 (1986), H. 12, S. 616 bis 618

44 KByte 134 KByte
Bild 1 Schaltung

Funkamateur 06/88

 

Noch einmal:
Speichererweiterung 64 KByte
für den Amateurcomputer "AC1"

Zum o.g. Artikel in unserem Heft 12/87. S. 615 bis 617, erreichten uns viele Leseranfragen und Zuschriften. Neben einigen notwendigen Korrekturen haben sich viele Leser Gedanken gemacht, wie die Speichererweiterung z.B. auf der 16-KByte-Zusatzspeicherplatine des "AC1" aufzubauen ist. Unser Leser D. Herrmann, Y37WO, stellte uns seine Erfahrungen zur Verfügung.

Aufgrund der Tatsache, daß ich meinen "AC1" mit der 64-KByte-Speichererweiterung aufgerüstet habe und nunmehr erfolgreich testen konnte, möchte ich meine Erfahrungen hierbei auch anderen Lesern mitteilen. In der Schaltung gab es zunächst einige Fehler zu beseitigen. Die Ausgänge DO der dRAM D8 bis D15 müssen an die Eingänge A1 bis A4 von D16 und D17 gelegt werden. Für DIR = L ist als Datenrichtung die von A nach B definiert, d.h., die dRAM werden ausgelesen. Die Eingänge DI der dRAM D8 bis D15 müssen an die Ausgänge Y1 bis Y4 von D16 und D17 gelegt werden. Für DIR = H ist die Datenrichtung von B nach Y definiert, d.h., die dRAM werden beschrieben. Da es sich im genannten Beitrag um eine Erweiterung des "AC1" handelt und auch im Text auf die Ausblendung der ersten 8 KByte verwiesen wird (Grund-RAM/ROM), sind doch im Stromlaufplan alle Ausgänge des MH 7442 beschaltet. Das.führt dazu, daß eben die CPU nur den Grund-RAM-Bereich erkennt. Zur Fehlerbeseitigung ist die Brücke am Pin 9 des MH 7442 zu entfernen. An den Multiplexem D6 und D7 ist die Anschaltung des Adreßbusses zu ändern. Richtig ist folgende Adreß-Reihenfolge (von oben nach unten):
beginnend bei A0
D6 A8, A9, A10, A11
D7 A12, A13, A14, A15
beginnend bei B0
D6 A0, A1, A2, A3
D7 A4, A5, A6, A7
Die Speichererweiterung benutzt folgende Kontakte des Systembusses:
/A13 an A37; /A14 an B38; /A15 an A38; /MREQ an B9; /RFSH an A15; /RD an A8; /WR an A9.

Ergebnisse der Inbetriebnahme und Erprobung

Ich habe die Leiterplatte der 16-KByte-Erweiterung des "AC1" benutzt. Die für die 64-K-Variante zusätzlich notwendigen Bauelemente wurden durch nachträgliches Bohren auf der Bauelementeseite untergebracht und auf der Leiterseite sauber handverdrahtet. Zum Einsatz kamen dRAM des Typs U 2164 C 20, die auf Fassungen sitzen und die jeweils mit 100 nF abgeblockt sind. Nach der Beseitigung der o.g. Fehler funktionierte die Erweiterung sofort. Der "AC1" meldet sich dabei wie gewohnt. Mehrere CRC-Prüfsummenbildungen über Teilbereiche oder den gesamten 64-K-Speicherbereich brachten aber immer wieder Abweichungen. Daraufhin wurde die Stromversorgung auf der Leiterseite durch dickeren Draht vermascht (sowohl masseseitig als auch bei der Betriebsspannung) und durch einen 100-µF-Tantal-Elko nahe den dRAM gestützt. Nun entstanden keine Abweichungen der Prüfsumme mehr. Schließlich habe ich das "AC1"-Speichertestprogramm eingesetzt und damit den Speicher mehrfach auf verschiedenen Speicherbereichen getestet. Lediglich beim Refresh-Test erschienen auf allen Datenbits gemäß Tabelle des Testprogramms die Symbole "R". Dagegen half auch das Verändern der bei den l-nF-Kondensatoren nicht - ich fand bisher noch kein Mittel. Vielleicht konnten andere Leser dazu schon Erfahrungen sammeln. Zum Schluß habe ich schließlich Speicherbereiche von Kassette mit Programmen geladen und diese mehrfach verschoben (T-Befehl) und zur Ausführung gebracht, z.B. Uhrenprogramme. Es wurden keine Fehler festgestellt. Leider stand mir das 8-K- bzw. 12-K-BASIC zum Manuskriptzeitpunkt nicht zur Verfügung. Es stellt nach Aussage von Y21SO die beste Prüfmöglichkeit für eine RAM-Erweiterung dar. Insgesamt ist einzuschätzen, daß der Aufwand für einen 64-K-Speicher im Vergleich zu den 16-K- oder 32-K-Versionen optimal ist. Bleibt abzuwarten, wie störanfällig ein solcher dRAM ist. Alternativen sind jedenfalls schon in Form von CMOS-RAMs in Sicht, die man dann auch batteriegestützt betreiben kann (Basis U 6264 D). Auch sie werden in nicht ferner Zukunft für den Amateur erhältlich sein und dann stellt eine echte RAM-Floppy für den "AC1" kein unerreichbares Ziel mehr dar.