Forum: Mikrocontroller und Digitale Elektronik STM32F103 DMA ADC und SPI gleichzeitig Fehler


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 Willem B. (mr_willem)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine Frage bezüglich der gleichzeitigen Nutzung des STM32F103 
DMA Controllers für SPI und ADC

Ich habe ein Board mit mehreren SPI LED Controllern, LED siebensegment 
Controllern und einem ADC der Pushbuttons abfragt.
Wenn ich nun auf dem Siebensegment Controller eine Laufschrift laufen 
lasse, und dementsprechend viele DMA Transfers für den SPI Bus generiere 
geht das ca. 1 bis 3 Stunden gut. Dann wird der DMA Transfer Complete 
Interrupt nicht ausgelöst.
Das Transfer Completet Interrupt Flag ist zu diesem Zeitpunkt auch nicht 
gesetzt.

Benutzt werden
DMA1_Channel1 -> ADC
DMA1_Channel2 -> SPI RX
DMA1_Channel3 -> SPI TX

Stoppe ich den DMA Controller einmalig per pushbutton (im Prinzip durch
1
DMA_Cmd(DMA1_Channel2, DISABLE);
2
DMA_Cmd(DMA1_Channel3, DISABLE);
und starte dann einen neuen Transfer läuft alles erst mal ein paar 
Stunden normal weiter, bis irgendwann der Transfer complete Interrupt 
erneut nicht ausgeführt wird.

Wenn ich nun den ADC inklusive ADC DMA nicht starte läuft alles 
mindestens drei Tage durch (danach habe ich es ausgeschaltet).

Meine Frage ist deshalb, weiß jemand ob sich DMA mit ADC und DMA mit SPI 
beim STM32F103 beißen kann?

Für diejenigen die sich den Code anschauen wollen, der findet sich auf 
meinem GitHub account unter

https://github.com/mrwillem/versatube-display/tree/master/src

der ADC DMA wird in buttons.c, der SPI DMA in spi.c konfiguriert.

Vielen Dank für Antworten.

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.