Forum: Mikrocontroller und Digitale Elektronik STM32 F2, DMA und SPI


von Tom (Gast)


Lesenswert?

Hallo

Ist es grundsätzlich möglich, zwei DMA-Streams auf dieselbe Peripherie 
schreiben zu lassen?

Grundgedanke wäre:

* DMA2_Stream3 mit DMA_Mode_Circular und Prio_Low
* DMA2_Stream5 mit DMA_Mode_Normal und Prio_VeryHigh
* beide bekommen als Memory0BaseAddress "(uint32_t)&(SPI1->DR)"

Sinn des ganzen: niederpriorer dauernder Datenstrom, der immer wieder 
mal von einem hochprioren Transfer verdrängt wird.

Ist soetwas möglich? Erste Tests deuten auf "nein" hin, das heißt, der 
eine Stream alleine funktioniert, der andere alleine auch, nur zusammen 
kommt Mist auf der SPI raus.

Ich denke mir das so, daß der DMA-Arbiter eigentlich für exklusiven 
Zugriff aufs DR sorgt. Ist dem nicht so?
von Sven Wagner (Gast)


Lesenswert?

Tom schrieb:
> Ist soetwas möglich? Erste Tests deuten auf "nein" hin, das heißt, der
> eine Stream alleine funktioniert, der andere alleine auch, nur zusammen
> kommt Mist auf der SPI raus.
Was hattest Du denn erwartet? Und was hängt am SPI dran?

Grüße
Sven
von Martin (Gast)


Lesenswert?

Daß der DMA-Arbiter die Streams eben priorisiert und jeweils nur einen 
durchläßt.

Was dranhängt ist hier völlig egal.
von Tom (Gast)


Lesenswert?

So in der Art.

Dahinter hängt ein anderer STM32. Jeder Stream für sich funktioniert 
auch. Nur gemeinsam nicht.
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.