Forum: Mikrocontroller und Digitale Elektronik Pull-Up tiefgründigeres Verständnis


von John L. (john_l712)


Lesenswert?

Hallo zusammen,

ich habe schon verstanden welchen Sinn und Zweck der Pull-Up Widerstand 
erfüllt. Leider will mein Gehirn aber die Physik dahinter nicht ganz 
verstehen, deshalb würde ich gerne ein paar Fragen dazu stellen.
Nehmen wir als Grundlage folgende Schaltung mit Pull-Up Widerstand:
https://www.mikrocontroller.net/wikifiles/8/8a/Taster.gif

Wie man sieht, ist der Input-Pin über einen Widerstand mit VCC 
verbunden.
1. (Pull-Up, offener Schalter) Warum wird also die Spannung, die am 
Input-Pin "anliegt" als HIGH angesehen? Was bedeutet überhaupt 
"anliegt"? Fließt überhaupt Strom von VCC nach Input-Pin? Müsste durch 
den hohen Widerstand nicht viel Spannung "abgesaugt" werden, sodass am 
Input-Pin nur noch eig. LOW gemessen wird?
2. (Pull-Up, geschlossener Schalter) Warum "liegt" nun nur noch LOW beim 
Input-Pin an? Ich dachte Spannung teilt sich NICHT, nur der Strom (an 
einem Zweigpunkt). Warum teilt sich also die Spannung doch an der 
Verzweigung NACH dem Widerstand, sodass LOW am Input-Pin gemessen wird?

3. (Pull-Down, geschlossener Schalter) Warum liegt hier jetzt plötzlich 
nicht mehr LOW am Input-Pin an, obwohl Pull-Up und Pull-Down Schaltungen 
identisch sind, bis auf die Tatsache, dass Widerstand und Schalter 
vertauscht sind(edit)?

Muss ich vielleicht mit Stromstärke statt Spannung argumentieren/denken?

Danke im Voraus!

VG
John

: Bearbeitet durch User
von Nicht W. (nichtsowichtig)


Lesenswert?

Schau mal nach was Potential bedeutet. Das sollte eben fest definiert 
sein, bevor es in der Luft hängt und im worst case beliebige Zustände 
annimmt.

von Cyblord -. (cyblord)


Lesenswert?

John L. schrieb:
> 2. (Pull-Up, geschlossener Schalter) Warum "liegt" nun nur noch LOW beim
> Input-Pin an? Ich dachte Spannung teilt sich NICHT, nur der Strom (an
> einem Zweigpunkt). Warum teilt sich also die Spannung doch an der
> Verzweigung NACH dem Widerstand, sodass LOW am Input-Pin gemessen wird?

Im Prinzip liegt nicht 0V an, der PullUp bildet mit der Leitung und dem 
Schalter einen Spannungsteiler. Die Leitung hat aber einen, im 
Vergleich, so niedrigen Widerstand dass es in der Realität keine Rolle 
spielt.
Du kannst ja die Spannung ausrechnen mit einem Spannungsteiler 10k/0.01 
Ohm.

> (Pull-Up, offener Schalter) Warum wird also die Spannung, die am
> Input-Pin "anliegt" als HIGH angesehen? Was bedeutet überhaupt
> "anliegt"? Fließt überhaupt Strom von VCC nach Input-Pin?

Du musst dir echt mal den Unterschied zwischen Spannung und Strom 
klarmachen. An deiner Steckdose liegen auch 230V an, trotzdem fließt 
kein Strom wenn du nichts eingesteckt hast. Es geht hier nur um die 
Spannungen. Ströme spielen da erstmal keine Rolle.

Wenn du nicht weißt was "anliegt" bedeutet dann hast du wohl noch nie 
eine Spannung mit einem Multimeter gemessen.
Baue doch mal deine Schaltung auf und Messe da rum. Dann wird dir 
einiges klarer.

Ach ja, was irgendein Baustein als High oder Low ansieht steht im 
Datenblatt. Meist im Verhältnis zu VCC.

: Bearbeitet durch User
von Martin L. (maveric00)


Lesenswert?

Hallo,

und nicht nur die Leitungen und der Schalter sind (auch) als 
(niederohmige) Widerstände zu betrachten, sondern der Eingang des 
Mikrocontrollers ebenfalls (als sehr hochohmiger Spannungsteiler sowohl 
nach Ground als auch nach VCC). Über die Maschenregeln kann man dann die 
Spannungspotentiale an den verschiedenen Knoten auf Grund der fließenden 
Ströme ausrechnen.

