mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmierung AT89S51


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: ArduStemmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ingo W. (uebrig)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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).

Autor: Ingo W. (uebrig)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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
Autor: ArduStemmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Herzlichen Dank! MOSI und MISO werde ich finden!

Autor: Georg G. (df2au)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
1 lesenswert
nicht 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:
set prog="C:\xasm\AVR\STK500\Stk500.exe"
%prog% -cUSB -dAT89S52 -e -if%1 -pf -vf
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
Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ArduStemmi (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Herzlichen Dank für Eure hilfreichen Hinweise!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.