Externe oder Interne Pullups

Gast #3879508
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
#3879528
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
Gast #3879546
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.
Gast #3879572
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.
Gast #3879580
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.
Gast #3879599
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 ;-)
#3880061
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).
Gast #3880205
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.
Gast #3880269
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.
Gast #3880322
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.
Gast #3881259
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.
#3881384
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.
#3881402
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..

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren