Forum: Mikrocontroller und Digitale Elektronik Stand-Alone ISP-Flasher für AT89S über RS232


von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

ich habe meinen Flasher für die Bausteine

AT89S51
AT89S52
AT89S2051
AT89S4051
AT89S8253

fertig gestellt. Das Flashen geschieht nicht über "Bitwackeln" am 
seriellen Port, ein eigener Controller (89C2051) übernimmt das Flashen. 
Dadurch kann der Flasher auch problemlos über einen USB-RS232 Adapter 
betrieben werden.

5 unterschiedliche Adapter habe ich getestet und alle haben 
funktioniert!

Viel Spaß beim Basteln und Ausprobieren

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

... habe ich doch prompt die ZIP-Datei vergessen mit hochzuladen. Sie 
enthält die Firmware des 89C2051 sowie das Windows-Bedienprogramm

Sorry

von Peter D. (peda)


Lesenswert?

Der ULN2004 ist unnötig, der AT89C2051 kann die 330R Pullups direkt 
treiben (bis 20mA).
Der ULN2004 ist außerdem Darlington, d.h. der Low-Pegel ist außerhalb 
des TTL-Standards (low <= 0,4V).

Ich hätte auch gleich noch die AT89LP2052/4052 in die Liste mit 
aufgenommen.


Peter

von Ralph S. (jjflash)


Lesenswert?

Genau das ... war mein erster Ansatz auch, dass der AT89C2051 die 330R 
Pullups direkt kann (kann er auch)... Aaaaaaber: aus mir nicht 
erfindlichen Gründen funktioniert das über das ULN2004 bezüglich 
Störsicherheit dennoch besser (wirklich viele Versuchsreihen gemacht).

Funktionierte auch dann noch, wenn das ISP Kabel 50cm lang war.

Bezüglich Darlingtonschaltung:

Der ULN ist ein Darlingtontransistor (richtig)... aaaaaaaaber.. er 
arbeitet in Emitterschaltung !!!

Die angegebene UCE-Rest Spannung (lt. Datenblatt) beträgt bei 100mA 
typisch 0,9V. Mit 330 Ohm beträgt die der Kollektorstrom ca. 15mA. Für 
diesen deutlich kleineren Strom hüllt sich das Datenblatt in Schweigen. 
Gemessene Spannungswerte für 0-Pegel betragen bei allen (okay es waren 
nur 5 Stck. vorhanden)ULN - Bausteinen 0,15V.

Für diejenigen, die das ohne ULN aufbauen wollen ändere ich die Firmware 
gerne ab (auch wenn ich das für mich nicht machen mag).

Die AT89LP2051 und LP4051 hab ich deshalb nicht in die Liste mit 
aufgenommen, weil ich schlicht keine Exemplare zum testen habe...

von Peter D. (peda)


Lesenswert?

Ralph S. schrieb:
> aus mir nicht
> erfindlichen Gründen funktioniert das über das ULN2004 bezüglich
> Störsicherheit dennoch besser (wirklich viele Versuchsreihen gemacht).

So ein Darlington ist schnarchlahm, dadurch hast Du weniger steile 
Flanken, die übersprechen können.
Besser wären aber Dämpfungswiderstände (50..100R) in Reihe.



Ralph S. schrieb:
> Gemessene Spannungswerte für 0-Pegel betragen bei allen (okay es waren
> nur 5 Stck. vorhanden)ULN - Bausteinen 0,15V.

Das ist technisch unmöglich. Hast Du das wirklich mit 330R Last 
gemessen.
Eine Darlingtonstufe hat als Abfall die Uce_sat des ersten Transistors + 
Ube des 2., also typisch mindestens 0,7...0,9V.

Es sei denn, es gibt ULN2004 mit FET statt Darlington, die könnten 
0,15V.


Peter

von Ralph S. (jjflash)


Lesenswert?

... so, jetzt hab ich das ganze versucht, ohne den ULN in Betrieb zu 
nehmen (mit dann invertierten Leitungen für MOSI, SCK und RES)... von 10 
oder 15 Versuchen einen Baustein zu flashen klappt einer !!!

