Hi! Ich habe eine STM32 Nucleo G0 Board. Auf dem Board befindet sich ein Taster, der als Reset-Taster dienen soll. Jetzt liegt der NRST aber auf dem Board schon permanent auf 0V, der Taster hat somit keine Funktion, der Controller läuft jedoch. Kann der NRST deaktiviert werden? Bzw wie kann ich ihn aktivieren. In CubeMX ist er als EXTI parametriert. (Meine Frage ist nicht, warum der Pin permanent auf 0V liegt, sondern warum der Controller läuft, wenn der Pin auf 0V liegt)
Wenn du den Pin als GPIO konfigurierst, führt ein low-Pegel nicht mehr zu einem Reset. Sonst wäre es ja kein Eingang mehr, wenn du nur noch high-Pegel abfragen könntest... Wenn du ihn nicht als GPIO konfigurierst, führt ein low an NRST zum Reset. PS: Siehe z.B. RM0444 Abschnitt 5
:
Bearbeitet durch User
Christian schrieb: > warum der Controller läuft, wenn der Pin auf 0V liegt Weil (mindestens die neueren) STM32 ihren Reset intern erzeugen. Die haben keinen primitiven Power-On-Reset, sondern einen echten Komparator für VDD. Das NRST-Signal ist nur rausgeführt, weil viele Leute einen Reset-Taster haben wollen. Das Signal ist bidirektional/open drain und kann als Reset für die restliche Hardware benutzt werden, z.B. um bei einem Hard Fault die PWM-gesteuerte Heizung abzuschalten. Das geht aber auch mit einem GPIO und bei den meisten Timern sogar intern. Also wirklich nötig ist der Pin nicht.
Ahh, ok, Danke schon mal. Also würde es bedeuten, dass mit der Auswahl Reset_State die ursprüngliche Reset-Funktionalität gegeben ist? Inkl eingeschaltetem PullUp?
"Reset state" heißt bei ST i. A. analoger Eingang, dass ist nicht das, was man hier will. Was CubeMX in diesem speziellen Fall darunter versteht ... Da muss man im erzeugten Code nachschauen. Ich würde aber vermuten, dass das GPIO im analog-In, aber eben nicht NRST heißt. Bei dieser Auswahlbox werden zwei logisch getrennte Einstellungen vermischt: Einmal die Option Bytes (NRST_MODE), wo zwischen uni-/bidir. Reset-Funktionalität und GPIO-Modus umgeschaltet wird, zum anderen die (davon völlig unabhängige) GPIO-Konfiguration. "NRST" ist vermutlich die sinnvolle Wahl. Das sollte man nur ändern, wenn man sich über die Konsequenzen klar ist und wirklich unbedingt absolut keinen anderen Pin mehr übrig hat.
A. B. schrieb: > "NRST" ist vermutlich die sinnvolle Wahl. Das sollte man nur ändern, > wenn man sich über die Konsequenzen klar ist und wirklich unbedingt > absolut keinen anderen Pin mehr übrig hat. Das dachte ich mir auch zuerst, nur ist "PF2 - NRST" kein auswählbarer Parameter, sondern schlicht der Name des Pins. Dann hilft wohl wirklich nur noch Code-Analyse. Der Default ist übrigens EXTI (wie oben ausgewählt).
A. B. schrieb: > "Reset state" heißt bei ST i. A. analoger Eingang, dass ist nicht das, > was man hier will. Was CubeMX in diesem speziellen Fall darunter > versteht ... Nach dem Screenshot geht es vermutlich um einen STM32G031KxT. Dann vermute ich mal weiter... Man muss zwischen normalen GPIO-Pins und etwas spezielleren unterscheiden. Die JTAG/SWD-Pins sind z.B. speziell, aber NRST ist noch viel spezieller. STM32G031KxT. Der Pin funktioniert da unmittelbar nach einem Reset wie früher, bidirektionaler Reset. Dann werden die Option Bytes geladen und ab da gelten die beiden NRST_MODE Bits. Die sind bei fabrikneuen Chip 0b11, also gilt immer noch klassisches NRST. Das Programm kann dann im FLASH_OPTR die kopierten Bits ändern. 0b00 = reserviert 0b01 = NRST, aber nur Input 0b10 = PF2, Reset rein intern 0b11 = NRST klassisch Vermutlich erzeugt CubeMX Code, der daran rumspielt. Insofern würde ich "Reset_State" so interpretieren, dass dann die Option Bits gelten.
Bauform B. schrieb: > Nach dem Screenshot geht es vermutlich um einen STM32G031KxT. Dann > vermute ich mal weiter... > Man muss zwischen normalen GPIO-Pins und etwas spezielleren > unterscheiden. Die JTAG/SWD-Pins sind z.B. speziell, aber NRST ist noch > viel spezieller. STM32G031KxT. Der Pin funktioniert da unmittelbar nach > einem Reset wie früher, bidirektionaler Reset. Dann werden die Option > Bytes geladen und ab da gelten die beiden NRST_MODE Bits. Die sind bei > fabrikneuen Chip 0b11, also gilt immer noch klassisches NRST. Das > Programm kann dann im FLASH_OPTR die kopierten Bits ändern. > 0b00 = reserviert > 0b01 = NRST, aber nur Input > 0b10 = PF2, Reset rein intern > 0b11 = NRST klassisch > Vermutlich erzeugt CubeMX Code, der daran rumspielt. Insofern würde ich > "Reset_State" so interpretieren, dass dann die Option Bits gelten. Danke vielmals. :)
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.