Forum: Mikrocontroller und Digitale Elektronik Renesas RA4M1 , SPI mit DMAC


von Roy .. (royw)


Lesenswert?

Hallo,
ich möchte mit dem R7FA4M1 von Renesas ein SPI ADC auslesen.
Da das sehr schnell und mit wenig Ressourcen passieren soll möchte ic 
hdas per DMAC machen.
Leider stelle ich mich anscheinen zu "bl.." an und bekomme es einfach 
nicht hin.
Hat das jemand schon mal gemacht und kann mir da Starthilfe geben ?

Ic hbenutze das e2 Studio mit dem FSP4.0

Vielen Dank im Voraus

von Patrick C. (pcrom)


Lesenswert?

Roy .. schrieb:
> Da das sehr schnell und mit wenig Ressourcen passieren soll möchte ich
> das per DMAC machen.

Welches ADC benutzt du ?
Bis die sicher das die SPI kommunikation der beschaenkende factor ist 
und nicht der Analog-Digital conversion ?
Musz der processor weiter noch etwas machen wahrende die SPI 
kommunikation ?
DMA macht die SPI kommunikation nicht schneller.

Patrick aus die Niederlande

von Roy .. (royw)


Lesenswert?

Der ADC ist sehr schnell und der Prozessor macht noch deutlich mehr und 
dadurch möchte ich nicht zig µs auf die Kommunikation warten, sondern 
nur das Ergebnis verarbeiten. Dafür wurde ja DMA erfunden, das die MCU 
entlastet wird. Ich möchte keinen anderen Weg gehen, sondern es per DMA 
lösen.
Ich habe es bereits bei anderen MCUs gemacht, aber der Renesas/ Software 
möchte es nicht so machen wie ich es will ... Oder ich verstehe die 
Logik dahinter nicht ...

: Bearbeitet durch User
von Patrick C. (pcrom)


Lesenswert?

Roy .. schrieb:
> möchte ich nicht zig µs auf die Kommunikation warten
Versteh ich, deswegen wuerde ich da einen interrupt verwenden. Ich 
versteh nicht warum DMA es dann schneller machen wuerde. Aber es kann 
sein das ich die funktion von DMA dann nicht so richtig verstehe. Wenn 
du sagst welcher ADC du benutzt kann ich mich vielleicht besser eine 
vorstellung machen.

Patrick aus die Niederlande

von Roy .. (royw)


Lesenswert?

DMA transferiert Daten ohne Zutun der MCU. Beim Interrupt Mode musst du 
ja das Daten senden für jedes Byte usw. Selbst starten. Das kostet 
natürlich Zeit und Ressourcen. Beim DMA sagst du nur von wo nach wo und 
wie viele Bytes übertragen werden sollen. Wenn die Übertragung fertig 
ist wird ein Interrupt ausgelöst.

Der ADC ist der ADS131A04

von Patrick C. (pcrom)


Lesenswert?

Ok, danke fuer die weitere Erklärung
Patrick

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.