Forum: Mikrocontroller und Digitale Elektronik ISP-Programmer aus 89C5131


von HavanaClubization .. (havanaclubization)


Lesenswert?

Hallo,

ich bin auf der Suche nach einer Möglichkeit meinen Atmega8 zu 
programmieren, auf jede Menge Varianten gestoßen, von kaufen bis 
Selbstbau oder vorprogrammierte µC's, gestoßen. Da ich keinen Parallel 
Port an meinem Laptop habe, fällt die Möglichkeit flach, ein einfaches 
Kabel zu basteln.
Die Anleitungen die ich gefunden habe, um einen Programmer mit USB 
Anschluss zu bauen, setzten alle einen schon Programmierten µC zur 
Kommunikation zu verwenden.
Jetzt habe ich aber keine AVRs die ich Programmieren könnte, da mir der 
Programmer fehlt. Allerdings habe ich einen 89C5131, der über USB 
Programmiert werden kann.
Ich benötige nur noch eine Software, mit der ich den µC zu einem 
Programmer basteln kann habe aber bisher keine gefunden.
Als weitere Möglichkeit dachte ich, aus dem 89C5131 einen 
Software-basierten Parallel-USB Konverter zu machen, aber auch hier habe 
ich keine Ahnung wie.
Mein wissen in Programmierung ist nicht seht groß, haben in der 
Technikerschule bisher nur Assembler mit dem 89C5131 durch genommen.
Ja, kauf lieber einen, das spart ärger usw. Werde ich auch, wollte die 
Eigenbau-Variante trotzdem mal ausprobieren.

Falls mein Ansatz totaler Müll ist weist mich bitte darauf hin, immerhin 
dient das ganze dazu was zu lernen.

Danke im voraus!

von holger (Gast)


Lesenswert?

>Falls mein Ansatz totaler Müll ist weist mich bitte darauf hin, immerhin
>dient das ganze dazu was zu lernen.

Blödsinn, kauf dir nen AVR Programmer. Das ist das einzige
was du dabei lernen kannst. Schmiedest du auch einen Hammer
selbst statt in den Baumarkt zu gehen, nur um einen Nagel in
die Wand zu hauen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

HavanaClubization .. schrieb:
> Als weitere Möglichkeit dachte ich, aus dem 89C5131 einen
> Software-basierten Parallel-USB Konverter zu machen, aber auch hier habe
> ich keine Ahnung wie.

Wenn Du Dir das wirklich antun willst, um ein paar EUR zu sparen, 
könntest Du Dich am USB2LPT-Projekt von Henrik Haftmann orientieren. Das 
ist ein USB-Parallelport-Adapter, der anders als die üblichen 
USB-Druckerkabel tatsächlich die Hardware eines Parallelports nachahmt. 
Henrik hat für das Ding auch einen Devicetreiber geschrieben, der 
Zugriffe auf den normalen Parallelport abfängt und auf das USB-Ding 
umbiegt.

Funktioniert, ist nur ziemlich langsam. Als Grundlage für den USB-Teil 
hat Henrik verschiedene USB-µCs verwendet, unter anderem den alten 
AN2131 von Anchorchips. Wenn ich mich recht erinnere, ist das auch ein 
MCS51-Derivat, also möglicherweise eine Grundlage für Deinen µC.

Mehr dazu hier:

https://www-user.tu-chemnitz.de/~ygu/bastelecke/PC/USB2LPT/index.de.htm

(hier insbesondere die älteren Versionen ansehen)

: Bearbeitet durch User
von HavanaClubization .. (havanaclubization)


Lesenswert?

Ich sagte doch, ich kauf mir einen.
Ich will es trotzdem halt einfach mal machen, weil es mich interessiert. 
Dabei geht es weder um Geld sparen oder sonst etwas sondern rein um 
Interesse an der ganzen Sache.

Danke Rufus, schau es mir morgen mal an!

von holger (Gast)


Lesenswert?

>Ich will es trotzdem halt einfach mal machen, weil es mich interessiert.

Dann schau in ein AVR Datenblatt im Kapitel
Memory Programming nach. Da steht drin wie man die programmiert.
Schritt für Schritt. Danach schreibst du dir ein eigenes
Programm für deinen uC und eine eigene Software für den PC.
Alles andere dazwischen ist doch nur Code klauen.
Lernen tust du dabei gar nichts. Verstehen auch nicht.

von Peter R. (pnu)


Lesenswert?

Es gibt z.B. USB-Lab.

