Forum: Mikrocontroller und Digitale Elektronik Externe oder Interne Pullups


von Simon K. (Gast)


Lesenswert?

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

von Lars (Gast)


Lesenswert?

Wieso invertierte Logik?

von Dietrich L. (dietrichl)


Lesenswert?

@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

von Simon K. (Gast)


Lesenswert?

@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.

von Mrc (Gast)


Lesenswert?

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...)

von Dietrich L. (dietrichl)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

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.

von operator (Gast)


Lesenswert?

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.

von M.O. (Gast)


Lesenswert?

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.

von Mrc (Gast)


Lesenswert?

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 ;-)

von Ulrich F. (Gast)


Lesenswert?

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.

von Uwe K. (ukhl)


Lesenswert?

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).

von GB (Gast)


Lesenswert?

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.

von 123 (Gast)


Lesenswert?

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 ?

von ... (Gast)


Lesenswert?

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.

von Ulrich F. (Gast)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

... 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.

von Uwe K. (ukhl)


Lesenswert?

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.

von Michael S. (rbs_phoenix)


Lesenswert?

... 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..

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.