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:
Die vielleicht wichtigste Frage: Wo kann ich am besten nach Informationen dazu suchen?
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.
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
Cybergibbons
mmccoo