Hallo alle zusammen,
ich habe meinen Flasher für die Bausteine
AT89S51AT89S52
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
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
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...
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
... 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 !
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 !!
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 !
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
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...
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 ?
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)
@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 ?
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
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":
AT89S51AT89S52
AT89S8253
AT89S4051