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?
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
Daß der DMA-Arbiter die Streams eben priorisiert und jeweils nur einen durchläßt. Was dranhängt ist hier völlig egal.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.