Forum: Mikrocontroller und Digitale Elektronik Programmierung AT89S51


von ArduStemmi (Gast)


Lesenswert?

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.

von Ingo W. (uebrig) Benutzerseite


Angehängte Dateien:

Lesenswert?

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).

von Ingo W. (uebrig) Benutzerseite


Angehängte Dateien:

Lesenswert?

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
von ArduStemmi (Gast)


Lesenswert?

Herzlichen Dank! MOSI und MISO werde ich finden!

von Georg G. (df2au)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von Bernd N (Gast)


Lesenswert?

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

von ArduStemmi (Gast)


Lesenswert?

Herzlichen Dank für Eure hilfreichen Hinweise!

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.