Forum: Mikrocontroller und Digitale Elektronik STM32 und interne Pull-Up Widerstände


von Mr. Mister (Gast)


Lesenswert?

Hi,

Woher weiß ich, ob die GPIOs eines STM32 interne Pull-Up Widerstände 
besitzen? Ich habe ins Datenblatt geschaut und habe nur gesehen, dass 
der RST Pin einen schwachen Pull-Up besitzt.

MfG

von STM32-Experte (Gast)


Lesenswert?

Was ist die Frage? Pullup am GPIO oder Pullup am RESET? Das sind zwei 
unterschiedliche Dinge, da der Reset-Pin nicht zu GPIO gehört.
Der Pullup am Reset reicht in der Regel aus, da er ziemlich hochohmig 
ist, sehe ich dort meist einen 10 kOhm Pullup vor.
Pullups und Pulldowns an den GPIO-Pins lassen sich per Software 
aktivieren. Im Auslieferzustand sind die jedoch nicht aktiviert.

von Mr. Mister (Gast)


Lesenswert?

Es geht mir um die GPIOs. Ich wollte den STM32F302RBT6 verwenden.

von Tilo (Gast)


Lesenswert?

Steht im Datenblatt, dir müssen aktiviert werden.
Es handelt sich aber um Stromquellen und nicht um Widerstände.
Die Werte können sich je nach Pin unterscheiden.

von Mr. Mister (Gast)


Lesenswert?

Tilo schrieb:
> Steht im Datenblatt, dir müssen aktiviert werden.
> Es handelt sich aber um Stromquellen und nicht um Widerstände.
> Die Werte können sich je nach Pin unterscheiden.

Danke. Wo genau im Datenblatt steht das? Ich bin gerade in der Rubrik 
"Pinouts und Pin Description" und finde dazu nichts.

von Cyblord -. (cyblord)


Lesenswert?

Mr. Mister schrieb:
> Tilo schrieb:
>> Steht im Datenblatt, dir müssen aktiviert werden.
>> Es handelt sich aber um Stromquellen und nicht um Widerstände.
>> Die Werte können sich je nach Pin unterscheiden.
>
> Danke. Wo genau im Datenblatt steht das? Ich bin gerade in der Rubrik
> "Pinouts und Pin Description" und finde dazu nichts.

Da hüpf mal ins Kapitel GPIOs.

von Mr. Mister (Gast)


Lesenswert?

Danke Cyblord ;)

Ich habe es  nun gefunden. Da steht:

"Each of the GPIO pins can be configured by software as output 
(push-pull or open-drain), as
input (with or without pull-up or pull-down) or as peripheral alternate 
function. Most of the
GPIO pins are shared with digital or analog alternate functions. All 
GPIOs are high current
capable except for analog inputs.
The I/Os alternate function configuration can be locked if needed 
following a specific
sequence in order to avoid spurious writing to the I/Os registers.
Fast I/O handling allows I/O toggling up to 36 MHz."

MfG

von Johnny B. (johnnyb)


Lesenswert?

Bei den STM32 ist es zum Glück die Ausnahme, wenn ein GPIO keine Pull-Up 
und -Down Widerstände hat.

von Bauform B. (bauformb)


Lesenswert?

Tilo schrieb:
> Steht im Datenblatt, dir müssen aktiviert werden.
> Es handelt sich aber um Stromquellen und nicht um Widerstände.
> Die Werte können sich je nach Pin unterscheiden.

So schlecht sind die garnicht, 25k bis 55k über alles, und
1
Pull-up and pull-down resistors are designed with a true resistance
2
in series with a switchable PMOS/NMOS. This PMOS/NMOS contribution
3
to the series resistance is minimum (~10% order).

Aber ich finde sie ziemlich nutzlos. Nach einem Reset sind sie erstmal 
abgeschaltet, auch beim Flashen oder wenn man den eingebauten Bootloader 
benutzt. Da die meisten Ausgänge nicht floaten dürfen muss man trotzdem 
echte Widerstände spendieren.

von S. R. (svenska)


Lesenswert?

Bauform B. schrieb:
> Da die meisten Ausgänge nicht floaten dürfen muss man trotzdem
> echte Widerstände spendieren.

In der Regel ist es in Ordnung, wenn die Ausgänge nach einem Reset für 
ein paar µs floaten. Bis dahin ist der Startup-Code normalerweise soweit 
durchgelaufen, dass die Pins initial korrekt konfiguriert sind.

von Gerd E. (robberknight)


Lesenswert?

Bauform B. schrieb:
> Aber ich finde sie ziemlich nutzlos. Nach einem Reset sind sie erstmal
> abgeschaltet, auch beim Flashen oder wenn man den eingebauten Bootloader
> benutzt. Da die meisten Ausgänge nicht floaten dürfen muss man trotzdem
> echte Widerstände spendieren.

Das hängt doch ziemlich von der Art des Ausgangs ab. Wenn da 
Leistungs-FETs dranhängen, sollte man tatsächlich externe Widerstände 
vorsehen. Aber Kommunikationsschnittstellen brauchen das z.B. oft nicht. 
Da spielt es meist keine große Rolle wenn da für ein paar Sekunden kein 
gültiges Signal anliegt, da die Empfänger das als ungültig erkennen bzw. 
nach dem Start des Controllers sowieso neu initialisiert werden.

