Forum: Mikrocontroller und Digitale Elektronik AT89C2051 - nur per parallel programmer?


von Franz W. (Gast)


Lesenswert?

Hallo,

ich hab gerade mächtig sch**** gebaut.
Hab für 9 Euro inkl. Versand 20 von diesen AT89C2051 ersteigert.
Kommen nächste Woche.

Hab gerade gelesen das ich dafür so einen Parallel Port Programmer bauen 
muss. Geht das auch einfacher vielleicht per USBAsp?

Oder kann ich mir in Fernost irgendwo einen billigen Programmer kaufen?

Hab bereits einmal gelitten beim Eigenbau meines AtMEga Programmers...

Grüße
Franz

von Milo (Gast)


Lesenswert?


von Dr. Sommer (Gast)


Lesenswert?

Franz W. schrieb:
> Hab für 9 Euro inkl. Versand 20 von diesen AT89C2051 ersteigert.

Du kaufst einfach so auf Verdacht irgendwelche Controller ohne zu wissen 
was die können? Nach dazu solche uralten Teile die praktisch nichts 
können?

von ... (Gast)


Lesenswert?

> die praktisch nichts können?

Es sind immerhin codeeffiziente 8051.

Manch einer braucht nicht mehr.
Die funktionieren ohne HAL, ohne Java, ohne Quarz.

Das letzte war gelogen.

Und so aufwendig ist die (Parallel-)Programmierung auch nicht.
Bauanleitungen dafür finden sich.

von Milo (Gast)


Lesenswert?

> Nach dazu solche uralten Teile die praktisch nichts
können?

Naja - das stimmt ja nun auch nicht so ganz. 15 I/Os, UART, 2 Timer, 2 
externe Interrupts. Da lässt sich schon so einiges mit tun.

Ich mag die 8051 uC...
und 20 Stück für 9 EUR ist doch toll.

von Marek N. (Gast)


Lesenswert?

Hast du noch nen Rechner mit LPT-Port?
Ich hab letztens noch nen Batronix Programmer für die C2051 gefunden.

von Peter D. (peda)


Lesenswert?

1993 war serielle Programmierung noch nicht Standard. Da war man froh, 
daß es schon Flash war und kein OTP.

Per SPI programmierbar sind:
AT89S2051
AT89S4051
AT89LP2052
AT89LP4052

von Ralph S. (jjflash)


Lesenswert?

"Lustiger" als den 89c2051 zu flashen dürfte sein, ein Programm für ihn 
zu entwickeln.

Will der TO ein Programm schreiben, den Chip in den Programmer tun und 
ihn flashen, aus dem Programmer holen in die Zielschaltung stecken und 
gucken ob es geht?

Wäre sehr mühselig.

Für das Teil hatte ich mal eine Bastelarbeit gemacht, die einen 89S2051 
per SPI geflasht hat und dessen Pins über ein Flachbandkabel in die 
Zielschaltung geführt wurden.

Wenn das Programm fertig war wurde ein 89c2051 im Parallelprogrammer 
geflasht.

Das habe ich solange gemacht, bis mein "Vorrat" an 89c2051 aufgebraucht 
war.

Wenn also der TO nicht über das Equipment verfügt mit dem Chip 
umzugehen, nutzt es ihm auch nichts, wenn er einen Programmer dafür hat.

Das Equipment dafür anzuschaffen (wenn man bisher mit MCS51 nichts 
gemacht hat) wäre teurer als die 9 Euro die er dafür ausgegeben hat.

Als Lehrgeld betrachten, ooooooder:

Du baust dir einen Programmer (mein Programmer ist mit einem 89S52 
realisiert dessen Firmware mit Pascal51 geschrieben war - die einzige 
Firmware, die ich mit Pascal gemacht hatte nur um es auszuprobieren).

Eine schöne "Übung" wäre, mittels einem AVR-Board (gerne auch ein 
Arduino) ein oder zwei Schieberegistern und einer PWM Step-Up Schaltung 
(der 89c2051 braucht 12V Programmierspannung) einen Programmer selbst zu 
bauen.

Ohne es ausprobiert zu haben, könnte für den TO vllt. das hier etwas für 
ihn sein:

http://ceptimus.co.uk/?p=216

