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?
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.
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.
:
Bearbeitet durch User
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.
es gibt ja noch den BOOT0 Pin, über den kommt der µC nach dem Power On in das System Memory wenn der auf High Pegel liegt. Und dann funktieren SWD und Reset.
Beim STM32G030J6M6 ist BOOT0=SWCLK, also bei mir GPIO.
:
Bearbeitet durch User
Bauform B. schrieb: > Ich als Feigling würde den NRST wohl als letzten als GPIO benutzen und > eher einen Quarz durch einen externen Oszillator ersetzen. Der STM32G071KBT6 hat eh kein OSC_OUT, kann also selbst keinen Quarz schwingen lassen.
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.
Wenn ich mich recht erinnere: connect under reset, mit NRST auf GND beim Einschalten.
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?
Aus der Erinnerung: Beim Einschalten wird NRST_MODE ignoriert, bis NRST nicht mehr auf low gehalten wird.
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.
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.
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).
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. |
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
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.