Anschluss an den Mikrocontroller


Der Speicher wird über einen Daten- und einen Adressbus sowie die Steuerleitungen /OE (output enable, manchmal auch als /RD read enable bezeichnet), /WE (write enable) und /CS (chip select) angeschlossen. Der Datenbus für einen Speicher der Organisation 32k x 8 Bit hat eine Breite von 8 Bit, der Adressbus ist dann 15 Bit breit. Um den Speicher zu aktivieren, muß /CS auf LOW (Masse) gelegt werden. Dies kann verwendet werden, um mehrere Speicher- oder andere Bausteine am selben Bus zu betreiben. Hierbei muß sichergestellt sein, daß jeweils nur ein IC zur gleichen Zeit ein low-aktives /CS-Signal erhält, damit es nicht zum Kurzschluss auf dem Datenbus kommt (siehe Ausgangsstufen Logik-ICs). Ist außer dem Controller nur ein einziges IC an den Bus angeschlossen, kann /CS auch fest mit Masse verbunden und der Speicher somit permanent aktiviert werden. Das /OE-Signal dient hierbei dem Zweck, nach Anlegen einer Adresse am Adressbus den Speicher zum Übertragen eines Datenworts über den Datenbus zu veranlassen (Lesezugriff). Sollen Daten in das SRAM geschrieben werden, legt der Controller die Adresse und dann die Daten an, um den Speicher dann mit einem Low-Signal auf der /WE-Leitung zum Speichern zu bringen.


Die Reihenfolge der einzelnen Daten- und Adresspins am RAM kann nach Belieben variiert werden, wenn dadurch das Layout der Platine vereinfach wird. D.h. D0 des RAMs kann auch an D5 des Controllers gehen. Der Grund dafür ist folgender: Die Daten werden zwar verstreut im RAM gespeichert (Adressleitungen vertauscht) oder in falscher Anordnung im Speicher angelegt (Datenleitungen vertauscht), jedoch kompensiert sich diese Unordnung beim Auslesen wieder. ACHTUNG, das geht nur bei einfachen SRAMs. DRAM oder neuere Speicher nehmen das fix übel, weil die Ansteuerung durcheinander kommt (Adressmultiplexing, Pagemodus, Byteslanes bei DDR-RAM etc.). Bei diesen ICs kann man bestenfalls Datenleitungen tauschen, bei DDR-RAMs nur innerhalb einer Byte-Lane. Prinzipiell sollte man davon aber nur sparsam Gebrauch machen, wenn es dem Layout wirklich hilft.


Ohne Latch

Die einfachste Art einen externen SRAM an den Mikrocontroller anzubinden ist die direkte Verkabelung. Jeder Pin des SRAMs bekommt einen Pin am MC. Jedoch verschwendet diese Anschlußweise auch ziemlich viele IO-Pins. Bei dem nebenstehenden 32-KiBi-RAM verbraucht der Anschluß so 8+15+2 (25) Pins.

Am sinnvollsten verwendet man einen ganzen Port für die acht Datenleitungen, damit man schnell darauf zugreifen kann. Die Adressleitungen A0 bis A7 werden auch möglichst auf einen Port gelegt. An einen dritten Port wiederum werden A8-A14 angeschlossen; /WR und /OE können dann mit zwei weiteren freien Pins verbunden werden. Zusammen belegt diese Methode also 25 Pins für 32 KiBi. Auf diese Weise kann man an praktisch jeden Mikrocontroller einen SRAM anschließen, die Ansteuerung kann dann rein in Software vorgenommen werden. Das ist jedoch relativ aufwendig, in der Anwendung umständlich und langsam. Sinnvollerweise sollte der Mikrocontroller eine eingebaute Speicherschnittstelle haben, um den SRAM per Hardware direkt und schnell ansprechen zu können.


Mit Latch

Will man wertvolle Pins einsparen so benutzt man am besten ein Latch, das die Signale zwischenspeichert. Man kann wählen, ob nur A0-A7 eingespart werden soll, oder gleich alle Adressleitungen. Für den ersten Fall benötigt man ein 8-Bit Latch das ausreichend schnell schalten kann, für den zweiten Fall zwei Latches.

Die Eingänge des Latches werden mit den Datenleitungen des Mikrocontrollers verbunden und das Enable-Signal bekommt einen eigenständigen Pin. Die Einsparungen an Pins geht jedoch auf Kosten der Geschwindigkeit, da zuerst das Latch mit der Adresse geladen werden muß bevor die eigentliche Aktivierung des SRAMs beginnen kann. Bei einem 32-KiB-SRAM werden mit einem Latch nur noch 8+7+3 (18) Pins gebraucht, gegenüber der Variante ohne Latch also eine Einsparung von sieben Pins mit einem Bauteil.

Mit XMEM-Interface

Verbindung zwischen einem AVR und einem 32-KiB-SRAM mit Latch und dem XMEM-Interface


Viele Controller (AVR, 8051) besitzen ein Speicherinterface, das es ermöglicht SRAM anzuschließen und diesen als Erweiterung des internen RAMs zu benutzen. Dieser wird dann mit einem Latch angeschlossen, um Pins zu sparen. Das Enable-Signal des Latch muß mit dem Ausgang ALE (Address Latch Enable) verbunden werden, wie es im Schema gezeigt wird. Nach der Initialisierung des externen Speicherinterfaces steht der Software auch der externe SRAM zu Verfügung.

Als Latch eignen sich folgende Bausteine:

74HCT573 oder 74HCT373 Unterschied in der Pin-Belegung!

Infos aus http://www.mikrocontroller.net

lg

albert