Man wird dann sehen, dass der "Messknoten" nicht exakt 0V bzw. VCC 
"sieht", was aber bei Digitaleingängen egal ist, da diese "Low" bzw. 
"High" in einem relativ weiten Bereich erkennen (Low z.B. zwischen -0.5V 
und +0.7V, High zwischen 2.4V und VCC+0.5V).

Übrigens: Manchmal wählt man den Pullup- bzw. Pulldown-Widerstand gar 
nicht so hochohmig um einen gewissen Schaltstrom im Schalter zu haben 
(normale 220V-Lichtschalter z.B. korrodieren und benötigen Ströme >10mA 
um sich "freizubrennen").

Schöne Grüße,
Martin

von Axel S. (a-za-z0-9)


Lesenswert?

John L. schrieb:
> ich habe schon verstanden welchen Sinn und Zweck der Pull-Up Widerstand
> erfüllt.

Scheinbar nicht.

> 1. (Pull-Up, offener Schalter) Warum wird also die Spannung, die am
> Input-Pin "anliegt" als HIGH angesehen? Was bedeutet überhaupt
> "anliegt"? Fließt überhaupt Strom von VCC nach Input-Pin?

Wenn das ein CMOS-Eingang ist, dann fließt praktisch kein Strom. Nur ein 
Leckstrom von typischerweise max. 1µA. Wobei man beachten muß, daß 
Leckströme mit der Temperatur stark zunehmen und diese Angabe für die 
maximal erlaubte Chiptemperatur gilt. Bei Raumtemperatur kann man locker 
Faktor 100 niedriger liegen.

> Müsste durch
> den hohen Widerstand nicht viel Spannung "abgesaugt" werden, sodass am
> Input-Pin nur noch eig. LOW gemessen wird?

Seit wann "saugt" ein Widerstand Spannung ab?

Betrachte es einfach als Spannungsteiler. Der CMOS-Eingang hat einen 
sehr hohen Widerstand. Sagen wir mal 5MΩ (das gibt bei 5V gerade 1µA, 
liegt also im realistischen Bereich). Dieser Widerstand bildet mit dem 
Pullup einen Spannungsteiler:
1
  Vcc
2
   |
3
  R1  (Pullup)
4
   |
5
   *-----> U_pin
6
   |
7
  5MΩ (Eingangswiderstand)
8
   |
9
  === GND

Am Teilerpunkt entsteht die Eingangsspannung. Rechne das für deine 
Betriebsspannung und deinen Wert des Pullups durch! Und, ist das ein 
gültiger H-Pegel?

> 2. (Pull-Up, geschlossener Schalter) Warum "liegt" nun nur noch LOW beim
> Input-Pin an? Ich dachte Spannung teilt sich NICHT, nur der Strom (an
> einem Zweigpunkt).

Nochmal der gleiche Spannungsteiler. Aber diesmal liegt R2 der 
Widerstand des Tasters, sagen wir mal 100mΩ (Milliohm!) parallel:
1
       Vcc
2
        |
3
       R1 (Pullup)
4
        |
5
  .-----*-----> U_pin
6
  |     |
7
100mΩ  5MΩ (Eingangswiderstand)
8
  |     |
9
 ===   === GND

Rechne nochmal die Spannung am Teilungspunkt aus! Ist das ein gültiger 
L-Pegel?

> 3. (Pull-Down, geschlossener Schalter) Warum liegt hier jetzt plötzlich
> nicht mehr LOW am Input-Pin an, obwohl Pull-Up und Pull-Down Schaltungen
> identisch sind, bis auf die Position des Widerstandes?

Bahnhof. Mit einem Pull-Down muß der Taster natürlich nach Vcc gehen. 
Kannst du aber mit dem obigen Spannungsteiler auch alles rechnen. 
Einfach die Widerstände für Pullup und Taster vertauschen.

von HildeK (Gast)


Lesenswert?

John L. schrieb:
> 3. (Pull-Down, geschlossener Schalter) Warum liegt hier jetzt plötzlich
> nicht mehr LOW am Input-Pin an, obwohl Pull-Up und Pull-Down Schaltungen
> identisch sind, bis auf die Position des Widerstandes?