Eine kleine Platine mit USB-Anschluss. Sie kann man zunächst einmal mit 
eigenen Programmen per USB programmieren und als Programmierobjekt 
verwenden. Zur Verfügung stehen aber auch Programme, mit denen man das 
USB-Lab zu einem Programmiergerät machen kann, das von AVR Studio als 
STK 500
anerkannt wird und jeden atmega8 usw. per ISB-Verbindung programmiert.

Es gibt auch Arduino boards oder clones, die man per USB zum 
Programmiergerät machen kann, das von Studio als STK500 oder dergleichen 
erkannt wird und dann  per ISP einzelne AVR-Kontroller programmieren 
kann.

Aber einfacher ist es, die Bootloader-Lösungen zu verwenden. Da kann 
man das beim Assemblieren entstandene .hex-file per USB an einen 
Kontroller senden, der einen sogenannten bootloader enthält. (AVR 
Kontroller mit U2 oder U4 in der Typenbezeichnung)

theoretisch ist es schon möglich, einen 89C5135 so zu programmieren, 
dass er einen AVR per IS-Verbindung programmieren kann. Als Anfänger 
würde ich mir diese zwar lehrsame Hürde nicht antun, sondern gleich mit 
einem kleinen Übungsboard anfangen (JY-MCU oder Arduino-Versionen) auf 
dem ein bootloader bereits installiert ist.

von Amateur (Gast)


Lesenswert?

Die meisten USB-PLT-Adapter werden sich wohl auf dem Friedhof finden 
lassen.

Aus diesem Grunde würde ich diesen - als jeder noch PLT sprach 
sinnvollen Weg - auch nicht mehr empfehlen.

Selbst das Original kostet kein Vermögen, Clones gibt's für 'nen Appel 
und ein Dingsbums.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Amateur schrieb:
> USB-PLT-Adapter

Schön, wenn Du noch ein TLA erfindest.

von Peter D. (peda)


Lesenswert?

HavanaClubization .. schrieb:
> Als weitere Möglichkeit dachte ich, aus dem 89C5131 einen
> Software-basierten Parallel-USB Konverter zu machen, aber auch hier habe
> ich keine Ahnung wie.

Der AT89C5131 hat UART und SPI. Damit kannst Du ganz einfach einen 
AVR-Programmer basteln. Du mußt Dich nur an das Datenblatt des 
gewünschten AVR halten. Die Eval-Version des Keil C51 sollte ausreichen.
Aber ohne Programmierung geht das natürlich nicht.

von HavanaClubization .. (havanaclubization)


Lesenswert?

> Der AT89C5131 hat UART und SPI. Damit kannst Du ganz einfach einen
> AVR-Programmer basteln. Du mußt Dich nur an das Datenblatt des
> gewünschten AVR halten. Die Eval-Version des Keil C51 sollte ausreichen.
> Aber ohne Programmierung geht das natürlich nicht.

Ist das nicht unabhängig? Im Prinzip ist doch die Software gleich egal 
welchen Prozessor ich oder nicht?  Muss dem Controller ja nur sagen wie 
er die Information vom USB an den Parallel port weiter geben soll?
Haben in der schule ride7 benutzt, hab aber noch andere Programme also 
daran solls nich scheitern. Hatte bisher nur mit A/D Wandler gearbeitet, 
Interrupts und indirekte Adressierung verwendet muss mich also was 
programmieren angeht noch ein bisschen belesen.

von HavanaClubization .. (havanaclubization)


Lesenswert?

Peter D. schrieb:
> HavanaClubization .. schrieb:
> Als weitere Möglichkeit dachte ich, aus dem 89C5131 einen
> Software-basierten Parallel-USB Konverter zu machen, aber auch hier habe
> ich keine Ahnung wie.
>
> Der AT89C5131 hat UART und SPI. Damit kannst Du ganz einfach einen
> AVR-Programmer basteln. Du mußt Dich nur an das Datenblatt des
> gewünschten AVR halten.

Mal so nebenbei...du sagst einfach und an das Datenblatt halten.
Ich weiß ja nicht, vll. stehe ich nur auf dem schlauch, aber ich habe 
gerade immernoch keine Ahnung wie ich anfangen soll.
Fakt ist: ich kann den 89C5131 über flip mit einem Programm versorgen. 
Wenn ich jetzt nicht einen groben Denkfehler mache, braucht der 89C5131 
ein Programm, dass einfach die Daten die über usb reinkommen an den 
atmega über die isp Schnittstelle weiter gibt und ihn somit 
programmiert?
Aber wie lese ich die Daten überhaupt ein?  Wie kommuniziert der uC mit 
dem pc über usb wenn ich nicht im Programmiermodus bin?

