Wie kann ich einen Megawin MPC89E52A neu programmieren?

Ich habe ein paar alte Gizmos, die den Mikrocontroller Megawin MPC89E52A verwenden . Ich möchte den vorhandenen Code herunterladen, disassemblieren, meine eigenen Änderungen vornehmen und neu programmieren.

Das Datenblatt scheint ziemlich einfach zu sein, aber es gibt an, dass es "voll kompatibel mit dem Industriestandard-Mikrocontroller der 80C51-Serie" ist. Auf dem Datenblatt steht auch "8K Bytes Flash-Speicher eingebettet für Anwendungsprogramm", was meiner Meinung nach bedeutet, dass es basierend auf dem Googeln, das ich bisher durchgeführt habe, neu programmiert werden kann.

Es gibt eine Reihe von Pins mit den Bezeichnungen R, T, I, G und A, die ich auf RXD, TXD, INT0, RESET und EA zurückgeführt habe. EA wird in dem Blatt als „EA must be keep at low to enable the device to fetch program code from external flash memory“ beschrieben, was vielversprechend klingt.

Ich weiß nichts über 80C51-Teile, außer dass sie alle vorbei sind. Ich gehe davon aus, dass es viele Tools für sie gibt, wenn ich weiß, wo ich suchen muss.

Meine Fragen:

  1. Habe ich mit diesem speziellen Teil eine Chance auf Erfolg?
  2. Wenn ich es nicht umprogrammieren kann, kann ich zumindest den vorhandenen Code herunterladen und wäre es schwierig, einen PIN-kompatiblen Ersatz zu finden? Es ist ein QFP-44
  3. Unter der Annahme, dass eine Umprogrammierung möglich ist, sind die oben genannten Pins die richtigen dafür?
  4. Welche Software-Tools für die Programmierung?
  5. Schließlich, welche Art von Programmierer brauche ich? Hoffentlich ist etwas USB verfügbar, aber ich kann parallel oder seriell arbeiten.

Die vielleicht wichtigste Frage: Wo kann ich am besten nach Informationen dazu suchen?

Nicht genügend Informationen für eine Antwort, aber ich versuche, dasselbe für einen anderen Megawin-Chip zu tun, und habe festgestellt, dass es nicht so einfach ist wie erwartet. Dokumentation fehlt.
@cybergibbons Konnten Sie das vorhandene Programm lesen? Hattet ihr damit Erfolg? Ist es ein Chip der 8052-Familie oder etwas anderes?

Antworten (2)

Was ist dir dieses Patchen dieses Dings wert? Wenn Sie nichts über 8051 wissen, kann dies eine lange und schwierige Aufgabe sein. Wenn Sie den Code zerlegen, erhalten Sie eine Auflistung von Dutzenden von Seiten, auf denen nur die Anweisungen lesbar sind, zumindest für jemanden, der 8051 kennt. Labels und Variablen sind nur leere Zahlen und natürlich auch nicht kommentiert. Wenn die Quelle C anstelle von Assembler war, kann es sogar abstrakter aussehen.

Das Datenblatt ist keine große Hilfe bei der Programmierung. Es erwähnt ISP (In System Programming) und IAP (In Application Programming), aber das ISP-Verfahren scheint das Festlegen von SFRs zu beinhalten, also sieht es so aus, als wäre das auch IAP.

ISP bedeutet, dass Sie von außen Zugriff auf einen Mikrocontroller haben, der auf der Leiterplatte Ihres Produkts montiert ist, um ihn zu programmieren. Alles wird über externe Pins gesteuert.

IAP bedeutet auch, den Mikrocontroller in Ihrem Produkt zu programmieren, aber hier muss der Mikrocontroller eine Softwareprozedur ausführen, um mit der externen Programmierausrüstung zu kommunizieren und den Flash zu programmieren.

Der Controller scheint also einen Programmiercode zu benötigen, um das Gerät neu zu programmieren. Es wird wahrscheinlich den UART dafür verwenden, aber die Programmierfunktion muss in erster Linie in das Gerät programmiert werden, und die meisten kostengünstigen kommerziellen Geräte sind nicht dafür gemacht, umprogrammiert zu werden.