Und was wäre denn die Alternative? Was sollte ST da während des Bootens 
aktivieren? Pullups oder Pulldowns?
Für P-FETs brauchst Du Pullups, für N-FETs Pulldowns, für UART 
Pullups,...

Wenn es Dir zu viele Widerstände werden, kannst du übrigens fertige 
Widerstandsarrays nehmen. Gibt es z.B. als 4 oder 8 Widerstände in einem 
Bauteil.

von Bauform B. (bauformb)


Lesenswert?

S. R. schrieb:
> Bauform B. schrieb:
>> Da die meisten Ausgänge nicht floaten dürfen muss man trotzdem
>> echte Widerstände spendieren.
>
> In der Regel ist es in Ordnung, wenn die Ausgänge nach einem Reset für
> ein paar µs floaten.

Na gut, solange es nur µs sind. Aber beim Flashen sind es ganze 
Sekunden. Bei einem Brown Out kommt der Reset z.B. bei 2.8V, dann fällt 
die Spannung ganz langsam ab und die externe Hardware macht was sie 
will.

Gerd E. schrieb:
> Und was wäre denn die Alternative? Was sollte ST da während des Bootens
> aktivieren? Pullups oder Pulldowns?

Nichts, das passt schon so. Selbst wenn man sich für up oder down 
entscheiden könnte, damit es sich lohnt, müssten die ja bis unter 0.3V 
noch wie ein Widerstand aussehen.

von Johnny B. (johnnyb)


Lesenswert?

Bauform B. schrieb:
> S. R. schrieb:
>> Bauform B. schrieb:
>>> Da die meisten Ausgänge nicht floaten dürfen muss man trotzdem
>>> echte Widerstände spendieren.
>>
>> In der Regel ist es in Ordnung, wenn die Ausgänge nach einem Reset für
>> ein paar µs floaten.
>
> Na gut, solange es nur µs sind. Aber beim Flashen sind es ganze
> Sekunden. Bei einem Brown Out kommt der Reset z.B. bei 2.8V, dann fällt
> die Spannung ganz langsam ab und die externe Hardware macht was sie
> will.

Du musst ja oft nicht bei allen Ausgängen einen externen Pull-Up oder 
-Down haben. Viele IC's haben einen Enable Pin, Chip-Select, Output 
enable oder sowas, dann brauchst Du nur diesen so zu beschalten und die 
Datenleitungen können floaten wie sie wollen.

von Cyblord -. (cyblord)


Lesenswert?

Bauform B. schrieb:
> Na gut, solange es nur µs sind. Aber beim Flashen sind es ganze
> Sekunden. Bei einem Brown Out kommt der Reset z.B. bei 2.8V, dann fällt
> die Spannung ganz langsam ab und die externe Hardware macht was sie
> will.

Die internen PullUp/Downs sind in erster Linie für EINGÄNGE gedacht.

(Ausnahmen können bidirektionale Busse sein, aber auch dort interessiert 
es niemanden wann der PullUp aktiv wird.)

Aber OFFENSICHTLICH sind die bei Ausgängen nutzlos, da ein aktiver 
Controller einen Ausgang aktiv steuern kann, und dazu keinen PullUp 
benötigt. Und ein inaktiver Controller hat auch keine aktiven Pullups.

Erstaunlich dass man das explizit klarstellen muss.

: Bearbeitet durch User
von jzeller (Gast)


Lesenswert?

Der Beitrag ist zwar schon etwas älter, aber dieses pauschale 
Oberlehrer-Statement kann so nicht unkommentiert stehen bleiben.

Wenn irgendwelche Zusammenhänge explizit klargestellt werden müssten, 
dann sollte dies auch korrekt erfolgen. Erstaunlich dass man das 
explizit klarstellen muss.

Pullups/downs sind eben nicht nur für Eingänge relevant! Was ist denn 
mit open drain Ausgängen?
Während des Bootens oder Flashens sind die als Ausgänge vorgesehenenn 
GPIOs erst mal Eingänge.
Ich fände es definitiv nützlich, wenn man z.B. mit Fuse-Bits die default 
PullUp/DN Konfiguration festlegen könnte.

von Glutenfreier Veganer von FFF, der im Lehmhaus lebt (Gast)


Lesenswert?

jzeller schrieb:
> Was ist denn
> mit open drain Ausgängen?

Die erfordern in der Regel ganz andere Werte. Z.B. um Lasten zu treiben 
< 5k oder I²C auch < 10k. ALso doch extern.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

jzeller schrieb:
> Ich fände es definitiv nützlich, wenn man z.B. mit Fuse-Bits die default
> PullUp/DN Konfiguration festlegen könnte.

Beim STM werden die Fuses auch erst mit eine Ur-Lader ausgelesen. Damit 
gaebe es immer noch ein Fenster, in dem die Eingaenge floaten. Oder STM 
muesste solche GPIP PULL Fuses auch noch anders als die anderen Fuses 
implementieren.

von Glutenfreier Veganer von FFF, der im Lehmhaus lebt (Gast)


Lesenswert?

Wenn externe Hardware an einem Bus oder ähnlichem bei einem Reset nicht 
reagieren dürfen, muss man diese nunmal mit einem externen Pullup/down 
absichern. Oder im Moment des Schreiben den Strom trennen etc. etc.

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.