Etwas unklar.
Du meinst: du hast einen Pull-Down (z.B. 10kΩ) und einen Schalter nach 
VCC?
Wenn ja: es gilt prinzipiell das selbe, was Cyberlord schon beschrieben 
hat.

Der Input Pin ist extrem hochhomig. Entweder der Schalter ist offen, 
dann ist praktisch der PD-Widerstand, auch wenn er 10k hat, für dein 
Eingang wie eine sehr niederohmige Verbindung nach GND zu sehen. Ist der 
Schalter geschlossen (nach VCC) ist diese Verbindung nochmal 1 Million 
mal niederohmiger, jetzt aber nach VCC. Der Spannungsteiler aus den 10mΩ 
und den 10kΩ liefert dann halt (fast) VCC am Pin. Nur, das jetzt durch 
den Widerstand und den Schalter ein Strom fließt der Größe VCC/10k, der 
quasi als Verlust angesehen werden kann; in den CMOS-Eingang fließt 
dabei vernachlässigbar wenig.
Da die Widerstandsverhältnisse von PU/PD (10kΩ), Schalter (10mΩ) und 
Eingangspin (vermutlich im GΩ-Bereich bei CMOS) so extrem sind, werden 
die Spannungen für den Eingang nur vernachlässigbar wenig vom idealen 
Wert abweichen.
Bei CMOS z.B. wird typisch >75% von VCC sicher als HIGH und <25% sicher 
als LOW interpretiert.

von Jasson (Gast)


Lesenswert?

1)
Das ist einfach Konvention, das HIGH dem VCC der Pins entspricht.
(es gibt Controller, die eigene Spannungsversorgung für den µP / µC Kern 
haben und eine eigene für die Peripherie / Pins)

"Anliegen" hat (wie Nicht W wohl meinte?) mit dem Modell von Potentialen 
zu tun. Spannung ist eine Differenz zwischen zwei Potentialen. Soll also 
heißen "an VCC liegt ein Potential an, dass mit Referenz zum Masse 
Potential Vcc entspricht".
Theoretisches Blabla um zu sagen "an dem Pin ist Spannung, die er als 
'HIGH erkennt' ". Man sollte trotzdem begreifen, dass sich Spannung 
immer auf eine Referenz bezieht.

Ja, es fließt ein Strom - ein "parasitärer". Mit parasitär beschreibt 
man Effekte die im Idealfall nicht da sind. Dafür müsste der Inputpin 
einen unendlichen Widerstand gegen Masse haben. Hat er aber nicht - 
daher fließt ein winziger Strom. Man hat letztlich einen Spannungsteiler 
gebaut. Die Idee ist, dass der Pullup-Widerstand so viel kleiner ist, 
als der parasitäre Widerstand gegen Masse, dass der Pin immer noch 
"HIGH" sieht.


2)
Hier wirfst du Begriffe durch einander glaube ich.
Bevor ich unnötig viel schreibe, such nach "Spannungsteiler".

>Warum teilt sich also die Spannung doch an der Verzweigung NACH dem >Widerstand
Der Pin sieht LOW, weil der geschlossene Schalter dem Vcc-Potential nach 
dem Wiederstand einen viel niederohmigeren Weg bietet nach Masse ab zu 
fließen als der parasitäre Innenwiederstand des Pins/µC.
Ich vermute, du hast hier etwas richtig formuliert, ohne es zu wissen :>
Auch der geschlossene Taster hat einen Widerstand, denn auch der Taster 
ist - tada - nicht ideal. Das heißt tatsächlich hat man im 
"Ersatzschaltbild" den Widerstand gegen Vcc und gegen Masse den sehr 
hohen Eingangswiderstand des Pins parallel mit dem verschwindend kleinem 
Widerstand des Tasters.

3)
>Muss ich vielleicht mit Stromstärke statt Spannung argumentieren/denken?
Ne, du musst verstehen, dass Spannung eine Differenz zwischen zwei 
Potentialen ist.

Ich würde sagen, nimm dir etwas Zeit um das Prinzip von Spannungsteiler 
und Stromteiler zu verstehen.
Dann fällt dir wie Schuppen von den Augen, wann der Pin HIGH sieht und 
wann LOW
und
was es mit Pulldown auf sich hat.

https://www.elektronik-kompendium.de/sites/slt/0201111.htm
https://de.wikipedia.org/wiki/Stromteiler

