Externe oder Interne Pullups

Gast #3879508
Hallo,

ich finde nirgends eine genaue Erklärung über externe und interne 
Pullups bei einem xbeliebigen Atmega.

Intern:
+ weniger Bauteile benötigt
- Pullup nicht frei dimensionierbar
- invertierte Logik

Extern:
- mehr Bauteile benötigt
+ Pullup frei dimensionierbar
#3879528
@Simon K.
Meiner Meinung nach ist Deine Liste richtig (*) und komplett; mehr fällt 
mir dazu auch nicht ein.

(*) bis auf "invertierte Logik", was Lars ja schon sagte.
Aber vielleicht meintest Du ja: man kann einen externen Widerstand als 
Pull-Up oder Pull-Down beschalten und hat dann die frei Wahl bzgl. der 
Logik.

Gruß Dietrich
Gast #3879546
@Dietrich. Ja so meinte ich das. Bei den internen Pullups hat man ja 
nicht die Möglichkeit, zwischen Active-HIGH oder Active-LOW zu wählen. 
-> invertierte Logik.

Kann man im Code natürlich umbiegen.
Gast #3879551
Interne pullups erhöhen die Verlustleistung der uC's, was bei hohen 
Temperaturen problematisch werden kann (vor allem bei >40 I/Os kann das 
einen Einfluss haben...)
#3879560
Simon K. schrieb:
> Kann man im Code natürlich umbiegen.

... und damit ist es nur ein sehr kleiner Vor- bzw. Nachteil.

Je nach Anwendung kann die Dimensionierbarkeit lebenswichtig sein, wenn 
z.B. die Quelle Probleme mit so kleinen Strömen hat (Restströme oder 
Kontaktprobleme) oder über längere Leitungen angeschlossen wird 
(Störeinkopplung).

Gruß Dietrich
Gast #3879572
Mrc schrieb:
> Interne pullups erhöhen die Verlustleistung der uC's

40 IOs mit je 30k internem pullup bei 5V: 33mW.

Einem uC in einem >40pinnigen Gehäuse hätte ich bisher ganz naiv 
zugetraut, diese Leistung locker loszuwerden, bin aber auf Beispiele 
gespannt, wo das ein Problem darstellt.
Gast #3879576
Pluspunkt für externe pull ups wäre noch, dass sie bereits zum Zeitpunkt 
0 in Betrieb sind und nicht erst nach dem init des Controllers. Kann je 
nach Anwendungsfall wichtig sein.
Gast #3879580
Mrc schrieb:
> Interne pullups erhöhen die Verlustleistung der uC's, was bei hohen
> Temperaturen problematisch werden kann (vor allem bei >40 I/Os kann das
> einen Einfluss haben...)

Warum sollte die Verlustleistung steigen, wenn an einem unbenutzen Pin 
ein Pull-up aktiviert ist?

Dort wo wirklich der Pin durch ein Signal runtergezogen wird, wird genau 
diese Leitung als Kühlfläche dienen. Warum soll daraus ein thermisches 
Problem entstehen.
Gast #3879599
Ich sagte ja nur, dass es die Verlustleistung des Controllers erhöht, 
wenn (natürlich nur bei benutzten) Eingängen die internen Pullups 
verwendet werden. Ja, es sind nur ~33mW, das sind aber schon rund 10% 
der maximalen Verlustleistung (je nach Gehäuse). Wenn ich den Controler 
nahe der maximal zulässigen Umgebungstemperatur betreibe kann das einen 
Einfluss haben (muss aber nicht).
Bei ST zum Beispiel gibt es ja extra spezielle Formeln zur Berechnung 
von low power Anwendungen im oberen Temperaturbereich...

Es wurde nach Unterschieden zwischen internem und externem Pullup 
gefragt und ich habe etwas dazu gesagt. Weiter nichts. Zerfleischt mich 
nicht gleich deswegen ;-)
Gast #3879639
Mrc schrieb:
> Es wurde nach Unterschieden zwischen internem und externem Pullup
> gefragt ....

Und genau darum ist nix mit inverser Logik!
Ein Pullup ist ein Pullup und bleibt ein Pullup.
Egal ob intern, oder extern.
#3880061
Simon K. schrieb:
> ich finde nirgends eine genaue Erklärung über externe und interne
> Pullups bei einem xbeliebigen Atmega.

Eigentlich ist es ganz einfach. Die internen Pullups sind intern. Die 
externen sind?
richtig!

