Pullups - Bedeutung

OP #215363
Lesenswert?

Hi, kann mir jemand erklären was es genau mit Pullup und PullDown
Widerständen aufsich hat?

Bisher denke ich, daß es sich so verhält:

Ein Pullup Widerstand wird dann benötigt, wenn ein I/O Port als Eingang
geschaltet ist. Wenn nun das Signal High, dh. eine Spannung, angelegt
wird muss diese irgendwo abfallen, am Pullup, da es sonst zu einem
Kurzschluss kommt. Ein Pullup ist immer sehr groß.


Sind die I/O Ports also standardmässig mit Masse verbunden, und wenn
ich einen PullDown brauche andersherum?

Dankend klärende Worte :-)
Gast #215366
Lesenswert?

PullUps brauchst du, wenn dein Signalgeber den Pegel nur auf Low, nicht
aber selbstständig auf High ziehen kann (bei Optokopplern brauchst du
das beispielsweise). PullDowns musst du dementsprechend einsetzen, wenn
der Signalgeber nur auf High ziehen kann, sonst aber der Ausgang
undefiniert ist (z.B. auch bei Optokopplern möglich).

Aber auch, wenn du einen Pin als Ausgang verwendest, solltest du je
nach Ruhepegel PullUps oder PullDowns einsetzen. Sonst kann auch der
undefinierte Zustand eintreten, wenn der Pin noch nicht als Ausgang
definiert wurde.

Wenn das nicht so stimmt, korrigiert mich bitte.

gruß
see4far
Gast #215367
Lesenswert?

Nein, ganz so ist es nicht.

Es gibt mehrere Anwendungen für Pullup oder Pulldown. Allen gemeinsam
ist, das irgendwoher ein Signal kommt das zwei Zustände annehmen kann.

Zustand A: Das Signal ist z.B. über einen Bipolaren Transistor oder FET
mit der positiven Spannungsversorgung oder Masse verbunden.
Beispielsweise eine aktiver Open-Collector-Ausgang

Zustand B: Das Signal ist mit "nichts" verbunden, also weder mit der
positiven Spannungsversorgung noch mit der Masse. Das Signal
"floatet", z.B. ein inaktiver Open-Collector-Ausgang.

Und um genau den Zustand B zu vermeiden, verwendet man ein Pullup oder
ein Pulldown.

Ähnlich wie der Zustand B ist die Anwendung, bei der man einen
hochohmigen Signaleingang niederohmiger machen möchte. Das macht man,
um den Eingang unempfindlicher gegenüber Störungen zu machen,
insbesonders wenn der Eingang mit einer längeren Leitung verbunden ist.
Also wenn der Eingang nicht mit einem Ausgang eines anderen ICs auf der
gleichen Platine verbunden ist, sondern z.B. mit 20cm Kabel mit einem
Taster in der Frontplatte oder so.
#215368
Lesenswert?

hmm,
bedeutet das dann, dass ich theoretisch drei ausgangszustände habe also
an einem out port mit der entsprechenden beschaltung z.b. drei
leuchtdioden leuchten lassen kann. also z.b. wenn ausgang
mit masse verbunden > led1
mit +5V > led2
und mit keinem von beidem > led3

oder ist das schaltungstechnisch nicht zu realisieren weil der zustand
eben "undefiniert" ist ?
Gast #215369
Lesenswert?

Ganz unabhängig von irgendwelchen PullUps/Downs würde ich sagen, dass du
an einem PIN nur 2 Zustände hast (0 oder 1 bzw. GND oder VCC). Damit
kannst du halt ohne weitere Beschaltung auch erstmal nur 2 LEDs mit
unterschiedlichem Zustand haben. Der Zustand der einen ist damit
natürlich auch gleich der invertierte der anderen. Du musst natürlich
hier auch PIN von PORT unterscheiden. Ein Port ist eigentlich 8 Bit
breit (bei einem 8bit-Controller). Jedes Bit ist für einen Pin
zuständig (sofern alle herausgeführt sind).
Gast #215374
Lesenswert?

Hallo,

nein man hat nur 2 Zustände, entweder High oder Low. Allerdings gibt es
einen Bereich in dem man nicht weiß als was es der AVR erkennt, bzw
wechselt erkennt er es in dem Bereich mal als High mal als Low.
Hauptsächlich ist das von der Versorgungsspannung und leicht von der
Temp. abhängig.

Man kann eigentlich ganz grob sagen bei 5V ist Low bis 1,5V und High ab
2,0V dazwischen weiß man halt nicht was der AVR drauß macht, desween
benutzt man einen Wiederstand(Pulldown) der entweder das Signal schwach
belastet (also auf Masse zieht) oder einen Pullup der    das Signal auf
der Leitung etwas anhebt.

Ich bevorzuge pullwowns denn wenn eine Leitung als Antenne wirkt geht
sie eher Richtung 1 also belaste ich die Leitung etwas mit dem Pulldown
und man hat auch sicher 0 statt 1.

Der Tristate Zustand stellt den Port auf hochohmig so das dieser die
restliche Schaltung nicht belastet so kann sich der Port praktisch
unsichtbar schalten.
#215375
Lesenswert?

@Thomas O.:
Tristate heißt doch soviel wie 3. Zustand. Wenn man will, dann kann man
eine Schaltung aufbauen, die z.B. je eine LED bei Low, High und Tristate
ansteuert.