von Test (Gast)


Lesenswert?

Zu 1. Ja es fließt ein Strom, der Input leakage current (Leckstrom) ist 
im Datenblatt des Microcontrollers spezifiziert. Durch diesen Strom gibt 
is über dem Pullup-Widerstand einen geringen Spannungsabfall (Stichwort 
ohmsches Gesetz) der aber kaum messbar ist da der Leckstrom derart 
gering ist und darum der Spannungabfall entsprechend auch minimal ist.

Zu 2. naja der Taster verbindet den Eingang direkt mit Masse 
(Kurzschluss). In der Praxis kannst du das als Spannungsteiler ansehen 
dessen unterer Widerstand 1 Ohm hat (Taster, Leiterbahnen) und dessen 
oberer Widerstand 10kOhm (Pullup). Die Spannung beträgt dann (5V, 10k 
Pullup, 1 Ohm Taster) nicht 0,00000V sondern 0,0005V (Siehe Formel 
Spannugnsteiler).

Zu 3. wenn du einen pulldown Widerstand wählst, dann muss dein Taster 
natürlich zu 5V verbinden (und nicht mehr zu masse). Es ändert sich 
nicht nur die Position des Widerstandes sondern der Taster ist dann mit 
der Versorgungsspannung (zb. 5V) verbunden

von John L. (john_l712)


Lesenswert?

Danke für die zahlreichen Antworten.

Bleiben wir am besten erstmal bei der Pull-Up Schaltung.
1
                                     VCC
2
                                      |
3
                                      |
4
                    Pull-Up Widerstand (klein im Vgl. zu uC)
5
                                      |
6
                                      |
7
uC Eingangspin (Großer Widerstand) ---*
8
                                      |
9
                                      |
10
                                    offener Schalter
11
                                      |
12
                                      |
13
                                     GND
So wie ich das jetzt verstanden habe, hat der Eingangspin des uC einen 
sehr hohen Widerstand und es fließt ein kleiner Leckstrom. Der 
Widerstand des Eingangspins ist im Vergleich zum Pull-Up Widerstand viel 
größer, weshalb am Eingangspin viel mehr Spannung abfällt und deshalb 
ein H-Pegel gemessen wird (Spannungsteilerregel für Reihenschaltung 
U1/U2=R1/R2). Stimmt das so?

Jetzt habe ich aber immer noch ein Problem mit dem geschlossenem 
Schalter:
1
                                     VCC
2
                                      |
3
                                      |
4
                    Pull-Up Widerstand (klein im Vgl. zu uC)
5
                                      |
6
                                      |
7
uC Eingangspin (Großer Widerstand) ---*
8
 |                                    |
9
 |                                    |
10
 | (ist PIN mit GND verbunden?)   geschlossener Schalter
11
 |                                    |
12
 |                                    |
13
 ===                                 === GND
Welcher Spannungsteiler Formel wäre denn nun in diesem Fall einzusetzen? 
Ist das als Reihenschaltung anzusehen wenn uC NICHT mit GND verbunden 
ist oder ist das eine Parallelschaltung?

Axel S. schrieb:
> Betrachte es einfach als Spannungsteiler. Der CMOS-Eingang hat einen
> sehr hohen Widerstand. Sagen wir mal 5MΩ (das gibt bei 5V gerade 1µA,
> liegt also im realistischen Bereich). Dieser Widerstand bildet mit dem
> Pullup einen Spannungsteiler:

Warum zeichnest du den hochomigen Widerstand zwischen dem Zweigpunkt und 
GND und nicht am Eingangspin? Oder ist das mit meiner obigen Zeichnung 
äquivalent, falls man davon ausgeht, dass der uC Eingangspin mit GND 
verbunden ist?

Danke!

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

John L. schrieb:
> Warum zeichnest du den hochomigen Widerstand zwischen dem Zweigpunkt und
> GND und nicht am Eingangspin?
Er hätte es deutlicher zeichnen können, es macht aber keinen 
Unterschied. So z.B.:
1
       Vcc
2
        |             ________
3
       R1 (Pullup)   |     µC
4
        |       U_pin|
5
        +------------|--o 
6
        |            |  |
7
      100mΩ          | 5MΩ (Eingangswiderstand)
8
        |            |  |
9
       ===           | === GND
10
                     |________