Die internen sparen Geld. Kein zusätzlicher Widerstand den man lagern, 
kaufen, löten, designen und verwalten muss. Und man kann den internen 
auch beliebig ein- aus ausschalten.

Einfache Formel: Nehme immer die internen Pullups.
Ausnahme: Es funktioniert mit internen Pullups nicht (z.B. DS18B20).
Gast #3880205
Uwe K. schrieb:
> Einfache Formel: Nehme immer die internen Pullups.

Das kann ich nicht unterschreiben.
In den meisten Fällen sind eher externe Pull-Up-Widerstände sinnvoll.
Du willst ja mit Pull-Up-Widerständen ein logisches High erzwingen, wenn 
der Pin nicht angesteuert wird. Beim Einschalten sind aber die internen 
Pull-Ups abgeschaltet und somit auch kein definierter Pegel am Pin.
Gast #3880214
Ein externer Pullup / Pulldown kostet keine 0,8 mm^2 Platz auf der 
Platine. Was hindert daran einfach mal den/die Footprint(s) vorzusehen 
und dann nicht zu bestücken ?
Gast #3880269
Simon K. schrieb:
> Bei den internen Pullups hat man ja
> nicht die Möglichkeit, zwischen Active-HIGH oder Active-LOW zu wählen.
> -> invertierte Logik.

Und wieso sollte man das mit einem externen PullUp oder PullDown 
Widerstand ändern können?
Die Logik verstehe ich nicht.

Der einzige Grund für externe PullUps und PullDowns sind definierte 
Pegel beim Einschalten zu bekommen und ggf. den Arbeitspunkt der 
vorgeschalteten Stufe einzustellen.
Gast #3880322
123 schrieb:
> Ein externer Pullup / Pulldown kostet keine 0,8 mm^2 Platz auf der
> Platine. Was hindert daran einfach mal den/die Footprint(s) vorzusehen
> und dann nicht zu bestücken ?

Nee....
Für welche Eventualitäten willst du denn sonst noch Vorsorge treffen?


Ich glaube, man sollte die Sache pragmatisch angehen....
Da wo ein Pullup/Pulldown nötig ist, da macht man einen hin.
Kommt man mit dem internen aus, dann nimmt man den.
Gast #3881259
... schrieb:
> Der einzige Grund für externe PullUps und PullDowns sind definierte
> Pegel beim Einschalten zu bekommen und ggf. den Arbeitspunkt der
> vorgeschalteten Stufe einzustellen.

Das mag für externe Peripherie gelten. Für Pins, bei denen der µC selbst 
Wert auf einen definierten Pegel legt, kann er den Pull-up in der 
Initialisierung aktivieren, bevor er irgendwelche Pin-gesteuerten 
Funktionen freigibt.
#3881384
GB schrieb:
> Uwe K. schrieb:
>> Einfache Formel: Nehme immer die internen Pullups.
>
> Das kann ich nicht unterschreiben.
Ich auch nicht. Deshalb habe ich eine Ausnahme beschrieben.
Also immer schön den kompletten Text lesen. ;-)

> In den meisten Fällen sind eher externe Pull-Up-Widerstände sinnvoll.
> Du willst ja mit Pull-Up-Widerständen ein logisches High erzwingen, wenn
> der Pin nicht angesteuert wird. Beim Einschalten sind aber die internen
> Pull-Ups abgeschaltet und somit auch kein definierter Pegel am Pin.
Wenn das ein Problem ist, tritt natürlich die Ausnahme in Kraft.

Ulrich sagt das gleiche wie ich, nur mit anderen Worten:
> Da wo ein Pullup/Pulldown nötig ist, da macht man einen hin.
> Kommt man mit dem internen aus, dann nimmt man den.
#3881402
... schrieb:
> Simon K. schrieb:
>> Bei den internen Pullups hat man ja
>> nicht die Möglichkeit, zwischen Active-HIGH oder Active-LOW zu wählen.
>> -> invertierte Logik.
>
> Und wieso sollte man das mit einem externen PullUp oder PullDown
> Widerstand ändern können?
> Die Logik verstehe ich nicht.

Ich denke er meint es so:
Ein interner Pullup kann nur ein Pullup sein. Wenn ein Taster dran 
hängt, ist beim betätigen eine 0 am Pin und wenn nicht gedrückt wird 
eine 1 -> invertierte Logik.
Beim extenen Widerstand kann man wählen, man kann nämlich auch nen 
pulldown nehmen, der dann ne 1 beim Drücken hat -> nichtinvertierte 
Logik..

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.