Guten Abend, in der Vergangenheit habe ich ausschließlich Atmegas und XMegas programmiert. Jetzt habe ich mir die Aufgabe gestellt, einen AT89S51 zu programmieren, der als SMD 44 Pin in ein Gerät eingebaut ist. Das Gerät ist zu hübsch, um es auseinanderzureisen, es sind Tasten dran und eine LCD Matrix und ein 9poliger Stecker ist dran, alles in einem hübschen Gehäuse versteckt. Zudem sind auf der Leiterplatte Lötstellen für TxD und RxD sowie SDA und SCL vorhanden. Man sollte das Ding also im eingebauten Zustand programmieren können. Dazu meine Fragen: 1. Was brauche ich für Hardware zur Programmierung? 2. Welche Software kann ich verwenden? 3. Wie kriege ich möglichst aufwandsarm raus, ob sich der Chip überhaupt von außen programmieren lässt? Oder ob er irgendwie verriegelt ist? Noch eine Bemerkung, Der Controller hängt an einem 7,37 MHz Resonator, warum so eine krumme Zahl? Danke für Eure Hilfe.
Die AT89S-Controller werden mit SPI, ähnlich der AVRs programmiert. Lediglich der Reseteingang ist Hi-aktiv. Um ihn mit einem AVR-Programmer zu beschreiben muss also Reset negiert werden, am einfachsten mit einem PNP-Transistor und 2 Widerständen. Wenn AVRDUDE dafür genutzt werden soll, muss die Konfigurationsdatei erweitert werden, im Anhang der Teil für den S52. Gegebenenfalls genügt es, die Signatur in die des S51 zu ändern, wenn man nicht versucht, mehr reinzuschreiben, als in den S51 reinpasst. Das umfangreichere Thema ist, wo das Programm herkommt. Der SDCC soll für die 51er ganz gut sein, ich arbeite selbst dafür aber nur mit Assembler (AS von Alfred Arnold).
ArduStemmi schrieb: > 3. Wie kriege ich möglichst aufwandsarm raus, ob sich der Chip überhaupt > von außen programmieren lässt? Oder ob er irgendwie verriegelt ist? Kleine Ergänzung noch: Die SPI-Signale liegen auf dem PLCC auf folgenden Pins: MOSI P1.5 Pin7 MISO P1.6 Pin8 SCK P1.7 Pin9 Reset Pin10 Die müsstest du also ausklingeln. Verriegelt kann er nur gegen Auslesen sein, Löschen und Neuprogrammieren sollte in jedem Falle möglich sein. Edit: habe mal die Datei angepasst, müsste an die reguläre "avrdude.conf"angehängt werden.
:
Bearbeitet durch User
ArduStemmi schrieb: > Der Controller hängt an einem 7,37 MHz Resonator, > warum so eine krumme Zahl? Mit dieser Frequenz kann man sehr genau die Standard Baudraten erzeugen.
Ingo W. schrieb: > Um ihn mit einem AVR-Programmer > zu beschreiben muss also Reset negiert werden Wenn man einen AVRISP MkII hat, ist das nicht nötig. Der Programmer kommt mit diesem Resetsignal klar, wenn man ihm nur das richtige Device sagt. Hier der Inhalt meines kleinen Batchfiles für Win, auf das man per Drag&Drop ein Hexfile für den 89S52 fallen lässt, um ihn zu programmieren:
1 | set prog="C:\xasm\AVR\STK500\Stk500.exe" |
2 | %prog% -cUSB -dAT89S52 -e -if%1 -pf -vf |
3 | pause |
Als Programmierumgebung hat sich bei mir MIDE51 bewährt. Da gibts den ASEM51 von W.W.Heinz und den SDCC, den ich aber noch nie benutzt habe. http://www.opcube.com/home.html
:
Bearbeitet durch User
Software SDCC ist durchaus recht gut. >> Als Programmierumgebung hat sich bei mir MIDE51 bewährt. Die SDCC Version die mit MIDE51 gepackt ist, ist sehr alt, hier also eine aktuelle Version verwenden. MIDE51 hat keinen Support mehr. Ansonsten den Keil C Compiler (gibts mittlerweile kostenlos). Siehe auch https://www.silabs.com/products/development-tools/software/8-bit-8051-microcontroller-software
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.