Forum: Mikrocontroller und Digitale Elektronik STM32F4 / DMA


von Michael W. (Gast)


Lesenswert?

Liebe Forumsgemeinschaft,

ich habe neulich einen 2 Kanal ADC mit DMA zum Laufen gebracht.
Im continous Mode war dies kein Problem und lief beim ersten mal.
Nun wollte ich vorgeben, wann eine Konversion gestartet wird, und habe 
auf normalen Mode geschaltet. Am DMA Channel habe ich den Circular-Mode 
disabled. Die ADC Konversion wird nun über einen Timer jede ms 
getriggert.

Ich habe festgestellt, dass man nach einem Konvertierungszyklus mit DMA 
sowohl den DMA Channel (DMA_SxCR Bit EN), wie auch das DMA Bit für den 
ADC (ADC_CR2 Bit DMA) aus- und wieder einschalten muss, damit der Zyklus 
wiederholt gestartet werden kann. Während ich letzteres tatsächlich im 
Reference Manual des ADCs fand:
1
No new DMA request is issued to the DMA controller if the DDS bit is cleared to 0 in the ADC_CR2 register (this avoids generating an overrun error). 
2
However the DMA bit is not cleared by hardware. It must be written to 0, then to 1 to start a new transfer.

vermisse ich eine analoge Aussage für den DMA Kanal. Ist es 
erforderlich, den Kanal zu dis/enablen, um Transfers wieder zu starten, 
oder geht dies auch anders?

Danke und Grüße,
Michael

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.