Ich werde davon ablassen, den ULN ersatzlos zu streichen !

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

So, jetzt leß ich den Thread von Peter...
Wie gesagt, hab ich das ganze ohne ULN versucht, hatte nicht geklappt... 
mein ULN ist ein Standard-ULN.

Jetzt mache ich mein Leben lang schon Elektronik und jetzt seh ich mir 
die Darlington-Innenbeschaltung noch mal gaaaaaaanz genauer an... weil 
es für mich nicht nachvollziehbar ist, warum zum Uce Rest des letzten 
Transistors die Ube des ersten Transistors hinzuzuaddieren ist.

Mal so abgesehen davon, dass die Schaltung ja funktioniert.
Der ULN ist tatsächlich nicht der schnellste, stimmt, aber witzigerweise 
ist die Anstiegszeit (habe ich nicht gemesen sondern nur auf dem Scope 
angeguckt) sichtbar schneller als das, was der AT89C2051 liefert.

----------------------------------------------------------------------

Soooo, jetzt hab ich noch mal nachgesehen gehabt (weil ich mich wider 
besseren Wissens habe beirren lassen, zumal ich erst einen Unterricht 
GEGEBEN hatte bzgl. Transistoren, u. a. über Darlington).

Ich habe das jetzt sogar neu gezeichnet:

In den Bildern zu sehen sind die Ströme und die Spannungen beim 
Darlingtontransistor.

Lt. Kirchhofscher Regel addieren sich Spannungspotenziale (oder anderst: 
Spannungspfeile in gleicher Richtung addieren sich, gegengesetzte ziehen 
sich ab... oder auch anderst: die Summe der rechtsdrehenden Spannungen 
... bla bla bla):

UB teilt sich auf in ... UR1,UBE1,UBE2 => UB= UR1+UBE1+UBE2

Für den Transistor V2 sehen die Spannungspfeile so aus:

UB= UR2+Uce_rest

Die Aussgangsspannung der Darlingtonstufe liegt direkt am Kollektor an 
und der Emitter direkt an Masse => Uout = Uce .. im Falle von logisch 0 
entspricht Uout = Uce_rest_v2 !!

------------------------------------------------------

In der zweiten Zeichnung ist zu sehen, wie "mein" Pull-Up-Widerstand an 
den ULN angekoppelt ist. Nirgendwo liegt etwas zwischen Ausgang und 
Masse als eben besagte Uce_rest !!

von Ralph S. (jjflash)


Lesenswert?

Aaaaaaaaaaaaaaaaaaaaaaaaaber ... nachdem ich mich jetzt so satt mit den 
Darlingtontransistoren auseinander gesetzt habe...

habe ich mir auch überlegt, warum die Flankensteilheit nicht so richtig 
klasse ist, wenn die Controller direkt miteinander gekoppelt sind!

Peter Dannegger schrieb:
> So ein Darlington ist schnarchlahm, dadurch hast Du weniger steile
>
> Flanken, die übersprechen können.
>
> Besser wären aber Dämpfungswiderstände (50..100R) in Reihe.

Natürlich stimmt das und im Falle des ULN stimmt das schon 2 mal, der 
ist uralt!

Also hab ich mir das mit den Dämpfungswiderständen überlegt ... und 
natürlich ausprobiert... schlage mir jetzt mit der flachen Hand gegen 
die Stirn, weil das Ding jetzt auch problemlos ohne ULN funktioniert...

Dankeschön !

von Peter D. (peda)


Lesenswert?

Ralph S. schrieb:
> warum zum Uce Rest des letzten
> Transistors die Ube des ersten Transistors hinzuzuaddieren ist.

Nein, es ist genau umgekehrt!

Die Uce2 kann nicht unter Uce1 + Ube2 sinken, sonst klaut er sich ja 
selber die Basisspannung.

In sämtlichen Datenblättern steht auch U_low typisch 0,9V bei 100mA.


Peter

von E. B. (roquema) Benutzerseite


Lesenswert?