Sorry wenn ich so doof frage, aber die Infos im Netz gehen grad nich an 
mich. Habs bestimmt schon gelesen, nur nix mit anzufangen gewusst.
Wie gesagt...bisschen Interrupt von simplen Signalen  (z.b. 
Lichtschranke) und A/D Wandler spielerei mit nem Potti waren das einzige 
was wir in der schule gemacht haben. LEDS blinken lassen, Timer und 
indirekte RAM adressierung. Und das auch nur in assembler. Wollte den 
besagten atmega8 dann anfangen mit c zu programmieren, also es mal 
versuchen.

von Michael K. (Gast)


Lesenswert?

>Ich will es trotzdem halt einfach mal machen, weil es mich interessiert.
Und jetzt sollen wir Dir ausarbeiten wie ?
Komm schon, Du willst ein an sich sinnloses Projekt machen, dann mach DU 
das auch.

von HavanaClubization .. (havanaclubization)


Lesenswert?

Hatte ich gesagt pudert mir den arsch? Glaube nicht! Ob das ganze einen 
Sinn hat oder nicht liegt im Auge des Betrachters.
Wenn du so ein Genie bist/warst das du solche Fragen nicht hattest ist 
das fein, kannst dir auf die Schulter klopfen. Aber lass doch die Leute 
in ruhe, die nicht so super toll sind. Gibt auch Menschen die mehr Hilfe 
brauchen als andere und wenn dir das nicht passt dann beschäftige dich 
doch einfach mit welchen auf deiner Ebene.
Sind Foren etwa nicht dazu gedacht fragen zu stellen?
Ich habe niemand gebeten mir die Arbeit abzunehmen! Lediglich mein 
Problem geschildert bei dem ich nicht weiter weiß und um hilfe gebeten.

: Bearbeitet durch User
von Michael K. (Gast)


Lesenswert?

HavanaClubization .. schrieb:
> Lediglich mein
> Problem geschildert bei dem ich nicht weiter weiß und um hilfe gebeten.

Ruhig brauner, alles wird gut ...
Dein Problem ist das Du bereits beim zerlegen der komplexen 
Gesammtaufgabe in lösbare Teilaufgaben nicht mal einen Ansatzpunkt hast.
Bei Programmierung sind wir da noch lange nicht, eher beim googlen und 
Datenblatt lesen.

Hier muß man bei Adam und Eva anfangen und Dir nicht mal kurz einen 
Schubs in die richtige Richtung geben.

Ich sehe keine Leistung von Dir die mich motiviert das zu honorieren und 
Dir meine Zeit und mein Know How zu schenken.
Bis jetzt hast Du nur Ratschläge ignoriert und bist pampig geworden.
Mehr ist da noch nicht gekommen.

von Peter D. (peda)


Lesenswert?

HavanaClubization .. schrieb:
> Aber wie lese ich die Daten überhaupt ein?  Wie kommuniziert der uC mit
> dem pc über usb wenn ich nicht im Programmiermodus bin?

Du brauchst 2 Programme.
Ein PC-Programm, was die Hex-Datei einliest und in Page-Häppchen an den 
Programmer schickt.
Und dann den Programmer, der mit dem PC kommuniziert, die Daten 
empfängt, den PC warten läßt, bis er ein Kommando ausgeführt hat (Erase, 
Page load, Program Page, Verify, Read, Program Fusebits).

Das PC-Programm kann entfallen, wenn man in den Programmer das STK500 
Protokoll implementiert. D.h. man gaukelt dem AVRStudio vor, man sei ein 
STK500.
Und die UART habe ich deswegen vorgeschlagen, da mir USB zu kompliziert 
ist.

Daß man das nicht mal so eben von heute auf morgen entwickelt, ist 
zumindest mir klar.

von HavanaClubization .. (havanaclubization)


Lesenswert?

Michael K. schrieb:
> HavanaClubization .. schrieb:
>> Lediglich mein
>> Problem geschildert bei dem ich nicht weiter weiß und um hilfe gebeten.
>
> Ruhig brauner, alles wird gut ...
> Dein Problem ist das Du bereits beim zerlegen der komplexen
> Gesammtaufgabe in lösbare Teilaufgaben nicht mal einen Ansatzpunkt hast.
> Bei Programmierung sind wir da noch lange nicht, eher beim googlen und
> Datenblatt lesen.
>
> Hier muß man bei Adam und Eva anfangen und Dir nicht mal kurz einen
> Schubs in die richtige Richtung geben.
>
> Ich sehe keine Leistung von Dir die mich motiviert das zu honorieren und
> Dir meine Zeit und mein Know How zu schenken.
> Bis jetzt hast Du nur Ratschläge ignoriert und bist pampig geworden.
> Mehr ist da noch nicht gekommen.



