Guten Tag,
irgendwie versteh ich die Funktion von Pull-Up und Pull-Down
Widerständen nicht, egal, wieviel ich darüber lese und es mir versuche
vorzustellen.
Nehmen wir mal einen Schalter an, der Low-Aktiv sein soll. Wenn der
Schalter geöffnet ist, verbinde ich nun direkt meinen Mikrocontroller am
Input mit der Versorgungsspannung. Wieso lese ich ständig, dass der
Mikrocontroller jetzt am floaten wäre? Oder Störspannungseinkopplungen
für High oder Low sorgen könnten? Ich komme da nicht hinter.
Wenn ich nun zwischen der Versorgungsspannung und dem Input einen
Widerstand schalte, dann teilt sich doch lediglich die Spannung. Nehmen
wir an, ich bin elektrostatisch aufgeladen und komme an den
Mikrocontroller und es findet eine kleine Entladung statt, oder ein
elektromagnetisches Feld induziert an dem Eingang des Mikrocontrollers
eine Spannung und verursacht einen Strom. Auch dann, müsste der
Mikrocontroller doch Fehlersignale ausgeben, egal, ob der Pull-Up
Widerstand geschaltet ist, oder nicht.
Vielleicht kann mir das jemand mal erklären ..
Der PULLUP sorgt bei offenen SSchalter für einen definierten Zustand,
nämlich +5V = "1".
Dieser Zustand ist unempfindlich gegen Störungen, je nach Wert des
Widerstandes.
Wird der Schalter gegen GND geschlossen, dann fließt durch den PULLUP
halt Strom, aber der Pegel ist "0".
Ein offener Micorocontrollereingang hat keinen definierten Pegel. Je
nach Umfeld kann sein aktueller Pegel zwischen GND und VCC hin- und
herschwanken.
Um nun den Pegel auf einen definierten Zustand zu bringen, verbindet man
ihn entweder mit GND oder VCC.
Problem: wenn du nun einen Taster der bspw. nach GND. schaltet
anschließt und zusätzlich den Ausgang mit VCC verbindest, um den
"Ruhezustand" des Pins zu definieren, gäbe es bei betätigen des Tasters
einen Kurzschluss. Also verbindest du den Pin nicht direkt mit VCC,
sondern über einen Widerstand, der den Strom begrenzt.
Das ist dann die Strombegrenzung von der du sprichst.
Henry22 schrieb:> Nehmen wir mal einen Schalter an, der Low-Aktiv sein soll. Wenn der> Schalter geöffnet ist, verbinde ich nun direkt meinen Mikrocontroller am> Input mit der Versorgungsspannung.
Wer macht den soetwas. Das würde doch in dem Moment, wo der Schalter
geschlossen wird, einen Kurzschluss geben - vorausgesetzt du verstehst
unter "Versorgungsspannung" VCC.
> Wieso lese ich ständig, dass der Mikrocontroller jetzt am floaten wäre?
Weil er, ohne Pull-Up, bei geöffnetem Schalter in der Luft hängt.
> Nehmen wir an, ich bin elektrostatisch aufgeladen und komme an den> Mikrocontroller und es findet eine kleine Entladung statt
Das ist eine ganz schlechte Idee, weil du "klein" nur sehr schlecht
µC-verträglich dosieren kannst und die Eingangsschutzdioden sooh viel
nun auch nicht vertragen.
Da die Eingänge sehr hochohmig sind, können elektrostatische Aufladungen
(keine Induktion!) Störungen am Eingang verursachen.
Ein PULLUP erfordert dann schon einen höheren Strom, der durch
elektrostatische Aufladungen nicht entstehen kann.
Hallo Nils,
genau so habe ich das ja auch verstanden. Das dieser Widerstand
lediglich für die Strombegrenzung gilt. Wenn ich den Eingang an die
Versorgungsspannung angeschlossen habe, liegt ja direkt am Eingang des
Mikrocontrollers die Versorgungsspannung. Daher ist die Spannung am
Mikrocontroller-Eingang fest die der Versorgungsspannung. Wenn der
Eingang an die Versorgungsspannung angeschlossen ist, ist der
Mikrocontroller doch nicht im floatenden "offenen" Zustand. Er ist ja
mit U_BAT (V_CC) verbunden.
Was soll denn der Pull-Up Widerstand "hochziehen"? Der Eingang ist doch
schon mit der Versorgungsspannung verbunden.
Aber wieso hängt der Mikrocontroller denn in der Luft wenn er direkt mit
der Versorgungsspannung verbunden ist und nicht in der Luft, wenn er
über einen Widerstand mit VCC verbunden ist?
Ich glaube das hier mein Verständnisproblem liegt ...
Henry22 schrieb:> Was soll denn der Pull-Up Widerstand "hochziehen"? Der Eingang ist doch> schon mit der Versorgungsspannung verbunden.
Der Taster ist doch auch am Eingang. Wenn du den drückst, verbindet er
doch GND mit dem Eingang, an dem schon Vcc ist. Wenn nicht, bitte
Zeichnung auf was du dich beziehst.
Es geht eben darum, wenn der EinGang noch mit nichts verbunden ist. Ein
als Eingang konfigurierter uC-Eingang ist weder mit VCC noch mit GND
verbunden. Man sagt dann, der Eingang hängt in der Luft oder "floatet".
Wenn du nun zyklisch den Eingang abfrägst, um zu wissen ob ein
angeschlossener Taster gedrückt ist oder nicht passiert folgendes
(Taster ist low active):
Bei gedrücktem Taster ist alles in Ordnung, der PIN ist mit GND
verbunden, PIN lesen gibt 0 bzw low.
Bei nicht gedrücktem Taster floatet er (s.o.).
Er schwankt andauernd zwischen 0 und 1 und jedesmal wenn du den Eingang
ausliest kannst du nicht sicher sein, ob der gelsene Wert überhaupt
stimmt.
Und jetzt kommt die Erklärung aus meinem ersten Post ins Spiel.
Henry22 schrieb:> Aber wieso hängt der Mikrocontroller denn in der Luft wenn er direkt mit> der Versorgungsspannung verbunden ist
Niemand verbindet einen Eingang, an dem ein Taster hängt, direkt mit der
Versorgungsspannung.
Anscheinend überseh ich etwas, oder man sieht es nicht direkt.
http://www.u-thews.de/Pull-R1.JPG <- zum Beispiel hier. Wäre der Pull-Up
Widerstand nicht da, wieso floatet er denn dann? Tut mir leid, dass ich
das nochmal frage, aber ich verstehe das einfach nicht. Der Eingang ist
ja jetzt mit V_CC verbunden.
Wenn du den Widerstand weg läßt, hängt der Pin in der Luft und foated,
wenn der Schalter offen ist.
Ersetzt du den Widerstand durch eine Drahtbrücke, gibts einen
Kurzschluss, wenn der Schalter geschlossen ist.
Beide Zustände sind unerwünscht.
Hallo,
ich nehme an das dir nicht ganz klar ist das der Eingang des IC bzw. des
µC sehr hochohmig ist.
Hochohmig bedeutet das eine Eingangsspannung nur sehr gering belastet
wird, oder anders ausgedrückt das die Spannungsquelle am Eingang nur
eine sehr geringe Leistung zur verfügung stellen muss um den Eingang
eine Spannung, welche als "1" ausgewertet wird, anzubieten.
Elektromagnetische Felder erzeugen an jeden Stück Draht ("Antenne") eine
Spannung.
Da wir immer und überall von Elektromagnetischen Felder umgeben sind
steht also immer eine Spannung am hochohmigen Eingang an welche je nach
zufälliger augenblicklicher höhe als "1" oder "0" interpretiert wird.
Der Pull Down oder Pull Up Widerstand sorgt nun dafür das diese Spannung
"zusammenbricht" und gleichzeitig über den relativ großen Stromfluss
durch den Widerstand eine saubere und eindeutige "1" (z.B 5V) oder "0"
(z.B. 0V) Spannung ansteht.
Durch eine geschickte Wahl versucht man den Strom, und damit den
zusätzlichen Stromverbrauch der Schaltung durch den Pullup-
Pulldownwiderstand möglichst gering zu halten, und andereseits die
Störempfindlichkeit möglichst gering zu halten.
Übliche Werte liegen bei 10 kOhm bis 100kOhm - können (müssen) manchmal
aber auch leider deutlich darunter liegen.
Praktikus
Hallo,
wenn der pullup NICHT da ist, ist der Eingang NUR mit dem offenen Taster
veerbunden. Der Eingang hat KEINEN definierten PEGEL.
Kein pullup bedeutet : da ist NICHTS anderes, auch keine Brücke nach
+UB.
Ludger
Als Ergänzung:
Wird jetzt der Taster geschlossen fällt über den Pullup-
Pulldownwiderstand eine "hohe" Spannung ab und am Schalter (geschlossen
- niederohmig) fällt keine Spannung ab -
der Eingang ist jetzt direkt mit + (z.B. 5V) oder - (z.B. =v) verbunden.
Es kann nicht Schaden wenn die dich mal über das Ohmsche Gesetz, den
Widerstand, Spannung, Strom und Spannungsteiler informierst.
Praktikus
Ich habe mal ein Bild gezeichnet, wie ich mir das vorstelle:
Zustand 3 ist für meine Fragestellung interessant. Wenn der Eingang zur
Versorgungsspannung "kurgezschlossen ist", wird doch trotzdem ein
(kleiner) Strom, weil der Mikrocontroller einen hochimpedanten Eingang
hat, in den Mikrocontroller reinfließen. Man könnte auch von einer
"Spannungseinprägung" sprechen.
Lieg ich nun falsch, dass Zustand 3 und 4 - HIGH sind?
Es gibt hier nur ein Bild, wo der Eingangspin in der Luft hängt und das
ist doch Bild 1, oder irre ich mich da?
Hallo Besucher,
und genau darauf wollte ich hinaus! Dieses Potential ist doch nicht
richtig bestimmt. Je nach der Innenbeschaltung des Mikrocontrollers,
würde er doch nun entweder High oder Low annehmen.
Der Widerstand ist doch dafür notwendig, dass wenn der Schalter
geschlossen wird, die Potentialdifferenz fest definiert ist, durch U -
U_GND, wobei U_GND natürlich 0 V sind.
Ich möchte wissen, ob ich das richtig verstanden habe:
Zustand 3 und 4, würden jeweils HIGH liefern.
Wenn bei Zustand 3 nun der Schalter geschlossen wird, würde der
Mikrocontroller nach gut glück entweder LOW oder HIGH entstehen, oder
der Mikrocontroller würde anfangen zwischen HIGH und LOW zu oszillieren.
Wird bei Zustand 4 der Schalter geschlossen, dann ist die
Potentialdifferenz am Widerstand fest definiert, da der Widerstand mit
Masse verbunden ist und der LOW-Pegel ist sicher.
Das meinte ich die ganze Zeit mit Float. Selbst wenn kein Widerstand in
der Verbindungsleitung vom Input zur Versorgungsspannung vorhanden ist,
muss bei geöffnetem Schalter HIGH anliegen.
Zustand 3 ist der Zustand, der den Herstellern von Batterien am liebsten
ist.
Denn mit ein wenig Aufmerksamkeit solltest Du "sehen" können, dass das
schlicht und einfach ein Kurzschluss ist.
Bei einem Kurzschluss aber geht alles in die Hose. Der µP hat null Volt
Betriebsspannung, die Peripherie hat null Volt, nur eine eventuelle
Sicherung hat - kurzzeitig - was zu tun. Einem Eingang ist es in diesem
Moment egal, welcher Pegel anliegt.
Hallo Amateur,
sicherlich will ich keinen Kurzschluss bauen! Allerdings möchte ich nur
wissen, ob ich das oben richtig erklärt habe: Theoretisch gesehen, wird
der Mikrocontroller doch mit der Versorgungsspannung gespeist. Praktisch
gesehen ist das kompletter Unsinn.
Selbstverständlich fällt bei der idealen und theoretischen Betrachtung
an der Leitung garkeine Spannung ab, aber: Das Potenzial am Input
beträgt ja genau +U_BAT
Natürlich liegt bei Zustand 3 der Eingang auf HIGH und floatet nicht,
solange der Schalter geöffnet bleibt. In dem Moment wo du den Schalter
schließt entsteht ein Kurzschluß, was zum Zusammenbrechen der
Versorgungsspannung und hoffentlich zum Ansprechen einer vorhandenen
Sicherung führt. Und damit das nicht entsteht benötigst du den Pullup
Widerstand.
>Praktisch gesehen ist das kompletter Unsinn.
Ubat direkt mit Masse verbunden ist, nach meinem Wissen, ein
Kurzschluss.
Du kannst Dir natürlich beliebig viele Spannungen denken, aber
üblicherweise sind die Spannungen, die in einen µP reingehen irgendwie
mit diesem verbunden. Üblicherweise kommen sie auch irgendwo her und
normalerer weise ist ein Kurzschluss in einem geschlossenen System,
etwas, was mächtig stört.
Henry22 schrieb:> Wenn bei Zustand 3 nun der Schalter geschlossen wird, würde der> Mikrocontroller nach gut glück entweder LOW oder HIGH entstehen, oder> der Mikrocontroller würde anfangen zwischen HIGH und LOW zu oszillieren.
Sorry, aber das disqualifiziert Dich vollständig. Such Dir einen anderen
Beruf.
Vielen Dank stepp64 für deine Antwort. Das wollte ich die ganze Zeit
wissen weil mir die Erklärung "Der Widerstand soll die Spannung
hochziehen" viel zu ungenau ist.
An Frage:
Mit deiner Polemik hast du dich selber disqualifiziert. Ich habe nicht
vor einen Mikrocontroller in dieser Anordnung einzurichten. Es geht mir
lediglich ums Verständnis! Und wenn es falsch ist, korrigier mich bitte.
Ich habe diesen Thread nicht aus Langeweile eröffnet.
Welches Potential liegt denn bei Zustand 3 an dem Knoten an, wenn der
Schalter geschlossen ist? Die Versorgungsspannung sowie der Bezugspunkt
sind an Ein und dem selben Knoten angeschlossen.
Henry22 schrieb:> Mit deiner Polemik hast du dich selber disqualifiziert. Ich habe nicht> vor einen Mikrocontroller in dieser Anordnung einzurichten. Es geht mir> lediglich ums Verständnis! Und wenn es falsch ist, korrigier mich bitte.> Ich habe diesen Thread nicht aus Langeweile eröffnet.
Aber er tut das aus diesem Grund.
Ist halt'n Troll.
Einfach ignorieren!
Henry22 schrieb:> Theoretisch gesehen, wird> der Mikrocontroller doch mit der Versorgungsspannung gespeist. Praktisch> gesehen ist das kompletter Unsinn.
Was? Es ist Unsinn, den µC mit Versorgungsspannung zu speisen????
Hier mal ein wenig, leider nur ein ganz kleiner Teil des internen
Aufbaus von einem digitalem Gatter
http://de.wikipedia.org/wiki/Transistor-Transistor-Logik
In meiner Ausbildung zum EGS mussten wir diese Technik(diskret) auch
aufbauen. Hat für mich ne ganze Menge Hintergrundwissen geschaffen wie
did funzt. Hat mehr spass gemacht als die Reine Digtechnik :D
Henry22 schrieb:> Welches Potential liegt denn bei Zustand 3 an dem Knoten an, wenn der> Schalter geschlossen ist? Die Versorgungsspannung sowie der Bezugspunkt> sind an Ein und dem selben Knoten angeschlossen.
Kann ich dir sagen, welches Potenzial da anliegt.
U = Ubat * Rschalter / (Rschalter + Rdraht)
Gilt aber nur unter der Bedingung, dass deine Spannungsquelle den
nötigen Strom liefern kann, ohne einzubrechen.
Also Ri_quelle << Rschalter + Rdraht
Henry22 schrieb:> Welches Potential liegt denn bei Zustand 3 an dem Knoten an, wenn der> Schalter geschlossen ist? Die Versorgungsspannung sowie der Bezugspunkt> sind an Ein und dem selben Knoten angeschlossen.
Ein Potential kann man nur bestimmen, wenn man es mit etwas anderem
vergleicht. Da jetzt aber alles verbunden ist, kann man das Potential
nicht bestimmen (du sagst ja, daß der Bezugspunkt am gleichen Knoten
ist).
@Henry22: Wenn dich die Widerstände "stören", dann nimm einfach in
Gedanken einen Wechselschalter. NO (normally open) auf Vcc, NC (normally
closed) auf GND und den mittleren Kontakt (COM, Common) an den Eingang.
Dann ist in jedem Fall die Versorgung oder Masse "hart" am Eingang. Ist
machbar, aber Wechselschalter/-taster sind nun mal teurer als
Schließer/Öffner + Widerstand.
Ein anderes Problem tritt auf, wenn man (gewollt oder aus Versehen) den
Eingang auf Ausgang umschaltet. Wenn der Controller eine 0 ausgibt aber
der Schalter auf VCC schaltet, dann geht der Kurzschluss über den
Controller-Pin. Der ist dann hinüber (der = Pin oder ganzer Controller,
je nach Typ).
Um da vorzubeugen macht man häufig noch einen Serienwiderstand (z.B.
5V/20mA => 270 Ohm) in Reihe zum Schalter, der begrenzt dann im
Fehlerfall den Strom in den Controller und mit einem Pull-Down von
4,7-10k Ohm bekommt man immer noch einen sauberen 1-Pegel hin.
Bernhard Spitzer schrieb:> @Henry22: Wenn dich die Widerstände "stören", dann nimm einfach in> Gedanken einen Wechselschalter. NO (normally open) auf Vcc, NC (normally> closed) auf GND und den mittleren Kontakt (COM, Common) an den Eingang.> Dann ist in jedem Fall die Versorgung oder Masse "hart" am Eingang. Ist> machbar, aber Wechselschalter/-taster sind nun mal teurer als> Schließer/Öffner + Widerstand.
Vor allen Dingen dann, wenn sie so präzise sind, dass während des
Umschaltvorgangs der COM Ausgang keine Nanosekunde lang nicht doch
wieder in der Luft hängt.
Bei den üblichen Wippen hat man nun mal das 'Problem', dass das Umkippen
der Wippe auch wieder Zeit kostet, währenddessen der Ausgang weder mit
NO noch mit NC verbunden ist.
Henry22 schrieb:> Welches Potential liegt denn bei Zustand 3 an dem Knoten an, wenn der> Schalter geschlossen ist? Die Versorgungsspannung sowie der Bezugspunkt> sind an Ein und dem selben Knoten angeschlossen.
Um das Potential würde ich mir in dem Fall ehrlich gesagt weniger Sorgen
machen :-)
Wenn deine Spannungsquelle eine Autobatterie ist und dein Kabel nicht
all zu dick, dann wird die Isolierung verdampfen bzw. schön rot vor sich
hinglühen ehe dann das Kabel ebenfalls verdampft.
Sowas nennt man dann mehr oder weniger einen Kurzschluss. Und der ist
selten gewollt.
Karl Heinz schrieb:> Vor allen Dingen dann, wenn sie so präzise sind, dass während des> Umschaltvorgangs der COM Ausgang keine Nanosekunde lang nicht doch> wieder in der Luft hängt.
Na ja, die Kapazität am Portpin beträgt ja auch ein paar pF, die braucht
auch "etwas Zeit" zum entladen. :-)
In der Zeit dürfte sich der Portzustand daher eher nicht mehrfach
ändern, sondern gegen Zustand hin tendieren.
> Bei den üblichen Wippen hat man nun mal das 'Problem', dass das Umkippen> der Wippe auch wieder Zeit kostet, währenddessen der Ausgang weder mit> NO noch mit NC verbunden ist.
Kenne ich, bei meinem Board mit USB-Controller und Kippschalter am
Signaturwiderstand reicht die "Flugzeit" des Kontaktes, dass Windoof ein
neues USB-Gerät erkennt.
Die oben genannten Erklärungen waren erst mal als Gedankenmodell
gedacht. Der OP hat ja so sein gespaltenes Verhältnis zu Spannungspegeln
und Kurzschlüssen...
Ich glaub ich verstehe Deine Frage jetzt. Es geht darum warum da
überhaupt ein Widerstand wenn eh nach VCC verbunden ist. Fangen wir am
Anfang an.
Wir stellen uns ma dumm und sagen, da is ein Eingang. Wenn der da jetzt
mit nix verbunden ist, dann hat der irgendeinen Wert. Kann alles sein.
Von 0 bis 1 und alles dazwischen. Weil halt, jo, hängt in der Luft und
tut was er will. Wenn da jetzt 'ne Taste ran soll und die ist mit GND
verbunden, dann ist der 0 wenn die Taste gedrückt wird. Das ist schön.
Wenn die Taste nicht gedrückt wird, dann ist der "irgendwas". Das KANN
auch 0 sein. Das ist nicht schön. Weil dann würd der µC ja glauben, Du
drückst wennst gar nicht drückst.
Also verbinden wir den Eingang mal mit VCC. Damit ist, wenn jetzt nicht
gedrückt wird, der Eingang 1. Das ist schön. Vor allem schön definiert.
Wenn die Taste jetzt gedrückt wird, dann verbindet das den Eingang AUCH
mit 0. Das ist nicht schön. Weil das verbindet VCC mit GND ohne einen
Verbraucher dazwischen. Das nennt man Kurzschluss.
Deswegen hängt man den Eingang an einen hochohmigen Widerstand (den
"Pullup"). Und das andere Ende von dem Widerstand hängt man dann an VCC.
Der Eingang wird also nicht direkt, sondern über diesen hochohmitgen
Widerstand mit VCC verbunden. Damit kriegt man das beste aus beiden
Welten. Wenn die Taste nicht gedrückt ist, dann kommt da "ein bischen 1"
über den Widerstand in den Eingang. Weil ja, Du hast mit der
anfänglichen Beobachtung recht, eigentlich, streng genommen, hast Du
damit einen Spannungsteiler. Aber wenn auf der einen Seite davon 1
reinkommt und auf der anderen Seite kommt NIX rein, weil der Schalter
halt offen ist, dann teilt das auch nix. Schließen wir den Schalter
jetzt, dann kommt von der geschlossenen Verbindung SO viel "0" dass das
bischen Abfall (oder in dem Fall eben Anstieg) wegen der hochohmigen
Verbindung richtung VCC nicht ins Gewicht fällt und der Input trotzdem
logisch zuverlässig 0 wird (siehe dazu auch das Datenblatt Deines µC, 0
ist nicht "nur 0 Volt". Da ist ein paar Centivolt Spielraum).
Ich hoffe ich habe Deine Frage richtig "erraten".