Vielen Dank für die Veröffentlichung!
Ich werd mir das bei Gelegenheit mal genauer ansehen, wenn ich mich mal 
wieder mit C51-Controllern beschäftige. Das Mausgeschubse ist nicht so 
meins...
Nett wär eine Kommandozeilenversion der Steuersoftware, die man aus dem 
Makefile direkt aufrufen kann. Ähnlich avrdude...

von Ralph S. (jjflash)


Lesenswert?

Peter Dannegger schrieb:
> Die Uce2 kann nicht unter Uce1 + Ube2 sinken, sonst klaut er sich ja
>
> selber die Basisspannung.

Okay... auch hier hast du recht ... (und ich hab mich schamlos 
blamiert... passiert ist .... aber ärgert mich dennoch gewaltig)...

Jetzt seh ich mir an, warum das Teil bei (hab ich jetzt auch 
nachgemessen) 14,8mA dennoch 0,18V anzeigt (Mesßgerät ist Fluke45)...

Von der Theorie her hat Peter so sehr recht, dass ich jetzt an der 
Genauigkeit meines Meßinstruments zweifle... Hab ich mir überlegt, ob 
die Vorwiderstände der Darlingtonschaltung ausreichen, V2 ohne V1 zu 
schalten... bin ich echt am Grübeln

By the way: gehört das noch zu diesem Thread ?

von Ralph S. (jjflash)


Lesenswert?

Ema Tronik schrieb:
> wieder mit C51-Controllern beschäftige. Das Mausgeschubse ist nicht so
>
> meins...

Na ja, wenn der Dateiname einmal geladen ist, muß man Fenster nur noch 
"Flashen" drücken ...

> Nett wär eine Kommandozeilenversion der Steuersoftware, die man aus dem
> Makefile direkt aufrufen kann. Ähnlich avrdude...

... Kommandozeilenversion werde ich wohl noch eines erstellen (aber die 
Win-Software war mir jetzt erstmal wichtiger)

von Ralph S. (jjflash)


Lesenswert?

@Peter: solche Dinge lassen mich ja nicht los, jetzt hab ich die 
Innenschaltung des ULN mal diskret aufgebaut, mit den Widerständen 
parallel zu den Basis-Emitter-Strecken. Hmmmm.... diskret aufgebaut 
reichen die Widerstände um den hinteren Transistor der Stufe zu schalten 
OHNE dass der erste Transistor leitend wird. So bekommt wohl der hintere 
Transistor der Darlingtonstufe seinen Basisstrom nicht über die 
Kollektor-Emitterstrecke des ersten Transistors, sondern über Rb=10,5k + 
7,2k (parallel ube1) + 3k (parallel ube2)...

UNGLAUBLICH...

Ich sollte wieder etwas mehr Grundlagen machen !

Soll ich jetzt frustriert nach Hause gehen... oder mich freuen, dass ich 
etwas gelernt habe ?

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Sodele, die Consolenversion des Upload-Programms habe ich jetzt auch 
fertiggestellt, sodaß einem Einbinden in eine IDE nichts im Wege stehen 
sollte !

Syntax:
ISPCON Schnittstelle Aktion Dateiname

Gültige Angaben sind für
        Schnittstelle: COM1, COM2, .. COMx
        Aktion       : wr  = Hex-Datei schreiben
                       rd  = Hex-Datei lesen
                       res = Zielcontroller reseten
                       id  = Controller identifizieren
        Dateiname    : Datei in die oder von der geschrieben / gelesen 
wird

Beispiel: Datei TEST.HEX über COM5 in Controller schreiben

ISPCON com5 wr test.hex

von Matthias K. (matthiask)


Lesenswert?

Ralph S. schrieb:
> ISPCON Schnittstelle Aktion Dateiname

Interessantes Programm.

Wo stellt man den genauen Typ des µC ein?

von Ralph S. (jjflash)


Lesenswert?

Sorry dass ich erst jetzt antworte, ich hatte die Frage wohl nicht 
gesehen!

Das Programm findet den angeschlossenen Controller selbst heraus.

Zu beachten allerdings:

Er unterstützt "nur":

AT89S51
AT89S52
AT89S8253
AT89S4051

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.