Das Datenblatt sagt nichts über die Programmierung des Geräts auf einem Programmiergerät aus, aber da es 8051-kompatibel ist, ist die Programmierung möglicherweise auch damit kompatibel, und jeder ältere universelle Programmierer kann es möglicherweise programmieren.
Sie müssen es vorsichtig von der Platine entfernen, damit Sie es später wieder einlöten können.

Paults AVR-Alternative könnte eine gute Idee sein. Ich habe sie nie verwendet, um 8051 zu ersetzen, also überprüfen Sie das Datenblatt sorgfältig, Stift für Stift. Pault erwähnt den ATMega162 , und es scheint, dass der ATMega8515 auch 8051-Pin-kompatibel ist. Beachten Sie jedoch, dass in keinem der Datenblätter etwas darüber erwähnt wird.

Vielen Dank, dass Sie sich die Zeit genommen haben zu antworten. Es hört sich so an, als hätte ich Erfolg, wenn ich das Teil entferne, es in einen Programmierer stecke und den Inhalt lese. Kann man sagen, dass 8051-Teile alle gleich gelesen werden? Ich fühle mich mit den Software-Aspekten wohler als mit den Hardware-Sachen.
@mmccoo - Ich denke, es ist sicher anzunehmen, dass Sie einen 8051 auf dem Programmierer auswählen können.

Das Datenblatt besagt, dass es über ISP (In System Programming) programmiert werden kann, was bedeutet, dass Sie es neu programmieren können sollten. Der Code ist möglicherweise gesperrt, sodass Sie ihn nicht lesen können, aber Sie können den Chip löschen und neu programmieren.

Atmel stellt einen Chip her, der kompatibel aussieht - das AT89S52-Datenblatt enthält zahlreiche Informationen zur Programmierung des Chips. Außerdem gibt es Appnotes und viele Informationen von Drittanbietern zur ISP-Programmierung - die Programmier-Pins sind mit MOSI MISO SS und SCK gekennzeichnet, das Kommunikationsprotokoll ist SPI

Atmel stellt auch einen Chip her, der 8051-Pin-kompatibel ist, aber einen viel moderneren und leistungsfähigeren AVR-Kern ausführt - den Atmega162, der wahrscheinlich durch Anpassung der Arduino-Umgebung programmiert werden könnte, wenn Sie die erforderlichen Hardwaredefinitionen bereitstellen - dies ist der Chip, den ich verwenden würde ersetzen Ihr MPC89E52A, aber dann habe ich keine 8051/2-Erfahrung, nur Arduino-Erfahrung.

Sehen Sie sich auch die USBASP-Hardware an, auf der die avrdude-Software zum Programmieren des Chips läuft. Sie können einen USBASP für etwa 4 US-Dollar bei ebay kaufen. Anscheinend kann man mit dem USBASP auch 8051er programmieren

Ich bin mir nicht sicher, ob der ATmega162 mit dem 8051 Pin-kompatibel ist. Ich habe das Datenblatt hier nachgeschlagen und der ATmega hat Vcc an den Pins 6 und 17, während der 8051 GPIO an diesen Stellen hat und der ATmega GND an den Pins 28 und 39 hat während der 8051 an diesen Stellen GPIO hat (beide auf den QFPs). Sie sind ansonsten bemerkenswert konsistent; Es wurde eindeutig versucht, die Fußabdrücke ähnlich zu machen. Der 8051 könnte anstelle eines ATmega verwendet werden, aber (1) das wäre traurig und (2) ich glaube nicht, dass das die Richtung ist, in der das OP einen Ersatz vornehmen wollte.
Danke für die Hinweise. Ich habe immer noch die Hoffnung, dass ich den Controller nicht tauschen muss und die Umprogrammierung irgendwie unterstützt wird. Gut zu wissen über die Möglichkeiten des Arduino-Typs.
Entschuldigung, wenn ich mich bezüglich der 8051-Kompatibilität irre, die Website AVR Freaks hat eine Datenbank, die besagt, dass (8515)[ avrfreaks.net/… Pin-kompatibel mit dem 8051 und (atmega162) [ avrfreaks.net/… Pin-kompatibel ist mit dem 8515