Ja, mag sein. Kann ich mir auch gut vorstellen, fällt mir immer schwer.
Aber wie kommst du dazu zu behaupten das ich Ratschläge ignoriere? Weil 
ich sage ich wills mal versuchen? Komm schon.

Ja gut, wieso lässt du es dann nicht einfach?
Meinst du ich mache mir keine Gedanken über das was ich an Hilfe 
bekomme?

Ich hab keine Ahnung was du von mir willst, ehrlich. Wenn es dir nicht 
passt das ich seit Thread Eröffnung nicht mehr "geleistet" habe, obwohl 
du sicherlich nicht weist was ich tue, dann ist das eben so.

von HavanaClubization .. (havanaclubization)


Lesenswert?

> Daß man das nicht mal so eben von heute auf morgen entwickelt, ist
> zumindest mir klar.

Danke soweit, schau mir das alles jetzt erstmal in ruhe an.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Es gibt wie so oft mehrere Möglichkeiten, zum Ziel zu kommen.

Eine ist die direkte Entwicklung eines USB-ISP-Adapters.

Der kann USB-seitig entweder das Protokoll eines bereits existierenden 
anderen USB-ISP-Adapters nachbilden, dann lässt er sich mit der 
dazugehörenden Software auf dem PC verwenden,
oder er verwendet ein eigenes Protokoll, dann aber muss auch die 
Software auf dem PC neu geschrieben werden, die dieses Protokoll 
ansteuert.

Ein anderer Ansatz ist die Nachbildung eines Parallelports, wie es der 
Selbstbauadapter von Henrik Haftmann macht. Der funktioniert im Rahmen 
seiner Einschränkungen mit jedem Parallelport-Programmieradapter und der 
dazugehörigen Software.

Die Anpassung der bereits als 8051-Code vorliegenden Software vom AN2131 
auf den hier vorliegenden µC ist vermutlich etwas einfacher als eine 
komplette Neuentwicklung.


Alle Ansätze aber sind Projekte, die eindeutig deutlich jenseits von 
Anfängerprojekten angesiedelt sind.

von HavanaClubization .. (havanaclubization)


Lesenswert?

Danke  Rufus!
Ja, ich habe bei den Recherchen gemerkt,  dass mir noch jede Menge 
fehlt. Habe anfangs gedacht es würde reichen aber gut.
Hat jemand ein Tipp wie ich am besten weiter mache? Also womit ich nun 
anfangen soll? Erstmal C auf die Reihe bekommen oder tiefer in 
Assembler? Oder aber Prozessorachitektur? Ich versuch immer irgendwie 
alles auf einmal und das ist wenig sinnvoll.

von Cyblord -. (cyblord)


Lesenswert?

HavanaClubization .. schrieb:
> Mein wissen in Programmierung ist nicht seht groß, haben in der
> Technikerschule bisher nur Assembler mit dem 89C5131 durch genommen.
> Ja, kauf lieber einen, das spart ärger usw. Werde ich auch, wollte die
> Eigenbau-Variante trotzdem mal ausprobieren.

Des Menschen Wille ist sein Himmelreich...

Aber dann mach doch bitte allein ohne die Allgemeinheit damit zu nerven.
Viele viele andere vor dir (mich inkl.) haben sich schon AVR und PIC 
Programmer selbst gebaut. Einfach so. Ohne Thread. Ohne Forum. Einfach 
aus Zeitschriften und Inet heraus. Warum hast du das nicht gemacht? Ich 
ahne warum.
Mach es oder lass es! Heutzutage lohnt sich der Ärger nicht. Vor allem 
der Ärger für Leute die dir dabei anscheinend helfen sollen.
Ich programmiere alle AVRs seit Jahren mit einem myAVRUSBlight für 15 
Euro. Immer noch mit demselben übrigens. Der Teufel müsste mich holen, 
bevor ich heute nochmal selbst einen Adapter bauen würde. Und ICH könnte 
das, im Gegensatz zu dir.

