STM32 PVD Interrupt wird nicht ausgelöst

Gast #5934734
Lesenswert?
• ▲
▼
Hallo zusammen,

ich verzweifle gerade am PVD (Programmable Voltage Detector) eines 
STM32H7, den ich benutzen möchte vor einer Stromunterbrechung ein paar 
Bytes an Daten in den Flash zu schreiben. Zum Test wollte ich mich 
darauf beschränken einfach einen Pin auf High zu ziehen und mir mit 
einem Oszilloskop anzuschauen, wie lange der uC etwa nach der 
Abschaltung noch läuft. Die Zeitspanne, in der die Spannung von 2.85 V 
auf 1.62 V fällt liegt etwa bei 10 ms.

Konfiguriert ist alles mit CubeMX, was zu folgendem Code führt:
1
  /* Peripheral interrupt init */
2
  /* PVD_AVD_IRQn interrupt configuration */
3
  HAL_NVIC_SetPriority(PVD_AVD_IRQn, 0, 0);
4
  HAL_NVIC_EnableIRQ(PVD_AVD_IRQn);
5

6
  /** PVD Configuration 
7
  */
8
  sConfigPVD.PVDLevel = PWR_PVDLEVEL_7;
9
  sConfigPVD.Mode = PWR_PVD_MODE_IT_RISING;
10
  HAL_PWR_ConfigPVD(&sConfigPVD);
11
  /** Enable the PVD Output 
12
  */
13
  HAL_PWR_EnablePVD(); // PVDE bit setzen

Das funktioniert so weit, dass wenn ich einen Software-Trigger per 
EXTI->SWIER1 gebe, der Interrupt ausgelöst, und der Pin auf High gezogen 
wird. Seitens EXTI und NVIC scheint für mich also alles zu passen. Das 
PVDE-bit in PWR_CR1 ist gesetzt, das habe ich auch geprüft, also sollte 
der PVD aktiv sein.

Hat jemand eine Idee, wo der Fehler liegen könnte?
#5935631
Lesenswert?
• ▲
▼
rgb schrieb:
> Zum Test wollte ich mich
> darauf beschränken einfach einen Pin auf High zu ziehen und mir mit
> einem Oszilloskop anzuschauen, wie lange der uC etwa nach der
> Abschaltung noch läuft.

Hat den Schönheitsfehler das der Stromverbrauch moderner µC um mehrere 
Größenordnungen schwanken kann wenn man deren Stromspar Fähigkeiten 
einsetzt.

"Alle Peripherials eingeschaltet" zieht heutzutage mehr Strom als der 
CPU Kern selbst, sogar wenn der sowas wie CoreMark berechnen muss.



Wieso eigentlich "Rising" Edge und nicht "falling" Edge?
Ist das nicht der flasche Übergang? Ich hätte - ohne das Manual gelesen 
zu haben - jetzt spontan eher PWR_PVD_MODE_IT_FALLING versucht.

Antwort schreiben

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.

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.