Flash EPROM Adapter für den Mikrocontroller Datenbus

 

Um viele Bilder abspeichern zu können reicht schnell der Speicher des Mikocontrollers nicht mehr aus. Der billigste lösch- und beschreibbare Speicher (der dazu noch schnell ist) ist das Flash EPROM. Dieses ist in Größen von 32kByte bis über 8 MByte recht günstig erhältlich. Im 32 poligen DIL Gehäuse ist es nur von 32kByte bis 512kByte erhältlich.
Mit dieser kleinen Erweiterung kann jeder 8051 über lediglich 8 Daten, 10 Adress und 3 Steuerleitungen jedes Flash EPROM bis 16MByte lesen, löschen und beschreiben.
Das Prinzip ist einfach: Da nur 11 Datenleitung zur Verfügung stehen, nimmt man 8 davon, denn mit einem Byte lässt sich in einem 8 Bit Mikrocontroller leichter arbeiten als mit 10 oder 11 Bit. Mit zwei weiteren Adressleitungen steuert man ein 2-zu-4 Dekoder, der die WR\ Signale für den Mikrocontroller oder die beiden Latches erzeugt. Das Prinzip nennt sich Adress Mapping. Dadurch lässt sich ein sehr großer Speicher Seitenweise mit sehr wenigen Adressleitungen lesen. Die Geschwindigkeit ist etwas geringer als mit 19 Leitungen zum Mikrocontroller, da alle 256Bytes zusätzlich die nächste Seitenadresse geschrieben werden muss, aber ich denke kaum, dass dies irgendjemand stört. Immerhin hat man ein sehr kompaktes Modul das an einen universellen Erweiterungsplatz angeschlossen wird.

Der Quellcode dazu:
Die 19 Bit Adresse steht in MSB, ZSB und LSB. Das gelesene Byte steht im Akkumulator. Adresse ist das High Byte der Adresse des Erweiterungsplatzes:

GetFlashByte:
mov dph, #Adresse+2
a=MSB
movx @dptr, a
mov dph, #Adresse+1
a=ZSB
movx, @dptr, a
dph=#Adresse
dpl=LSB
movx a, @dptr
ret

Ein normal verdrahtetes Flash EPROM, das ohne Bus Funktion angeschlossen wäre, könnte man nicht so einfach und schnell lesen und beschreiben.

 

 

Zurück