Forum: Mikrocontroller und Digitale Elektronik [STM32] Probleme mit Peripherie nach STOP-Mode


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Guten Nachmittag :)

ich hab einen STM32L1, der nach dem STOP-Mode manchmal nicht richtig 
funktioniert.

Beispielsweise hängt er dann in einer Re-Initialisierung des ADCs:
1
/* Enable ADC1 */
2
ADC_Cmd(ADC1, ENABLE);
3
/* Wait until the ADC1 is ready */
4
while (ADC_GetFlagStatus(ADC1, ADC_FLAG_ADONS) == RESET) {
5
}
6
7
ADC_TempSensorVrefintCmd(ENABLE);
8
while (!(PWR->CSR & PWR_CSR_VREFINTRDYF)) {
9
}

Manchmal in der oberen While-Schleife, manchmal in der unteren.

Ich hatte nach dem STOP-Mode die Hardware einfach nochmal komplett neu 
initialisiert und meistens funktioniert das ohne Probleme.

Die beste Problemlösung bisher war:
1
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
2
NVIC_SystemReset();


Kennt das Phänomen zufällig jemand und weiß Abhilfe?



Viele Grüße,
Mampf

: Bearbeitet durch User
von W.S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich kenn zwar dein Problem nicht, aber ich würde mir entweder die 
betreffenden Bibliotheksfunktionen genauer ansehen oder das 
Herunterfahren und Wiederbeleben selbst schreiben, ebenso die 
Initialisierungen.

Oftmals braucht es die passende Reihenfolge beim Wiederzuschalten von 
Peripherie-Cores und deren Taktversorgung, sonst hackt man womöglich auf 
einem Register herum, das grad eben noch taub ist, weil man vergessen 
hat, daß gerade dieses Register ab Reset ja per default aktiviert war, 
was aber nach Taktabschaltungen eben nicht mehr der Fall ist.

W.S.

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
W.S. schrieb:
> Oftmals braucht es die passende Reihenfolge beim Wiederzuschalten von
> Peripherie-Cores und deren Taktversorgung, sonst hackt man womöglich auf
> einem Register herum, das grad eben noch taub ist, weil man vergessen
> hat, daß gerade dieses Register ab Reset ja per default aktiviert war,
> was aber nach Taktabschaltungen eben nicht mehr der Fall ist.

Interessanter Tipp, danke :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.