Moin, nach langer Zeit habe ich mich hier mal wieder angemeldet, weil die Suchfunktionen diverser Maschinchen mir zwar alle möglichen modernen Controller mit MCS51-Core liefern, aber nichts, was so kompatibel wie möglich zum Urgestein ist. In der Zielanwendung wird ein 8051 mit deaktiviertem ROM betrieben, extern hängt ein 2764 und diverse Peripherie (Latches, Buffer und Timer) am Daten- und decodierten Adressbus. Dass diese Alternativfunktion der Ports mit dem klassischen '373/'573 am gemultiplexten Bus weiterhin funktioniert ist also unerlässlich. Schneller als das Original muss er auf jeden Fall sein, da ich eine interruptbasierte serielle Schnittstelle nachrüsten will. Ein besserer UART mit Empfangsbuffer wäre daher irgendwie toll. Ein zweiter UART wäre noch besser, aber dann wird es nichts mehr mit drop-in. Wäre aber auch nicht schlimm. Ich habe damals als der DS80C320 aktuell war, mal einige Schaltungen re-designed, seitdem habe ich eigentlich nur noch AVR und ARM benutzt. Bei der Zielanwendung ist aber so viel trickreich in MCS51 Code gelöst und es muss nur so wenig ergänzt werden, dass der Aufriss, ein AVR- und ARM-Board in den 8051 Sockel zu adaptieren und den ganzen Code neu zu schreiben etwas drüber wäre. Viele Grüße Stefan
STC89C51... STC12C5A602... oder auch Mikrochip SST89x516...
:
Bearbeitet durch User
Danke schon mal, auf die Typen wäre ich sicher nicht auf Anhieb gekommen. Ich müsste noch mal nachlesen, wie weit man bei denen internes Flash und externen Speicher (am normalen Daten/Adressbus) nutzen kann, beim 8051 war das mit EA=1 ja möglich, intern 4k ROM und extern den Rest das Adressraumes zu nutzen. Allerdings wird es mit einem drop in Ersatz eh schwierig, den bei der Entwicklung in circui zu programmieren, da geht es vermutlich mit dem EPROM-Emulator und der alten Beschaltung schneller
> was so kompatibel wie möglich zum Urgestein ist. > Schneller als das Original muss er auf jeden Fall sein Signetics 8051 33 MHz - 40 Pin Ceramic DIP Pinkompatibel und natuerlich mit Guckloch oben.
Stefan H. schrieb: > Danke schon mal, auf die Typen wäre ich sicher nicht auf Anhieb > gekommen. > Ich müsste noch mal nachlesen, wie weit man bei denen internes Flash und > externen Speicher (am normalen Daten/Adressbus) nutzen kann, beim 8051 > war das mit EA=1 ja möglich, intern 4k ROM und extern den Rest das > Adressraumes zu nutzen. > Allerdings wird es mit einem drop in Ersatz eh schwierig, den bei der > Entwicklung in circui zu programmieren, da geht es vermutlich mit dem > EPROM-Emulator und der alten Beschaltung schneller Das ist alles gar kein Problem. Der interne Programmspeicher ist in jedem Falle ausreichend. Das externe RAM kann weiterhin genutzt werden, wenn es in der Anwendung überhaupt nötig ist. Das in-circuit-programming geht sehr einfach über die serielle Schnitstelle. Die Software dafür gibt es kostenlos im Internet. Ich nutze die o.g. Typen bereits lange.
Stefan H. schrieb: > Schneller als das Original muss er auf jeden Fall sein, da ich eine > interruptbasierte serielle Schnittstelle nachrüsten will. Schneller geht nicht, der externe EPROM bestimmt die Zugriffszeit. Aber Du gewinnst doch schon massig Zeit durch die Umstellung der UART von Polling auf Interrupt. Z.B. die AT89LP51RD2 gibt es noch in DIP40 und können die oberen 32kB nach extern mappen. Im fast Mode wirst Du allerdings keinen EPROM finden, der schnell genug ist. Der interne Flash läßt sich über die UART per Bootloader programmieren.
Und nochmal danke :) Ja, Flash und ISP wäre natürlich schon "nett". Den externen Adressraum brauche ich weniger wegen des RAM (obwohl es akkugepuffert ist, also wohl doch), sondern eher wegen der ganzen I/Os die dort noch über adressierte Register und Buffer realisiert wurden und ca 20 Timer. Beim AT89LP51 würde das externe Mappen der oberen 32k bedeuten, dass ich die Adressdecoder umstricken und entsprechend alle Zugriffe im Code anpassen müsste, die Kröte würde ich wohl schlucken. ISP über UART muss ich mich dann mal einlesen, ich bin halt SPI oder JTAG (oder SWI) zum in circuit flashen gewohnt, und davor war EPROM-Emulator angesagt. Der UART wird zum Glück bisher nur für ein ... hüstel ... Cassetteninterface benutzt, das würde ich vermutlich sowieso opfern und dann nach der Nutzung für die Programmierung den UART für MIDI nutzen (genau, es geht um einen Syntesizer)
Stefan H. schrieb: > Beim AT89LP51 würde das externe Mappen der oberen 32k bedeuten, dass ich > die Adressdecoder umstricken und entsprechend alle Zugriffe im Code > anpassen müsste, die Kröte würde ich wohl schlucken. Das betrifft aber nur den Flash (CODE). Die internen 2kB SRAM kannst Du zur Laufzeit umschalten und so die gesamten 64kB XDATA nach extern mappen.
Moment - habe ich da einen Gedankenfehler? Das Mappen der externen 32k nach dem internen Flash bezieht sich doch nur auf den Programmspeicher, oder? Der Datenspeicher müsste doch identisch zum Ur-51 sein - ich werde dazu mal die beiden genannten ICs anschauen. Wenn der Schaltplan korrekt ist wäre das SRAM auf 0000-0FFF (wobei es nur 2k hat, so dass es vermutlich von 0800-0FFF adressiert wird, da der Bereich 0000-00FF ja intern belegt ist), die Timer irgendwo ab 1000 und die restliche I/O bei 2000. Beim Takt muss ich vermutlich auch vorsichtig sein, weil zB die Tastaturabfrage durch einfaches Adressieren der Tastenmatrix im Speicher erfolgt. Ohne Latch. Einfach 3 Adressleitungen auf einen '138, der steuert die Matrix und die wird dann über einen 244 oder 245 am Datenbus eingelesen.
Peter D. schrieb: > Stefan H. schrieb: >> Beim AT89LP51 würde das externe Mappen der oberen 32k bedeuten, dass ich >> die Adressdecoder umstricken und entsprechend alle Zugriffe im Code >> anpassen müsste, die Kröte würde ich wohl schlucken. > > Das betrifft aber nur den Flash (CODE). Die internen 2kB SRAM kannst Du > zur Laufzeit umschalten und so die gesamten 64kB XDATA nach extern > mappen. Genau, darüber war ich dann auch gestolpert. Perfekt!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.