von Dr. Sommer (Gast)


Lesenswert?

... schrieb:
> Es sind immerhin codeeffiziente 8051.

Cortex-M3 (Thumb2) ist Code-Effizienter...

... schrieb:
> Die funktionieren ohne HAL, ohne Java, ohne Quarz.

Wie die meisten anderen uC auch.

Milo schrieb:
> Naja - das stimmt ja nun auch nicht so ganz. 15 I/Os, UART, 2 Timer, 2
> externe Interrupts. Da lässt sich schon so einiges mit tun.

Klar, aber ab welcher Stückzahl lohnt es sich preislich, sich mit so 
einem primitiven Ding rumzuschlagen? Ein moderner Cortex-M3 o.ä. mit 
2-Pin-SWD und Debugger ist doch viel komfortabler, selbst wenn man ihn 
nur zu 1% ausnutzt.

von Markus (Gast)


Lesenswert?

@ Franz

Halb so schlimm. Deine AT89C2051 kannst du bei Ebay einstellen und 
kaufst dir vom Erlös Controller, die seriell zu flashen sind.

von Ralph S. (jjflash)


Lesenswert?

Markus schrieb:
> Deine AT89C2051 kannst du bei Ebay einstellen und
> kaufst dir vom Erlös Controller, die seriell zu flashen sind.

Wenn er das hier schreibt:

Franz W. schrieb:
> Geht das auch einfacher vielleicht per USBAsp?

dann sollte er vllt. über einen ATtiny2313 nachdenken, der ist 
Pinkompatibel (der Resetpegel ist allerdings zum AT89c2051 invertiert) 
und kann mit USBasp geflasht werden.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Dr. Sommer schrieb:
> Cortex-M3 (Thumb2) ist Code-Effizienter...

Ich glaub nicht, daß der mit 2kB Flash zurecht kommt, wenns mehr als ne 
Blink-LED sein soll.

Irgendwo hab ich noch C-Code für den AT89C2051 als Frequenzmesser 
rumliegen. Die Berechnungen erfolgen in float, die Ausgabe auf 
7-Segment.
Anbei der Schaltplan.

von Helmut -. (dc3yc)


Lesenswert?

Franz,
hab gerade meinen alten Programmer für 89C1051, 2051 und 4051 (Elektor 
9/2001) aus der Schrottkiste geholt, in die ich ihn letzte Woche gelegt 
hatte. Falls du ihn haben möchtest, würde ich ihn dir für kleinstes Geld 
überlassen. PC-Schnittstelle ist seriell, Programm dazu habe ich auch 
noch!

Servus,
Helmut.

p.s. verwendet habe ich die Dinger, da sie damls wenig Strom 
verbrauchten (war Vor-MSP430-Zeit) und als Ersatzsensoren für 
Wetterstationen im Batteriebetrieb dienten.

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

Peter D. schrieb:
> Ich glaub nicht, daß der mit 2kB Flash zurecht kommt, wenns mehr als ne
> Blink-LED sein soll.

Gar kein Problem. Habe z.B. mal in exakt 2kB einen CAN-Bootloader für 
STM32 (Cortex-M3) geschrieben, inkl. Takt-Konfiguration, 
CAN-Initialisierung, Prüfsummen, Fehlerbehandlung & Wiederholung, Flash 
beschreiben, Ausführung im RAM, Timeouts via Timer, und natürlich 
asynchronen Abläufen (Interrupts).

Irgendwo gab es mal einen schönen Vergleich wie viel platz-effizienter 
Thumb2 als 8051 ist... Ich finde ihn nur nicht mehr!

von Dr. Sommer (Gast)


Lesenswert?

PS: Der 2kB-Bootloader war natürlich in C++ geschrieben... Wie gut geht 
das auf 8051?

von ... (Gast)


Lesenswert?

> C++

Wer will das schon.

Für den 89C2051 gibt es auch ein LC-Meter Projekt.
Da rechnen die auch fleissig mit Floats.
Auch in 2k.

> in exakt 2kB einen CAN-Bootloader

Mein (Tape-)Urlader für den Z80 brauchte so ca. 50 Byte.
Da sind 2kB reine Verschwendung.

von Peter D. (peda)


Lesenswert?

