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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mr. Mister (Gast)


Bewertung
1 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht lesenswert
Es geht mir um die GPIOs. Ich wollte den STM32F302RBT6 verwenden.

von Tilo (Gast)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
2 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-2 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.