> Falls mein Ansatz totaler Müll ist weist mich bitte darauf hin
Ist hiermit getan.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Es muß wohl ungeheuren Spaß machen, nach so vielen Jahren immer noch 
jeden Anfänger runter machen zu müssen.
Den Leser aber nervts nur noch.

von HavanaClubization .. (havanaclubization)


Lesenswert?

Cyblord -. schrieb:
> Und ICH könnte das, im Gegensatz zu dir.

Wahnsinn wirklich du musst ja richtig stolz auf dich sein. Wieso 
reagiert ein so toller Mensch wie du dann überhaupt auf sowas? Hast du 
es nötig, obwohl du ja so viel besser bist,  anderen unter die Nase zu 
reiben wie schlecht sie doch sind?
Was ahnst du denn wieso ich es nicht gemacht habe? Bin ich mal richtig 
gespannt.
Vielleicht bin ich in der Sache keine Leuchte so wie manch andere, soll 
ich deswegen aber niemanden um Rat fragen? Wer sich nicht um solchen 
"Schwachsinn" kümmern will, soll es doch einfach lassen. Was ist bei 
euch kaputt das ihr auf anderen herum hackt? Kümmere dich doch lieber um 
dein tolles Talent alles ohne "dumme" fragen in Foren zu bewältigen und 
lass unfähige Menschen eben unfähig sein.

Danke Peter, es gibt wohl auch noch andere Menschen hier.

von Cyblord -. (cyblord)


Lesenswert?

HavanaClubization .. schrieb:
> Cyblord -. schrieb:
>> Und ICH könnte das, im Gegensatz zu dir.
>
> Wahnsinn wirklich du musst ja richtig stolz auf dich sein. Wieso
> reagiert ein so toller Mensch wie du dann überhaupt auf sowas? Hast du
> es nötig, obwohl du ja so viel besser bist,  anderen unter die Nase zu
> reiben wie schlecht sie doch sind?

Krieg dich mal wieder ein und lies den Kontext dieser Aussage. Wenn du 
schon das nicht kannst, ist doch alles verloren.

> Was ahnst du denn wieso ich es nicht gemacht habe? Bin ich mal richtig
> gespannt.
Weil du es nicht kannst. Weil dir alles dafür nötige Wissen von A-Z 
fehlt.

> Vielleicht bin ich in der Sache keine Leuchte so wie manch andere, soll
> ich deswegen aber niemanden um Rat fragen?
Doch. Aber dann nehme den Rat auch an, anstatt wahllos ein Zitat 
rauszupicken und dich künstlich darüber aufzuregen.

> Wer sich nicht um solchen
> "Schwachsinn" kümmern will, soll es doch einfach lassen.
Du wolltest doch Rat. Dir gefällt er nur nicht. Das ist nicht mein 
Problem.
> Was ist bei
> euch kaputt das ihr auf anderen herum hackt?
Wer ist euch?

> lass unfähige Menschen eben unfähig sein.
Dann sollten die unfähigen Menschen keinen Rat in Foren suchen, wenn das 
ihr Ziel ist.

> Danke Peter, es gibt wohl auch noch andere Menschen hier.
Peters Ausführungen sind zwar richtig. Aber wenn du ehrlich bist, helfen 
sie dir konkret überhaupt nicht weiter. Höchstens vielleicht als 
moralische Stütze. Naja.

: Bearbeitet durch User
von Michael K. (Gast)


Lesenswert?

Cyblord -. schrieb:
> Wer ist euch?

Ich, ich, hier, mich meint er ....

Ich finde einen Tritt in den Hintern und die Aufforderung sich mal 
selber zu bewegen oft viel sinnvoller als Händchenhalten und übers Haar 
streicheln.

Ratschläge und Ansätze hat es reichlich gegeben.
Jetzt wäre mal die Zeit für ein wenig Weiterentwicklung, harte Arbeit 
und weniger Tränen wenn es mal einen Buff gibt.

von Ralph S. (jjflash)


Lesenswert?

HavanaClubization .. schrieb:
> Da ich keinen Parallel
> Port an meinem Laptop habe, fällt die Möglichkeit flach, ein einfaches
> Kabel zu basteln.

Mal ganz "dämlich" gefragt: Hast du nirgendwo irgendwo Zugriff auf einen 
"alten" PC mit serieller Schnittstelle (nicht parallel) ???

Wenn ja: eine Linux Live-Distribution und ein AVRDUDE in Verbindung mit 
einem seriellen "ponyser" Kabeladapter ... und du solltest dir einen 
Chip flashen können, aus dem du einen Programmer basteln kannst !

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.