Dr. Sommer schrieb:
> Habe z.B. mal in exakt 2kB einen CAN-Bootloader für
> STM32 (Cortex-M3) geschrieben

Nur das bischen CAN-Controller initialisieren, Puffer auslesen und ein 
paar Flash-API Aufrufe kosten schon so viel?
Ich denke mal, bei einem AT89C51CC03 sollte ein CAN-Bootloader bequem in 
500 Byte passen.

von Dr. Sommer (Gast)


Lesenswert?

... schrieb:
> Wer will das schon.

Leute die mehr als nur Blinker schreiben.

... schrieb:
> Da rechnen die auch fleissig mit Floats.
> Auch in 2k.

Auf dem Cortex-M4 ist eine Float-Multiplikation 2 Bytes... auf dem 8051 
auch?

... schrieb:
> Mein (Tape-)Urlader für den Z80 brauchte so ca. 50 Byte.
> Da sind 2kB reine Verschwendung.
Und was macht der genau?

Peter D. schrieb:
> Nur das bischen CAN-Controller initialisieren, Puffer auslesen und ein
> paar Flash-API Aufrufe kosten schon so viel?
Ja, schließlich ist die Peripherie sehr mächtig und braucht ein paar 
mehr Register.

Peter D. schrieb:
> Ich denke mal, bei einem AT89C51CC03 sollte ein CAN-Bootloader bequem in
> 500 Byte passen.
Aha, zeigen!

von ... (Gast)


Lesenswert?

Bonustipp:

Selbstverändlich entwickelt und testet man Programme für den
kleinen 2051 und 4051 nicht unbedingt auf der Zielhardware.

Stattdessen benutzt man zur Entwicklungszeit einen grösseren 8031/51,
mit Monitorprogramm, RAM und Pin-Adapter.

Der kleine kommt dann dran wenn es fertig ist.

von ... (Gast)


Lesenswert?

> ... schrieb:
> > Wer will das schon.

> Leute die mehr als nur Blinker schreiben.

> ... schrieb:
> > Da rechnen die auch fleissig mit Floats.
> > Auch in 2k.

> Auf dem Cortex-M4 ist eine Float-Multiplikation 2 Bytes... auf dem 8051
> auch?

Aha, für mehr als den Wurstblinker braucht man schon C++.
Interessante These.

Wenn man den 2/4/8051 mit einem FP-Interpreter aufpeppt reicht
unter Umständen sogar 1 Byte um ihn multiplizieren zu lassen.

von Dr. Sommer (Gast)


Lesenswert?

... schrieb:
> Aha, für mehr als den Wurstblinker braucht man schon C++.
> Interessante These.

Es ging nicht um brauchen! Man braucht gar keine höhere 
Programmiersprache. Man kann auch alles in Brainfuck schreiben. Wenn man 
aber irgendwie effizient arbeiten möchte, sind abstrahierende Sprachen 
wie C++ sinnvoll.

... schrieb:
> Wenn man den 2/4/8051 mit einem FP-Interpreter aufpeppt reicht
> unter Umständen sogar 1 Byte um ihn multiplizieren zu lassen.
Der FP-Interpreter ist aber bestimmt nicht 1 Byte groß.

von ... (Gast)


Lesenswert?

> Der FP-Interpreter ist aber bestimmt nicht 1 Byte groß.

Für nicht genutzten Flash bekommt man kein Geld zurück.
Das sollte doch bekannt sein

von Markus (Gast)


Lesenswert?

Helmut -. schrieb:

> Franz,
> hab gerade meinen alten Programmer für 89C1051, 2051 und 4051 (Elektor
> 9/2001) aus der Schrottkiste geholt, in die ich ihn letzte Woche gelegt
> hatte. Falls du ihn haben möchtest, würde ich ihn dir für kleinstes Geld
> überlassen. PC-Schnittstelle ist seriell, Programm dazu habe ich auch
> noch!
>
> Servus,
> Helmut.

Das ist auch eine Lösung für den TO.

@ all

Warum müsst ihr Threads mit euren Kindereien vollmachen?

