Forum: Mikrocontroller und Digitale Elektronik Mikrokontroller AT89S51/52 Programmieren (flashen)


von Juergen B. (jbaben)


Lesenswert?

Hallo,
ich würde gerne die genannen Mikrokontroller AT89S51/52 (ATMEL bzw. 
Microship)programmieren, bevorzugt über die COM-Schnittstelle mit 
COM/RS232-Adapter (Prolific USB-to-Serial).
Bei dem Programm FLIP (von ATMEL/MICROSHIP) Version 3.4.7 werden diese 
MC's unter Device aber nicht aufgeführt.
Mit welchem Programm kann ich denn die genannten MC's programmieren ?

MfG

Juergen B.

von Ingo W. (uebrig) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo Jürgen,

die AT-89 S?? kann man mit dem Programm "avrdude"
https://www.mikrocontroller.net/articles/AVRDUDE
programmieren. Dies ist zwar primär für die AVRs ausgelegt, da die 89er 
aber auch über SPI programmiert werden, geht das. Folgendes ist zu 
beachten:
Eventuell muss die avrdude-Konfigurationsdatei ergänzt werden (siehe 
Anhang),
Die Polarität des Reset-Signals muss invertiert werden (ein 
PNP-Transistor und 2 Widerstände).
Das Programm unterstützt eine Vielzahl an Programmer-Hardware, wenn du 
es mit einem nackten USB/Seriell-Adapter probieren möchtest, wäre das 
der PonyProg (ponyser). Wobei dies, wenn es überhaupt zuverlässig 
funktioniert doch sehr langsam ist.
Besser wäre es, dir für kleines Geld, einen USB-Tiny oder USBASP 
Programmer zu kaufen.
https://www.ehajo.de/ISP-Stick/200.010

Edit:
Die benötigte Beschaltung für den seriellen Adapter (PonyProg) ist hier:
http://www.lancos.com/siprogsch.html

: Bearbeitet durch User
von Gunnar F. (gufi36)


Lesenswert?

Also ich habe den -ed2 mit Flip programmiert. Kann aber jetzt nicht die 
Version sagen.

von Juergen B. (jbaben)


Lesenswert?

Hallo Gunnar,
der von Dir genannte MC ist ja auch in der Device Liste von Flip 
aufgelistet,
die von mir genannten MC's aber nicht.

Hallo Ingo W.,
vielen Dank für Deine ausführliche Antwort, dazu habe ich noch folgendes 
zu fragen:
1. unter dem genannten Link finde ich keine zip-Datei (nur z.B.tar), ich 
verwende als OS = WINDOWS 10 Pro.
   Ist die genannte Software evtl. ATMEL STUDIO 7 ?

2. kannst Du mir vieleicht auch ein Schaltbild mit den benötigten 
Bauteilen für die Programmierung der genannten MC's zeigen ?

MfG

Juergen B.

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Hallo Jürgen,

hab mir mal die Ablage, hier aus dem verlinkten Artikel angeschaut, da 
wäre die neueste Version für Windows:
http://download.savannah.gnu.org/releases/avrdude/avrdude-6.4-mingw32.zip
In dem Archiv stecken die .exe, 2 dlls und die Konfigurationsdatei, an 
die du
den oben anhängenden Schnipsel anhängen müsstest.
für den Zugriff auf die COM-Schnittstelle dürften auch keine Adminrechte 
erforderlich sein.
Selbst habe ich diesbezüglich unter Windows aber schon lange Nichts mehr 
gemacht.
Zur Schaltung schaue ich mal, ob ich was fertiges finde, sonst krakele 
ich schnell was zusammen....

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Die grundsätzliche Anpassung der RS-232-Pegel an die TTL-Pegel der 
SPI-Schnittstelle ist hier beschrieben:
http://www.dietrich-kindermann.de/ponyprog_2000.html

Die Krakelei mit dem PNP-Inverter für das Resetsignal ist hier:
Beitrag "Re: AT89S52 programmieren klappt nicht"

von Klaus S. (kseege)


Lesenswert?

Ich habe den 89S51 sowohl mit Ponyprog als auch mit avrdude/ArduinoISP 
zu programmieren versucht und habe es im Laufe eines Tages nicht 
hinbekommen. Würde der TO es schaffen, wäre es interessant zu erfahren, 
mit welchen Versionen.

Ich habe mich damals hingesetzt und in einem halben Tag einen Arduino 
Uno zu einem Pinwackler mit 1-Byte-Kommandodecoder gemacht und einen 
halben Tag weiter mit Tcl/Tk auf dem PC ein Programm 
zusammengepfriemelt, das gemäß Datenblatt die passenden Kommandos 
schickt. Das hat einwandfrei funktioniert (Datenblatt korrekt und 
ausreichend!).

Daß bei der 8051-Großfamilie die Polarität des Resets nicht einheitlich 
ist, sollte jeder wissen, der mit 8051 arbeitet. Das kann man bei 
Ponyprog in den Einstellungen vorwählen, hat trotzdem leider nicht 
funktioniert. Bei avrdude erinnere ich mich nur, daß es eine spezielle 
config für 89S51 gab.

Gunnar F. schrieb:
> Also ich habe den -ed2 mit Flip programmiert. Kann aber jetzt nicht die
> Version sagen.

Das wird aber wohl eher der 89C51 gewesen sein, der kann mit Flip 
programmiert werden. 89C51 und 89S51 unterscheiden sich grundlegend in 
der Programmierung.


Gruß Klaus (der soundsovielte)

von Klaus S. (kseege)


Lesenswert?

Da in der Zeit, in der ich den vorherigen Beitrag geschrieben habe, 
einiges als Kommentar aufgelaufen ist, hier noch mal eine kurze 
Klarstellung:

AT89S51 wird wie die AVRs mit der ISP-Schnittstelle MISO/MOSI/SCK/Reset 
programmiert.

Es geht daher nicht wie vom TO gewünscht per UART, egal ob avrdude 
oder Flip.

Es braucht eine Elektronik, die das Bitgewackel MISO/MOSI/SCK/Reset 
erzeugt.

Gruß Klaus (der sounsovielte)

von H. H. (Gast)


Lesenswert?


von Juergen B. (jbaben)


Lesenswert?

Hallo,
nocheinaml vielen Dank für Eure Antworten.
Ich muss also den MC über die ISP-Schnittstelle programmieren.
Den benötigten Adapter USB to ISP (mit den Signalen MOSI, MISO, SCK, 
Reset)muss ich mir noch besorgen.
Das entsprechende Programm (AVRDUDE, PonyProg) muss ich dann testen.

MfG
Juergen B.

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


Lesenswert?

Aus Erfahrung weiss ich, das der originale AVRISP MkII Programmer den 
AT89S52 programmieren kann. Dazu wird STK500.exe benutzt.
Der kommt auch ohne Klimmzüge mit der anderen Resetpolarität klar. Ein 
externer Transistor ist nicht notwendig.
Ob dir das was nützt, kann ich aber nicht beurteilen.

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

Bist Du auf die AT89S51/52 angewiesen? Neuere 8051 können nämlich mit 
USB-seriell Kabel für 5 EUR geflasht werden. Und Debugger J-Link gibt es 
dafür für 10 EUR

https://www.silabs.com/development-tools/mcu/8-bit/bb52-ek2701a-efm8bb52-explorer-kit

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.