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
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.
Es geht mir um die GPIOs. Ich wollte den STM32F302RBT6 verwenden.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.