von Dr. Frühling (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Ein moderner Cortex-M3 o.ä.

... passt nicht in DIL.

@TO: Du bist nicht allein ...
https://hackaday.io/project/29503-arduino-based-at89c2051-programmer

von Franz W. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Franz W. schrieb:
>> Hab für 9 Euro inkl. Versand 20 von diesen AT89C2051 ersteigert.
>
> Du kaufst einfach so auf Verdacht irgendwelche Controller ohne zu wissen
> was die können? Nach dazu solche uralten Teile die praktisch nichts
> können?

Ja,
ich hab auf einer Seite so eine 7 Segment LED Uhr als diy Kit gekauft.
In diesem Kit war dieser Chip.

Ich dachte "Mega cool ein analoger Led Treiber mit Uhr"
Hab erst im Datenblatt gesehen das dass ding was anderes ist...

Grüße
Franz

von Franz W. (Gast)


Lesenswert?

Milo schrieb:
> Den kannst Du z.B. mit einem Galep programmieren (auf ebay manchmal auch
> günstig zu bekommen).
>
> Ansonsten kann das auch der TL866A/CS/II
>
> 
https://www.amazon.de/WINGONEER-TL866II-Hochleistungs-EEPROM-Programmierer-ATMEGA/dp/B07B985LBS/ref=sr_1_fkmr0_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=XGecu+TL866II+Plus&qid=1553836870&s=gateway&sr=8-1-fkmr0

Danke für deine Antwort!
Hilfreich - bei dem Preis würd ich aber auch eine eigenbastel Lösung 
versuchen - hab zwei hier im Forum gefunden.

Grüße
Franz

von Franz W. (Gast)


Lesenswert?

Marek N. schrieb:
> Hast du noch nen Rechner mit LPT-Port?
> Ich hab letztens noch nen Batronix Programmer für die C2051 gefunden.

Ja, hab ich.
Ich schau mal ob ich einen Fertig aufgebuaten Parallelportporgrammer 
irgendwo auf Aliexpress finde...

von Franz W. (Gast)


Lesenswert?

Ralph S. schrieb:
> "Lustiger" als den 89c2051 zu flashen dürfte sein, ein Programm für ihn
> zu entwickeln.
>
> Will der TO ein Programm schreiben, den Chip in den Programmer tun und
> ihn flashen, aus dem Programmer holen in die Zielschaltung stecken und
> gucken ob es geht?
>
> Wäre sehr mühselig.

Hallo,

so mache ich es auch mit meinen AtMega, AtTiny usw.
Was ist daran merkwürdig?
Erst in den Programmer/Flasher dann raus in die auf dem Steckboard 
aufgebaute Zielschaltung und testen.

Ist doch der normale vorgang?

Grüße
Franz

von Michael F. (Gast)


Lesenswert?

Franz W. schrieb:
> Hallo,
>
> so mache ich es auch mit meinen AtMega, AtTiny usw. Was ist daran merkwürdig?
> Erst in den Programmer/Flasher dann raus in die auf dem Steckboard aufgebaute 
Zielschaltung und testen.
>
> Ist doch der normale vorgang?
>
> Grüße
> Franz

Warum das Programm nicht erst simulieren, bevor man es in Hardware 
testet?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Franz W. schrieb:
> Milo schrieb:
>> Den kannst Du z.B. mit einem Galep programmieren (auf ebay manchmal auch
>> günstig zu bekommen).
>>
>> Ansonsten kann das auch der TL866A/CS/II
>>
>>
> 
https://www.amazon.de/WINGONEER-TL866II-Hochleistungs-EEPROM-Programmierer-ATMEGA/dp/B07B985LBS/ref=sr_1_fkmr0_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=XGecu+TL866II+Plus&qid=1553836870&s=gateway&sr=8-1-fkmr0
>
> Danke für deine Antwort!
> Hilfreich - bei dem Preis würd ich aber auch eine eigenbastel Lösung
> versuchen - hab zwei hier im Forum gefunden.
>
> Grüße
> Franz

Kann dir den Programmer auch nur empfehlen, der geht ja auch für viele 
andere Chips.

Lohnt sich auf lange zeit.

von Volker (Gast)


Lesenswert?


von S. R. (svenska)


Lesenswert?

Franz W. schrieb:
> Ist doch der normale vorgang?

Nur, wenn der Chip nicht im System programmierbar ist. Ich habe 
Schaltungen gelochrastert, da ist der Atmega erst eingelötet und dann 
programmiert worfen.

von Route_66 H. (route_66)


Lesenswert?

Franz W. schrieb:
> Ich schau mal ob ich einen Fertig aufgebuaten Parallelportporgrammer
> irgendwo auf Aliexpress finde...

Hier ist einer mit USB-Anschluss. Der kann neben Deinen AT89C2051 noch 
viele andere µCs und auch seriell oder ISP...

SP200 Programmer
https://www.aliexpress.com/i/32881902442.html

Dafür gibt es viele Anbieter. Ich habe einen SP200SE.

: Bearbeitet durch User
von Bimbo. (Gast)


Lesenswert?

Michael F. schrieb:
> Warum das Programm nicht erst simulieren, bevor man es in Hardware
> testet?

Macht kein Mensch für so einen Pups Mikrocontroller.

... schrieb:
> Aha, für mehr als den Wurstblinker braucht man schon C++.
> Interessante These.
>
> Wenn man den 2/4/8051 mit einem FP-Interpreter aufpeppt reicht
> unter Umständen sogar 1 Byte um ihn multiplizieren zu lassen.

Manche werden halt auch in 30 Jahren noch LEDs mit 8051 oder Atmega 
blinken lassen, während es moderne, zeitgleich günstigere und 
benutzerfreundlichere µC gibt - die man via Funk flasht.

Ich würde einen C8051 nur noch für Bestandprojekte verwenden. Bei 
Neuentwicklung niemals, es sei denn der Kunde gibt das vor - dann 
versuchen zu überzeugen, dass das totaler Unsinn ist.

von Holm T. (Gast)


Lesenswert?

Bimbo. schrieb:
> Michael F. schrieb:
>> Warum das Programm nicht erst simulieren, bevor man es in Hardware
>> testet?
>
> Macht kein Mensch für so einen Pups Mikrocontroller.
>
> ... schrieb:
>> Aha, für mehr als den Wurstblinker braucht man schon C++.
>> Interessante These.
>>
>> Wenn man den 2/4/8051 mit einem FP-Interpreter aufpeppt reicht
>> unter Umständen sogar 1 Byte um ihn multiplizieren zu lassen.
>
> Manche werden halt auch in 30 Jahren noch LEDs mit 8051 oder Atmega
> blinken lassen, während es moderne, zeitgleich günstigere und
> benutzerfreundlichere µC gibt - die man via Funk flasht.
>
> Ich würde einen C8051 nur noch für Bestandprojekte verwenden. Bei
> Neuentwicklung niemals, es sei denn der Kunde gibt das vor - dann
> versuchen zu überzeugen, dass das totaler Unsinn ist.

Ok, mag für Dich stimmen, aber nicht für einen Bastler der noch 2 
Stangen von dem Zeug da liegen hat.

Ich habe Ende vorigen Jahres einen Timer auch mit 89C52 gemacht, mehr 
als ausreichend für den Zweck, SDCC als Compiler und tut was es soll.
Mit MC8051IDE gibts auch für unix/linux eine IDE mit Debugger und 
Simulator so das das Progrämmchen auf Anhieb funktionierte, der GALEP IV 
hats gebrannt.

Gleichzeitig hatte ich kommerzielle Entwicklungen mit XMEGA und STM32 
laufen. Wo ist das Problem?

Ich habe auch noch 2 Stangen CY8C26443 herumliegen, di dürfen demnächst 
Quadraturdecoder mit Zähler spielen, auch wenn das noch PSOC1 sind.

Gruß,
Holm

von Helmut -. (dc3yc)


Lesenswert?

Helmut -. schrieb:
> Franz,
> hab gerade meinen alten Programmer für 89C1051, 2051 und 4051 (Elektor
> 9/2001) aus der Schrottkiste geholt, in die ich ihn letzte Woche gelegt
> hatte. Falls du ihn haben möchtest, würde ich ihn dir für kleinstes Geld
> überlassen. PC-Schnittstelle ist seriell, Programm dazu habe ich auch
> noch!
>
> Servus,
> Helmut.
>


@TO: Franz,
wie sieht's mit meinem Angebot aus? Willst du ihn für's Porto oder nicht 
(oder jemand anders)? Morgen kommt er in die Tonne!

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.