Forum: Mikrocontroller und Digitale Elektronik AT89C51RC2 LED lässt sich nicht treiben


von Florian W. (duensch)


Lesenswert?

Hallo,

ich versuche momentan eine LED an meinem uC zu betreiben. Hierzu habe 
ich die Pins P2.4 und P2.5 mit einem Vorwiderstand und einer LED gegen 
Ground verbunden. Der Widerstand ist mit ca 800 Ohm dimensioniert, damit 
sich bei einer Versorungsspannung von 5 V ungefähr ein Strom von 3-4 mA 
einstellt. Wenn ich testhalber das Ende des Widerstands, welches 
normalerweise mit dem Pin kontaktiert ist auf Vcc hänge, leuchet wie 
erwartet die LED :-)
Wenn der Pin nicht belastet wird, stellt sich auch schön meine 
gewünschte Spannung ein. 5Volt für logisch 1 und 0 Volt für logisch 0.
Sobald ich jedoch die LED an den Pin hänge, bricht die Spannung auf ca 
1,8 Volt ein, es sieht also so aus, als könne der Pin den Strom nicht 
liefern.
Im Datenblatt ist er aber mit 10mA Maximal-Strom für den Pin und 15mA 
für den Port spezifiziert.
Umgekehrt (also LED mit Widerstand fest mit Vcc verbunden und der Pin 
zieht die andere Seite im Leuchtfall auf GND) funktioniert des ganze 
wunderbar. Des bringt mir nur leider nix, weil ich folgende Verschaltung 
realisieren will.
An einem Pin hängt der Vorwiderstand. An diesem Vorwiderstand werden 2 
LEDs mit umgekehrter Durchlassrichtung angeschlossen und die andere 
Seite der LEDs mit dem 2ten Pin. Nun kann ich durch High Schalten von 
Pin1 und Low Schalten von Pin2 die eine LED zu leuchten bringen, durch 
Low Schalten von Pin´1 und High Schalten von Pin2 die andere. (Ist 
eigentlich ein wenig schwachsinnig, aber so sind nun mal die Vorgaben 
vom Kunden).
Kenn jemand eine Möglichkeit, wie ich eine ähnlich Charakteristik 
erreichen kann, unter Verwendung meiner beiden Pins und vielleicht 2 
Transistoren oder ähnlichem?
Ich bin für alle Vorschläge zur Lösung/Klärung des Problems/der Probleme 
dankbar.

Viele Grüße
Florian

von Florian W. (duensch)


Lesenswert?

Hallo nochmal,

hab noch was vergessen. Muss vielleicht noch ein Registereintrag gesetzt 
werden, damit der Ausgang den Strom liefern kann?

Vielen Dank nochmals

von Thorsten (Gast)


Lesenswert?

Ohne externen Treiber wird das wohl nix, da 8051er afaik nur nach GND 
treiben können.

von Falk B. (falk)


Lesenswert?

@ Florian Waitzinger (Firma AEG ID) (duensch)

>Umgekehrt (also LED mit Widerstand fest mit Vcc verbunden und der Pin
>zieht die andere Seite im Leuchtfall auf GND) funktioniert des ganze
>wunderbar.

Logisch, die 8051er haben Open Collector Ausgänge. Siehe 
Ausgangsstufen Logik-ICs.

>Pin1 und Low Schalten von Pin2 die eine LED zu leuchten bringen, durch
>Low Schalten von Pin´1 und High Schalten von Pin2 die andere.

Dafür braucht man Push-Pulll Ausgänge.

> (Ist
>eigentlich ein wenig schwachsinnig, aber so sind nun mal die Vorgaben
>vom Kunden).

>Kenn jemand eine Möglichkeit, wie ich eine ähnlich Charakteristik
>erreichen kann, unter Verwendung meiner beiden Pins und vielleicht 2
>Transistoren oder ähnlichem?

Ja, pack die Ansteuerung in die Software ;-)

Wen denn Hardware sein muss (was vollkommener Nonsens ist), dann muss 
halt ein Push-Pull Treiber her. Ein einfacher 74HC04 ist dein Freund. 
Jeweils zwei davon in Reihe hinter deine Ausgäge und du hast wunderbare, 
nichtinvertierte Push-Pull Ausgänge.

MFG
Falk

von Peter D. (peda)


Lesenswert?

Die 8051 haben nen open-drain Ausgang.

Bei 0-1-Wechsel treiben sie kurz mal 5mA, bei high 500µA und bei Last, 
die auf low zieht, sinds nur noch 50µA.

Im Dunkeln solltest Du die LED glimmen sehen.

Wenn Du die LEDs nicht gegen VCC schalten kannst, brauchst Du nen 
Treiber (74HC04) dahinter.


Peter

von Florian W. (duensch)


Lesenswert?

Vielen Dank für die Tips, ich werde einfach einen 2-Kanal Inverter 
hinter die Ausgänge packen, also jeweils einen pro Kanal. (Mit der 
Invertierung der Signale werd ich fertig :-) )
Hab grad mal ne Fädelversion angeschlossen, geht wie erwartet wunderbar.
Die LEDs haben in der Tat ein klein wenig geleuchtet, aber halt wirklich 
ganz wenig.
Nochmals vielen Dank und bis bald mal wieder

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.