Low High und Pull Up

Gast #1280623
Lesenswert?
• ▲
▼
Guten Abend Ihr,
Ich bin etwas ratlos, da ich jetzt etwas n die Welt der Microkontrolre 
eingestiegen bin jetzt aber noch einige Sachen nicht ganz verstanden 
hab:

1. Den Unterschied zwischen Pull Up und High, da ich soeben erfahren 
hab, dass ich die ganze Zeit für ne LED den Pull Up benutzt hab (PORTB 
|= (1<<PB2);)
Ist das jetzt arg schlimm? Wie mach ichs anderst?

2. Wie aktivier ich den Pull Down, oder wie kann ich den Pull Up wieder 
deaktivieren? Weil wenn ich ne LED jetzt wieder ausschalten will, dann 
muss (da ich ja immer mit den Pulls gearbeitet hab) der Pull Up wieder 
weg sein.

Hoffe ihr könnt mir ein par Steine für meinen Zukünftigen Weg für die 
Microcontroller legen, damit ich dazulernen kann.

Guten Abend noch
Hans
Gast #1280641
Lesenswert?
• ▲
▼
>Hoffe ihr könnt mir ein par Steine für meinen Zukünftigen Weg für die
>Microcontroller legen, damit ich dazulernen kann.
Müsste die man nicht eher wegräumen? :-)

Ganz verstanden habe ich deine Frage nicht. Aber grundsätzlich soviel:
Ein Ausgang besteht entweder aus zwei (komplementären) Transistoren 
(FETs), von denen jeweils einer leitend und der andere gesperrt ist. 
Damit kannst du HIGH und LOW an den Ausgang schalten - ohne Pull 
up/down. Vorteil: sowohl HIGH- als auch LOW-Zustand verbrauchen keinen 
Strom, außer dem Strom, den du außen abnimmst.

Alternativ kann auch der obere Transistor weggelassen werden und statt 
dessen ein Pull-Up (ein Widerstand) aktiviert werden. Wird der untere 
Transistor niederohmig, dann geht der Ausgang auf LOW. Während dieser 
Zeit fließt aber immer Strom durch den unteren Transistor. Der 
Transistor wird mit Open-Collector (-Drain) betrieben. Schaltet man den 
Transistor hochohmig, so wird der Ausgang nach HIGH gezogen - nur eben 
nicht so kräftig wie im komplementären Mode.

Alternativ kann auch der untere Transistor weggelassen werden .... (fast 
wie im letzten Absatz)

Wie du bisher deine LED angeschlossen hattest, kann ich jetzt nur ahnen: 
Pull UP-Mode und eine LED vom Ausgang nach Masse?
Kann man notfalls so machen. Dann wird die LED dadurch ausgeschaltet, 
dass sie mit dem Transistor einfach kurzgeschlossen wird. Es fließt also 
im AUS-Zustand noch mehr Strom als wenn die LED leuchtet. Deshalb wird 
man es eher nicht tun.
Besser ist es hier, den Pull-Up einfach zu vergessen und vom Pin nach 
VCC eine Reihenschaltung aus R und LED zu verwenden.

Die ganz spezifischen Fragen zum µC kann ich dir nicht beantworten.
#1280648
Lesenswert?
• ▲
▼
HildeK schrieb:
> Alternativ kann auch der obere Transistor weggelassen werden und statt
> dessen ein Pull-Up (ein Widerstand) aktiviert werden. Wird der untere
> Transistor niederohmig, dann geht der Ausgang auf LOW. Während dieser
> Zeit fließt aber immer Strom durch den unteren Transistor. Der

Also zumindest beim AVR lässt sich nicht der untere Transistor und 
gleichzeitig der PullUp aktivieren (Wäre ja auch doof). Ist DDRxy 1, 
wird der Pin aktiv nach Vcc, bzw. GND gezogen, ist es 0, steuert PORTxy 
den entsprechenden PullUp. Bei 1 ist der PullUp aktiviert, bei 0 eben 
nicht. Der untere Transistor ist dabei aber immer sperrend.

> Wie du bisher deine LED angeschlossen hattest, kann ich jetzt nur ahnen:
> Pull UP-Mode und eine LED vom Ausgang nach Masse?
> Kann man notfalls so machen. Dann wird die LED dadurch ausgeschaltet,
> dass sie mit dem Transistor einfach kurzgeschlossen wird. Es fließt also
> im AUS-Zustand noch mehr Strom als wenn die LED leuchtet. Deshalb wird
> man es eher nicht tun.
> Besser ist es hier, den Pull-Up einfach zu vergessen und vom Pin nach
> VCC eine Reihenschaltung aus R und LED zu verwenden.

Ich tippe hier eher auf ein Verständnisproblem, wahrscheinlich war alles 
richtig. Nur mit dem PullUp wird die LED schon sehr dunkel. Der hat 
irgendwas um 50-100k, macht bei 5V noch 30-60uA. Bei Low-Current, bzw. 
superhellen LEDs ist das gut sichtbar, aber nicht wirklich hell.
Gast #1280658
Lesenswert?
• ▲
▼
Okay meine LEDS sind alle mit Vorwiderstand an dem Controller und hängen 
an Masse, also wenn ich dann DDRB = 0b11111111; und dann noch PORTB |= 
(1<<PB2); das ist ja dann einfach den Pin auf HIGH ziehen oder? das mit 
dem Ausschalten hab ich schon herrausgefunden aber trozdem danke.

Gute Nacht Hans
Gast #1280670
Lesenswert?
• ▲
▼
@ Philipp Burch (philipp_burch)
>Also zumindest beim AVR lässt sich nicht der untere Transistor und
gleichzeitig der PullUp aktivieren (Wäre ja auch doof).

So doof ist das nicht - wenn der Pull-Up in dem Wertebereich von 
aktuellen Xilinx-Bausteinen ist (<10k), dann ließe sich da schon was mit 
anfangen. I²C arbeitet ja auch auf der Basis.

ich sagte ja:
>Die ganz spezifischen Fragen zum µC kann ich dir nicht beantworten.
zumal der µC nicht mal näher spezifiziert war.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.