Forum: Mikrocontroller und Digitale Elektronik STM32 ADC DMA falsche Interrupt Frequenz


von Peter M. (lctromnml)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich versuche auf einem STM32F407-VG Chip 14 ADC Werte über ADC1 
auszulesen, und diese über DMA zu speichern.

Da ich eine gewisse Anzahl an Werten mitteln möchte, will ich nach einem 
DMA Umlauf einen Interrupt auslösen und die Werte speichern.

Das funktioniert auch soweit alles, aber die Frequenz in der der 
Interrupt aufgerufen wird passt nicht ganz.

Ich habe den DMA_IT_TCIF0 Interrupt enabled, mein APB2 läuft auf 84MHz, 
meine Sampling Time  sind 8 cycles, und mein Prescaler ist 6.

Also denke ich dass der Transfer Complete Interrupt mit einer Frequenz 
von:

(84MHz / 6 Prescaler ) / ((12Cycles + 8Cycles Sampling Time) * 14 ADC 
channels) = 50 kHz

aufgerufen werden müsste, aber irgendwo denke ich da wohl falsch, denn 
er wird etwa mit 71kHz aufgerufen, weiß jemand warum?
Habe die Config Datei auch angehängt, die Datei mit den ganzen #defines 
nicht, aber die Wandlung und das wegspeichern funktioniert auch 
einwandfrei soweit ich das Beurteilen kann

Vielen Dank und
MfG

edit: habe mich vorher bei der tatsächlichen Frequenz verschrieben, 
jetzt ist es korrekt, 71kHz

von Peter M. (lctromnml)


Lesenswert?

Also das Problem das die Interrupts meiner Meinung nach zu häufig 
aufgerufen werden besteht nach wie vor.

Ansonsten lief jetzt alles fast 1 Woche lang völlig korrekt, und heute 
sind auf einmal alle Werte des Arrays das ich DMA_PeripheralBaseAddr 
übergebe allesamt um 4 bit links verschoben, und ich hab absolut keine 
Erklärung dafür.

Ich hab dank Versionsverwaltung noch die alten Stände, und da 
funktioniert es korrekt. Ich hab das verglichen und am DMA bzw ADC 
betreffenden Code keine Zeile geändert....

irgendjemand eine Idee  Vermutung  etc. ?
kann natürlich auch mehr code posten, sollte es irwas helfen..

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
Noch kein Account? Hier anmelden.