John L. schrieb:
> Welcher Spannungsteiler Formel wäre denn nun in diesem Fall einzusetzen?
Der Teiler VCC*100mΩ/(R1+100mΩ), die 5MΩ (von denen ich meine, dass es 
viel mehr ist) parallel zu 100mΩ ändert nur in der x.ten Stelle nach dem 
Komma noch was; du kannst ja mal ausrechnen, was 5MΩ || 100mΩ ergeben ?
Oder den den Teiler für den offenen Schalter aus R1 und 5MΩ (auch hier 
gibt es ganz streng genommen noch den Isolationswiderstand des offenen 
Schalters, der parallel zum Eingangswiderstand liegt).

von Robert Goldner (Gast)


Lesenswert?

Hallo,

der geschlossene Schalter stellt einen sehr kleinen Widerstand dar. Es 
ergibt sich somit "unten" eine Parallelschaltung aus
1. sehr kleinem Widerstand (geschlossener Schalter)
2. sehr großem Widerstand als Eingangswiderstand µC

Wenn mal sehr konservativ annimmt, daß
Widerstand bei 1. 1 Ohm ist und
Widerstand bei 2. 100 kOhm ist,
so ergibt sich aus der Parallelschaltung von 1 und 2 ein Widerstand von 
~0,99999 Ohm (also es bleibt bei 1 Ohm). D.h. bei geschlossenen Schalter 
sind die 100 kOhm völlig zu vernachlässigen.
Daraus folgt, daß bei geschlossenen Schalter sich ein Spannungsteiler 
aus dem Pull-Up-Widerstand und dem Schalterwiderstand bildet, was 
idealerweise (vereinfacht) zu 0V am Eingangspin führt.


Wenn der Schalter offen ist, ist er ein sehr großer Widerstand. Es 
ergibt sich somit "unten" eine Parallelschaltung aus
1. ein sehr großer Widerstand (offener Schalter)
2. sehr großem Widerstand als Eingangswiderstand µC (unverändert zu 
obigen Beispiel)
Wenn mal sehr konservativ annimmt, daß
Widerstand bei 1. 10 MOhm ist und
Widerstand bei 2. 100 kOhm ist,
so ergibt sich aus der Parallelschaltung von 1 und 2 ein Widerstand von 
99 kOhm (also es bleibt bei rund 100 kOhm). D.h. bei offenen Schalter 
sind die 10 MOhm völlig zu vernachlässigen.
Daraus folgt, daß bei offenen Schalter sich ein Spannungsteiler aus dem 
Pull-Up-Widerstand und dem Eingangswiderstand µC bildet, was 
idealerweise (vereinfacht) zu 5V am Eingangspin führt.

Ich hoffe das halbwegs verständlich ausgedrückt zu haben.

Gruß
Robert

von MeinSenfDazu (Gast)


Lesenswert?

Wenn der Innenwiderstand immer gegen GND ginge, wäre es ja noch einfach. 
Es ist aber nicht spezifiziert ob hochohmige Verbindungen vom Eingang 
nach GND und/oder VCC gehen. Das hängt nämlich vom jeweiligen Exemplar 
ab. Und gerade deshalb ist es nötig dem Eingang über Pull-Up oder 
Pull-Down einen gültigen Eingangspegel aufzuzwingen.

von HildeK (Gast)


Lesenswert?

MeinSenfDazu schrieb:
> Wenn der Innenwiderstand immer gegen GND ginge, wäre es ja noch einfach.

Genau. Vielleicht geht er ja sogar auf VCC/2.
Man kann es auch kaum an einem offenen Eingang messen, er ist so hoch 
(weit oberhalb der 5MΩ, die oben genannt wurden), dass ein Messgerät das 
bereits komplett verändert.
Vielleicht wäre es einfach sinnvoller, den Eingangswiderstand einfach 
als ∞ anzusehen. Und viele der hier angestellten Betrachtungen sind dann 
noch einfacher.

von John L. (john_l712)


Lesenswert?

Die konservative Erklärung hat mir sehr geholfen! Vielen Dank an alle 
nochmal, ich habe es endlich verstanden :)

von It E. (itet)


Lesenswert?

Man könnte es auch mit Druck und Strömung in Wasserleitungen sehr 
verständlich erklären. Aber wenn du es jetzt schon inne hast, dann lasse 
ich es mal bleiben :-)
Hatte mit dem Thema Pullup auch meine Verständnisprobleme.

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.