Forum: Mikrocontroller und Digitale Elektronik Speichererweiterung des 8051


von kurt (Gast)


Lesenswert?

kann mir jemand mit der speichererweiterung des 8051 oder at89s53
weiterhelfen.
es wäre gut wenn mir jemand einen link oder eine genauere erklärung
geen mit der ich auch etwas anfangen kann da ich mich noch nicht so gut
auskenne.
oder einige programmbeispiele zur programmierung des speichers in C

von Peter Dannegger (Gast)


Lesenswert?

Was meinst Du denn, Code- oder Datenspeicher ?

Nimm doch einfach ein Derivat mit genügen Speicher intern.
Z.B.: P89C668: 64kB Flash, 8kB SRAM


Ansonsten, Speicher wird so angeschlossen, wie im Datenblatt
angegeben.

Und unter C wird er ganz normal angesprochen, d.h. als code oder pdata
/ xdata.
Die CPU erkennt automatisch an der Adresse, ob er über dem internen
Bereich liegt.


Peter

von kurt (Gast)


Lesenswert?

danke für die antwort
das mit dem gnügend internen speicher ist leider hinfällig da ich eine
Facharbeit über Speichererweiterungen schreiben soll

von Dirk Broßwick (Gast)


Lesenswert?

hiho,

du kannst das XRAM erweitern. Dafür stehen die Signale /ALE,/RD und /WR
bereit. Wenn du einen Normalen 80C52 hast, kannst die auch den
Prgrammspeicher und XRAM erweitern. Du kann ihn auch mischen. Dazu muß
t du das /PSEN signal in zusammenspiel mit den anderen signalen
benutzten wenn ich mich recht errinnere. Leider hast du dann das
problem das du keine Programm mehr im interen Flash ablegen kannst,
sondern alles extern mit EEproms und RAMs machen muß, was natürlich
großer mehraufwand ist, aber sich lohnt. Ich selber habe so ein system
schon aufgebaut. Da gabe es dann 8Kbyte fürs EEprom ab 0x0000 für ein
Programm/Kernel und 32Kbyte ab 0x8000 für Programm und Daten. Dort
hatte ich dann ein kleines Betriebssystem in das EEprom gelegt, welches
alle wichtigen Routinen inne hatte, und das eigentlich Programm habe ich
dann einfach nachgeladen per RS232.

CA Dirk

von Thomas Strauß (Gast)


Lesenswert?

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

von peter dannegger (Gast)


Lesenswert?

@Thomas


"Hiermit habe ich beiläufig meinen Hass auf Flash-Controller
rausgelassen!"

Hast Du denn eine Grund dazu und könntest Du den nennen ?


Mir ist es bisher noch nicht gelungen einen IC totzuflashen, 10.000
Zyklen sollten ja auch dicke ausreichen.

Dagegen mag ich keine EPROMs mehr sehen, seit ich Flash kenne und nutze
nur noch Flash.
Schon, daß einem ein externer EPROM 16 Portpins klaut, ist doch ein
riesen Nachteil.


Peter

von Rahul (Gast)


Lesenswert?

Ein weiterer Vorteil von Flash-Controllern ist auch, dass man den
Programmspeicher nicht einfach mit einem handelsüblichen Eprommer dank
Lock-Bits auslesen kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.