STM32 Pin-level bei Reset

Gast #2114196
Lesenswert?
• ▲
▼
Hallo,

ich arbeite gerade mit dem STM32F103V8 Prozessor von ST: ist es normal, 
dass bei einem Reset des Controllers per Software alle Pins auf Low 
geschaltet werden?

Ich dachte die Pins werden per default auf High-Level gezogen vom 
Prozessor selbst during a reset?

Problem ist folgendes: an meiner Resetleitung liegen mehrere Prozessoren 
direkt dran - allerdings möchte ich nur dass sich der STM32F103 
Prozessor resettet und nicht die anderen auch. Da aber die Resetleitung 
vom STM beim Reset auf  low gezogen wird, resetten sich die anderen auch 
alle mit :-(

Gruß
Jens
Gast
Lesenswert?
• ▲
▼
hier noch kurz mal der Code, wo ich den Prozessor resette: vielleicht 
ist dieser ja falsch bzw. muss anders formuliert werden:
1
void NVIC_SystemReset(void)
2
{
3
  SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      | 
4
                 (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | 
5
                 SCB_AIRCR_SYSRESETREQ_Msk);                   /* Keep priority group unchanged */
6
  __DSB();                                                     /* Ensure completion of memory access */              
7
  while(1);                                                    /* wait until reset */
8
}
Lesenswert?
• ▲
▼
Die Reset-Leitung der STM32 ist bidirektional konstruiert. Ein intern 
ausgelöster Reset kann auf diese Weise dazu verwendet werden, extern 
angeschlossene Devices gleich mit zurückzusetzen indem man deren Reset 
dort anschliesst.

Wenn du also alle Reset-Pins mehrerer Controller zusammenschaltest, dann 
kann es nicht ausbleiben, dass der von einem davon ausgelöste Reset alle 
anderen ebenfalls beglückt. Das ist nicht zu ändern.

Was ich oben beschrieb gilt für normale GPIO-Pins.
Gast
Lesenswert?
• ▲
▼
A. K. schrieb:
> Was ich beschrieb gilt für normale GPIO-Pins.

Im Prinzip gibt es einen Resetknopf der vom User betätigt werden kann 
und dann sollen alle Prozessoren resettet werden.

Ich dachte dass das von dir dargelegte Verhalten für alle Pins von einem 
Prozessor gilt, außer den VCCs GNDs etc.

D.h. ich kann nich alle Reset-Pins NRSTs von mehreren Prozessoren 
zusammenschalten sondern müsste jedesmal einen externen Reset-Controller 
verwenden?
Gast
Lesenswert?
• ▲
▼
Hier mal was ich ereichen möchte:

1. User soll per Resetknopf alle Prozessoren resetten können, damit ein 
definiertes Verhalten vorliegt -> alle Prozessoren fangen wieder von 
vorne an

2. Jeder dieser Prozessoren kann auch durch die eigene Software unter 
gewisssen Gegebenheiten resettet werden -> dann sollen die anderen 
Prozessoren allerdgins nichts resettet werden können.

Jetzt müsste ich für jeden Prozessor einen externen ResetController 
spendieren, damit ich dieses Verhalten erreiche? Oder gibt es noch 
andere Optionen?

Gruß
Jens
Gast
Lesenswert?
• ▲
▼
A. K. schrieb:
> Schau mal in die Reference, Kapitel RCC, Diagramm "6.1.2 Power reset".
das hab ich auch grad gefunden - mit dem schönen Bildchen...

A. K. schrieb:
> Direkt nicht. Du kannst aber die Pins beispielsweise mit (Schottky-)
> Dioden entkoppeln.

µC-NRST.Pin----|>|----RST-Leitung

Aber wird dann ein Low Pegel vom Resetbutton erkannt? Im Prinzip ist das 
Low-Signal vom Resetbutton oder von einem anderen Prozessor für einen 
zweiten Prozessor genau das gleiche Signal...
Lesenswert?
• ▲
▼
So:

µC1-NRST.Pin----|>|--+--RST-Leitung
                     |
µC2-NRST.Pin----|>|--|
                     |
µC3-NRST.Pin----|>|--|

> Aber wird dann ein Low Pegel vom Resetbutton erkannt?

Ja. Wenn der Pegel noch passt, weshalb da Schottky-Dioden wie BAT42 
sicherer sind als 1N4148. Kannst aber auch Open-Drain Treiber wie 74HC07 
an Stelle der Dioden nehmen.

> Im Prinzip ist das
> Low-Signal vom Resetbutton oder von einem anderen Prozessor für einen
> zweiten Prozessor genau das gleiche Signal...

Nö. Aufgrund der Dioden sehen sich die nicht mehr.
Gast
Lesenswert?
• ▲
▼
A. K. schrieb:
> Nö. Aufgrund der Dioden sehen sich die nicht mehr.

ok, weil an der Diode abhängig vom Typ ne gewisse Spannung abfällt und 
somit nach der Diode BAT41 keine Null Volt vorhanden sind sondern 
entsprechend mehr.
z.B. fallen über der Diode 0,41V ab dann sieht ein anderer Prozessor 
noch 3V3 - 0.41V und ist glücklich...

µC1-NRST.Pin---0V-|>|--+--RST-Leitung
Lesenswert?
• ▲
▼
Jens schrieb:

> z.B. fallen über der Diode 0,41V ab dann sieht ein anderer Prozessor
> noch 3V3 - 0.41V und ist glücklich...

Au weh...

Nochmal, um Missverständnisse zu vermeiden:

µC1.NRST----|>|--+--Reset-Taster, mit Kondensator parallel.
                 |
µC2.NRST----|>|--|
                 |
µC3.NRST----|>|--|
                 |
Vdd ----10KOhm---|

Der Widerstand ist nicht unbedingt nötig, erleichtert aber evtl. das 
Denken.

Und nun fang mal mit der Frage an, was eine Diode ist und wie herum sie 
wie funktioniert.

Was passiert mit µC2.NRST, wenn der Taster seine Leitung auf 0V legt?

Was passiert mit µC2.NRST, wenn µC1 seine NRST-Leitung auf 0V legt?
Gast
Lesenswert?
• ▲
▼
A. K. schrieb:
> Was passiert mit µC2.NRST, wenn der Taster seine Leitung auf 0V legt?

also VDD = 3V3 und der 10k dient als Pullup, so dass per default 3V3 
anliegen. Wenn jetzt der Taster auf 0V gezogen wird, dann ist alles aus 
0V -> Diode lässt durch.

A. K. schrieb:
> Was passiert mit µC2.NRST, wenn µC1 seine NRST-Leitung auf 0V legt?
Wenn ein µC auf 0V zieht, lässt die Diode nicht durch -> 3V3 an den 
anderen Controllern, da sie nichts mitbekommen vom Reset des einen 
Controllers...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.