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.