Normalerweise macht man das natürlich nicht so, aber prinzipiell geht
es und in manchen (wenigen) Fällen ist das sogar sinnvoll.

Markus
Gast #215378
Lesenswert?

Hallo,

ja genau. Angenommen es werden 2V an den AVR gegeben was ja High sein
soll, durch Leitungswiederstände usw. fällt das z.b. etwas ab und durch
den Pullup wird sowas wieder ausgeglichen. Der Wiederstand des Pullup
darf nur nicht zu klein sein sonst, tut er sogar 0V auf 2V anheben und
der AVR intepretiert das als High.

Aber von 0-2V hat man halt weniger Spielraum als von 2-5V, also kann
man mit einem Pulldown weniger "kaputtmachen". Also selbst wenn 2
Volt abfallen dann bleiben noch 3 Volt ürig was eindeutig High ist.
Gast #215379
Lesenswert?

Tobias:

Lass dich nicht vom Tristate-Gerede verwirren ;)

Ein Pullup Widerstand ist einfach ein R irgendwo im Kiloohm-Bereich,
welcher zwischen den Pin und VCC geklemmt wird, ein Pulldown im
Gegensatz dazu wird zwischen den Pin und GND geklemmt. Also beim
Pulldown etwa so:


 VCC
  o    Taster            +-------------+
  |     _|_              |             |
  \----o   o---+---------o  Controller |
               |         |             |
              [ ]        +-------------+
              [R]
              [ ]
               |
               o
              GND

Wenn der Schalter offen ist, liegt am Controller GND an, wenn er
geschlossen wird, liegt VCC an. Wenn Du keinen Pullup/-down einsetzt,
liegt dann beim drücken zwar auch VCC an, aber wenn er offen ist,
wabbelt der Pegel irgendwo rum, und es wird nur irgendwelcher Müll
erkannt. Der Widerstand liegt also nicht IM Signalweg, sondern zweigt
davon ab.

der Flo
#215381
Lesenswert?

Weil wir grad beim Thema sind:

Theoretisch wäre es ja praktisch, auch vor dem Schalter noch einen
Widerstand reinzuhängen. Denn wenn aus Versehen ein Port als Ausgang
beschaltet ist und ich da dann Vcc draufgebe und den Port auf Low
schalte, brutzelt der mir fröhlich dahin...

Wenn ich aber einen Widerstand reinbaue, habe ich wieder nen
Spannungsteiler, also nicht den vollen Pegel. Ich könnte natürlich die
Widerstandsverhältnisse sehr groß einstellen, aber hat das einen Sinn?
Oder ist es besser zu vertrauen, dass man keinen Fehler macht? Was
meint Ihr dazu?
Gast #215383
Lesenswert?

Ithamar:

Wenn Du auf Nummer Sicher gehen willst, häng doch einen kleinen
Widerstand direkt vor den Pin vom µC. Als Eingang ist der hochohmig,
d.h. so erhältst Du keinen Spannungsteiler. Oder Du entkoppelst den Pin
mit einem Kondensator von jeglichen Gleichspannungsanteilen, wenn Du nur
bei Tastern nur die Flanken messen willst. ;)

der Flo
OP #215386
Lesenswert?

Hi, danke Flo!
Das mit dem Pulldown kann ich mir sehr gut vorstellen, allerdings wo es
hackt bei mir ist der Pullup. Wenn ich 5V VCC habe und dann einen
Spannungteiler vor den Eingang mache mit dem K, was "pull" ich denn
dann "up" wenn ich die VCC am Eingang doch verringere.

GND
  o    Taster            +-------------+
  |     _|_              |             |
  \----o   o---+---------o  Controller |
               |         |             |
              [ ]        +-------------+
              [R] Pullup?
              [ ]
               |
               o
              VCC

Taster gedrückt, Eingang auf GND.
Taster nicht gedrückt, Eingang auf VCC-X.
Gast #215388
Lesenswert?

Genau. Das "X" in deiner Schaltung dürften nen paar Mikrovolt sein,
stell dir lieber den Controller als ideales Bauelement mit unendlich
grossem Innenwiderstand, was nur die Spannung misst, und den Schalter,
und die Leitungen als ideale 0-Ohm Leitungen vor, damit bist Du in dem
Fall nahe genug an der Realität dran. D.h. wenn Du nen Pullup/-down
Widerstand von 1..10k einsetzt hast Du faktisch die beiden Zustände GND
bzw. VCC am Eingang anliegen. Ein Kurzschluss tritt auch nicht auf, denn
wenn Du - sagen wir mal - einen 5k Widerstand nimmst, fliessen da grad
mal I = U/R = 1mA, da kann man wirklich nicht von Kurzschluss reden.

In der Praxis könntest Du Probleme bekommen, wenn z.B. der
Pull-Widerstand zu gross ist. Die Eingänge sind im Allgemeinen mit
einer kleinen Kapazität versehen, und die muss beim Schaltvorgang mit
umgeladen werden. Wenn der Widerstand zu gross ist, wird die
elektrische Ladung nur langsam aus dem Kondensator abgesaugt (oder
reingeschoben, je nachdem ob Pullup oder -down). Von daher fährt man
mit nem Pullwiderstand von 1-5k meiner Erfahrung nach ganz gut.

Soviel dazu.

der Flo

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren