Hallo kurt,
die 80C31, 80C32-Controller wie auch die 8031, 8051, 80C51-Controller
kann man erweitern, d.h. man kann den EA-Pin auf Masse legen und hat
dann automatisch Zugriff auf externen Programmspeicher (27512, 27C512,
28C16, 28C256 usw.) sowie auf einen - wenn vorhanden - externen
Datenspeicher(62256, 621024 usw.).
Programm- und Datenspeicher liegen auf dem selben Bus(Daten und
Adreßbus), sind parallelgeschaltet. Der Controller benutzt, wie schon
erläutert wurde, die Signale PSEN, RD und WR zum Unterscheiden des
Programmspeichers und des statischen RAMs/Datenspeichers.
Der Vorteil - man hat 64KB Programm und zusätzlich 64KB Datenspeicher
und natürlich den internen Datenspeicher. Der interne Programmspeicher
ist dann ohne Zugriff. Ein weiterer Vorteil: Wenn das Programm geändert
werden muss, braucht man nur den Eprom/EEprom
auszutauschen/neuzuprogrammieren.
Bei den Flash-Typen hat man das Problem, das die Zyklenzahl begrenzt
ist. Danach ist nicht nur der Programmspeicher hinüber, sondern
zwangsläufig gleich der ganze Chip. (Es sei denn, der hat den Enable
Access-Pin/EA-Pin zum Zugriff auf externe Programmspeicher, was aber
sehr unwahrscheinlich ist!). Hiermit habe ich beiläufig meinen Hass auf
Flash-Controller rausgelassen!
Leider gibt es keine 64KB SRAMs als Datenspeicher bzw. nur als
Spezialtypen. Entweder man nimmt dann den 32KB-SRAM (62256) oder den
nächst größeren 128KB-SRAM. Dann kann man einen Pin zum Memory-Bank
umschalten benutzen, der dann die höchste Adresse des SRAMs schaltet.
Ich habe das alles ausprobiert und es funktioniert auch recht gut. Es
gibt darüberhinaus auch eine Trickschaltung, mit der man das Programm
in den Datenspeicher laden kann und in Verbindung mit dem PC
/serielle Schnittstelle schnell mal ein Programm ausprobieren kann.
Empfehlenswert ist das MCS51-Kochbuch von Roth zu diesem Thema.
Thomas