STM32G071KBT6 Reset Pin

OP #7494238
Lesenswert?

Kann mir jemand sagen ob ich es richtig verstanden habe, dass man bei dem Prozessor NRST auch als GPIO nutzen kann? Ich würde das gerne machen, da ich fast alle Pins brauche. PA14 und PA13 habe ich mit SWD verbunden. Im Datenblatt steht, dass ich Reset state dieser Pin NRST ist. Der ist aber als Ausgang konfiguriert und floatet beim Start vermutlich. Kann ich nun per SWD initial flashen und danach ist der dann ein GPIO und der Prozessor startet weiterhin immer?

Gast #7494253
Lesenswert?

Gustav G. schrieb:

danach ist der dann ein GPIO und der Prozessor startet weiterhin immer

Ja, er startet weiterhin. Aber...

Die Funktion des Pins wird per Option Byte NRST_MODE konfiguriert, siehe https://www.mouser.com/datasheet/2/389/en.DM00371828-1620887.pdf

Wenn du ihn als GPIO (PF2) konfigurierst, ist das kein Reset Pin mehr. Je nach laufender Firmware kann es schwierig sein, den Debugger zu verbinden. Die Methode "Connect on Reset" entfällt dann nämlich.

Es gibt eine ganze Reihe zustände, in denen das Debugger-Interface inaktiv ist. Außerdem neigt Cube MX dazu, die Pins der SWD Schnittstelle per default als GPIO Pin fest zu legen. Damit sperrst du dich ganz schnell selbst aus.

Ich würde den Pin lieber nicht um konfigurieren.

#7494267
Lesenswert?

Gustav G. schrieb:

Im Datenblatt steht, dass ich Reset state dieser Pin NRST ist. Der ist aber als Ausgang konfiguriert und floatet beim Start vermutlich.

Direkt nach dem Einschalten ist er erstmal ganz kurz undefiniert und dann Open Drain Ausgang und Low. Dann wahrscheinlich Open Drain mit Pull-Up, also High. Dann werden die Option Bytes geladen und auf GPIO umgeschaltet. So verstehe ich jedenfalls diese Warnung:

1
Upon power reset or wakeup from shutdown mode, the NRST pin is configured
2
as Reset input/output and driven low by the system until it is reconfigured
3
to the expected mode when the option bytes are loaded, in the fourth clock
4
cycle after the end of trstempo.

Der Port F wird im GPIO-Kapitel nicht weiter erwähnt, also wenn STM nichts vergessen hat, ist der Pin anschließend ganz normal im Analog Mode, ohne Pull-Up.

Normalerweise bekommt der NRST ja einen 100nF. Den will man an einem GPIO-Ausgang nicht haben, aber der Pin ist nach dem Einschalten ja ein NRST-Pin. Wie man es macht, ist es verkehrt.

...ich fast alle Pins brauche.

Ich als Feigling würde den NRST wohl als letzten als GPIO benutzen und eher einen Quarz durch einen externen Oszillator ersetzen. Vor allem, weil ich dann die Option Bytes nicht anfassen muss.

Gast #7494280
Lesenswert?

Anton schrieb:

Ich verwende NRST als GPIO bei einem STM32G030J6M6 (8 Pins), da geht das offiziell gar nicht: NRST_MODE taucht nicht in der Doku auf. Geht aber genauso wie beim STM32G031. SWDIO und SWCLK verwende ich auch als GPIO. Dennoch bin ich nicht ausgesperrt.

Wäre schön, wenn du erklären würdest, wie man/du in diesem Fall den Debugger verbindest.

Gast #7494352
Lesenswert?

Anton schrieb:

Wenn ich mich recht erinnere: connect under reset, mit NRST auf GND beim Einschalten.

Moment, dass würde ja bedeuten, dass der Pin trotz NRST_MODE Anfangs ein Reset-Pin ist und

a) einen Low-Impuls ausgibt und b) zum normalen Start nicht auf Low gehalten werden darf.

Richtig?

Gast #7494370
Lesenswert?

Anton schrieb:

Aus der Erinnerung: Beim Einschalten wird NRST_MODE ignoriert, bis NRST nicht mehr auf low gehalten wird.

Besten Dank.

Schade, dass das im Datenblatt/Reference Manual nicht deutlich geschrieben steht. Meine Fähigkeit, zwischen den Zeilen zu lesen, wurde von bekannten chinesischen Marken verbraucht. Mittlerweile glaube ich gar nichts mehr, was ich nicht selbst ausprobiert habe. Mir tun die Leute leid, die damit ihre Brötchen verdienen müssen.

#7494375
Lesenswert?

Der ST-Link geht auch ohne NRST, wird nur für connect under reset benötigt und das geht notfalls auch per Taster oder Strippe, wird ja nur gebraucht, bis der Debugger die Kontrolle übernommen hat. Bei den billigen ST-Link-Nachbauten ist der Reset-Pin eh für den STM32 falsch angeschlossen und damit funktionslos (aber wohl richtig für den STM8 angeschlossen).

#7494388
Lesenswert?

Stefan F. schrieb:

Anton schrieb:

Aus der Erinnerung: Beim Einschalten wird NRST_MODE ignoriert, bis NRST nicht mehr auf low gehalten wird.

Besten Dank.

Schade, dass das im Datenblatt/Reference Manual nicht deutlich geschrieben steht.

Das RM0444 warnt im Kapitel Reset and clock control:

1
Upon power reset or wakeup from shutdown mode, the NRST pin is configured
2
as Reset input/output and driven low by the system until it is reconfigured
3
to the expected mode when the option bytes are loaded, in the fourth clock
4
cycle after the end of trstempo.
#7494395
Lesenswert?

Gustav G. schrieb:

Aus den Antworten zu urteilen überlege ich es mir den NRST Pin doch per RC Glied auf 3.3V zu legen. Ich dachte den kann ich mir komplett sparen aber als ich gerade mal ein anderes Design angesehen habe wird der ST-Link an NRST angeschlossen.

Ich verwende an dieser Stelle gerne einen MCP121, sofern meine Spannungsversorgung kein Power Good Signal liefert.

https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20001906D.pdf

Und wenn Du knapp an Pins bist, würde ich einfach einen Chip mit mehr Pins nehmen. Gibts ja, ist ja kein Problem.

fchk

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