Guten Abend,
Ich bin gerade am Assembler Tutorial. Ich verstehe den Sinn und zweick
eines Pull-Widerstandes. Was ich nicht begreife ist :
Wann verwendet man einen Pull-Up Widerstand ?
Wann verwendet man einen Pull-Down Widerstand ?
Wenn ich ein Pull-Up Widerstand verwende wird der Zustand logisch 1,
solange der Taster offen ist.
Sobald der Taster gedrückt wird logisch 0.
Wenn ich einen normalen Lichtschalter drücke fängt das Licht an zu
brennen.
Dies ist für mich eine logisch 1. Mit einem Pull-Up also genau
umgekehrt.
Oder hat man mit einem Pull-Down einen speziellen Nachteil da im
Tutorial nur der Pull-Up behandelt wird ?
Gut währe ein einfaches praktisches Beispiel.
Freundliche Grüsse
Koe
Ich halte das für völlig egal!
Man nimmt das, was schaltungstechnisch sinnvoll erscheint.
Wichtiger ist:
Sichereitseinrichtungen NC
Ansonsten:
Normale Schalter und Taster alle NO
Aktoren:
Bevorzugt per High Side Switch
Jan H. schrieb:> Die AVRs zum Beispiel haben einen eingebauten PullUp. Außerdem braucht> man PullUp bei open Collector Ausgängen, welche nach Masse schalten.
Ah... Ich habe nicht verstanden warum man in den Mikrocontrollern einen
Pull-Up verbaut, wenn ein Pull-Down logischer währe.
Aber wenn man bei open Collector Ausgägen eine Pull-Up benötigt ist es
natürlich nun klar das dies nachher mit der Software einfacher zu ändern
ist.
Besten Dank an alle für die rasche Antwort!
Das mit dem Pullup hat auch historische Gründe: Bei TTL-Eingängen war
der Pullup prinzipbedingt schon eingebaut und ein Pulldown hätte
Ruhestrom verbraucht.
KoE schrieb:> Ah... Ich habe nicht verstanden warum man in den Mikrocontrollern einen> Pull-Up verbaut, wenn ein Pull-Down logischer währe.
Der eigentliche Grund liegt in der Geschichte. Die früheren TTL und NMOS
Bausteine waren stark asymmetrisch an Aus- und Eingang. Sowohl bei den
Spannungen als auch bei den fliessenden Strömen. Pullups waren effizient
machbar, Pulldowns nicht. Die Technik hat sich seither geändert, die
Gewohnheit ist geblieben.
KoE schrieb:> Ah... Ich habe nicht verstanden warum man in den Mikrocontrollern einen> Pull-Up verbaut, wenn ein Pull-Down logischer währe.
Vorallem sollte man hier nicht von einen einzigen µC auf alle anderen
Schließen. Es gibt genug Typen da kann man beides Konfigurieren.
A. K. schrieb:> Der eigentliche Grund liegt in der Geschichte. Die früheren TTL und NMOS> Bausteine waren stark asymmetrisch an Aus- und Eingang. Sowohl bei den> Spannungen als auch bei den fliessenden Strömen.
Ich nehme an, weil ein NPN am besten gegen Masse schaltet und PNPs
schlechtere Eigenschaften haben als ein gleich großer NPN? Stimmt diese
Vermutung so?
KoE schrieb:> Wenn ich einen normalen Lichtschalter drücke fängt das Licht an zu> brennen.
Wenn dein Licht zu brennen anfängt hast du ganz andere Probleme als pull
up oder down.
Pulls sind dazu da einen definierten Zustand zu haben wenn dein Programm
oder Controller noch nicht Laufen. Stichwort Tri-State
Das hatten wir gerade im
Beitrag "Re: Übliche Beschaltungsregel: Welche Richtung?"> … daran, dass man bei verschiedenen> Spannungsversorgungs-Pegeln in der Regel eine gemeinsame Masse hat. Mit> "open collector" bzw. "open drain" hat man dann einen Pegelwandler.
Jan H. schrieb:> Ich nehme an, weil ein NPN am besten gegen Masse schaltet und PNPs> schlechtere Eigenschaften haben als ein gleich großer NPN? Stimmt diese> Vermutung so?
Nein, das sind ziemlich sicher keine Bipolartransistoren. In keinem
ATMEGA dürften Bipolartransistoren drin sein (außer parasitäre
vielleicht).
Und Widerstände sind das ziemlich sicher auch nicht, sondern
Stromquellen, die als Ladungspumpe realisiert sind. Ein Blick ins
Datenblatt dürfte Klarheit schaffen - da steht meist ein
Pullup/Pulldown-Strom drin.
Im Übrigen muss man im Einzelfall genau schauen, was man hernimmt.
Wichtig ist auch der Status der Pulls im Reset, wieviel Strom die
liefern , welchen Spannungsabfall die bei sehr geringen Strömen haben
unsw usf.
-> eine pauschale Antwort gibt es nicht.
-> hängt vom µC ab.
Ich bezog mich auf die historischen Gründe. Das moderne ICs wohl eher
keine bipolaren Transistoren haben ist mir klar. AVRs haben ja sowieso
symmetrische Treiber für die Ausgänge.
Ich wollte eher wissen, was für technische Gründe es gab, das ganze so
rum einzuführen.
Pullups werden häufiger benötigt, z.B. bei Bussen (1-Wire, I2C).
Auch ist es bei Kontakten ungefährlicher, wenn sie gegen GND schalten.
Schalten sie gegen VCC und ist ein Kurzschluß auf der Leitung gegen
Gehäuse/Schirm, stürzt Dein MC ab bzw. Deine Batterie/Spannungsregler
erhitzt sich.
Ansonsten ist dem MC schnurzegal, was Ein/Aus und was 0/1 ist, das sind
nur Namen.
Ein Vorteil von Pull-UP ist, dann man nicht auf die Vcc Spannung achten
muss die man zum Schalten verwendet.
Das macht sich bemerkbar, wenn man mit mehreren Spannungen arbeitet.
Der 5 V Kreis wird mit der gleichen Masse wie der 3,3 V Kreis
geschaltet.
Da genügen 3 Leitungen. Schalter 1, Schalter 2 und Masse.
Beim Pull-DOWN müsste man 4 Leitungen haben, da man mit der passenden
Spannung schalten muss. Und man muss bei Verdrahten mehr aufpassen.
Ich würde immer den Pull-UP vorziehen auch wenn es bei Programmieren
nervt.
Jan H. schrieb:> Ich nehme an, weil ein NPN am besten gegen Masse schaltet
Soweit ja.
> und PNPs> schlechtere Eigenschaften haben als ein gleich großer NPN? Stimmt diese> Vermutung so?
Aber hier nicht mehr.
TTL verwendete ausschliesslich NPN-Transistoren und NMOS ausschliesslich
N-Kanal MOSFETs.
Aber eben weil das so ist, ist die Pulldown-Strecke dieser Technologien
stärker ausgeprägt als die Pullup-Strecke. Und deshalb sind auch die
Pegel stark asymmetrisch. Bei 5V TTL liegt der Schaltpunkt um die 1,5V
herum. Schon deshalb ist mit R hochziehen einfacher als runterziehen.
Dann kommt noch der bei Low-Pegel nicht unerhebliche Eingangsstrom dazu,
während der Eingangsstrom bei High-Pegel viel geringer ist.
Rechenbeispiel für TTL SN5400:
Pullup: (4,5V - 2,0V) bei 40µA. Ergibt R <= 62,5 kOhm.
Pulldown: 0,8V bei 1,6mA. Ergibt R <= 500 Ohm. Ein normaler TTL Ausgang
war jedoch nicht in der Lage, diesen Pulldown sicher hochzuziehen. Ein
von normalem TTL angesteuerter Pulldown war also überhaupt nicht möglich
und ein per Schalter angesteuerter hätte viel mehr Strom verbraucht.
Das ist natürlich Schnee von vorgestern. Aber dadurch entstand diese
Gewohnheit. Im Kontext von Mikrocontrollern ist auch die
Port-Charakteristik der ersten NMOS Typen relevant. So waren an den
Open-Drain Ports des Klassikers 8051 auch nur Pullups sinnvoll.
Und weil die Gewohnheit so ist, besteht auch bei CMOS oft kein Zwang,
die Ports symmetrisch zu bauen. Manche sind es, andere können mehr Strom
runterziehen als hochziehen. Andersrum ist selten. Spart Platz bei den
aufwändigeren PMOS Transistoren.