STM32 DMA(gleichzeitige Strom -, FIFO -, burst-Modus,Doppel-Puffer)
Den DMA für die stm32F4-Serie verfügt über einige erweiterte Funktionen, könnte ich bitte um Klärung hier?
-
Gleichzeitige stream: Können zwei streams übertragen Daten in der gleichen Zeit? Da ein byte übertragen darf. Wenn der bus Breite 32 bit, 4 gleichzeitige übertragung möglich ist. Btw, was ist die Breite der AHB-bus für STM32?
-
FIFO-Modus: Wenn gleichzeitige übertragung ist nicht möglich, ich denke, FIFO, könnte hier verwendet werden. FIFO helfen würde, zu warten, bereiten Daten von low-speed-Peripheriegeräte mit DMA ohne Belegung der AHB-bus. Wenn eine bestimmte Menge von Daten bereit sind, der Block von Daten, die gesendet werden, um Speicher zusammen. Ist mein Verständnis richtig?
Vier-Wort-Tiefe 32 (first-in, first-out Puffer (FIFO) pro stream
Was bedeutet das? Wie viele Daten können gespeichert werden, in den FIFO? 4 oder 4*32?
-
Burst-Modus: Was ist eigentlich burst-Modus zu tun? Es sagt im Datenblatt, dass 65535 Daten übertragen werden können. Was ist die Beziehung zwischen 65535 mit dem burst-Modus?
-
Double buffer Modus:
Double-buffer-Typ Transaktionen: double-buffer-übertragung mit zwei
Speicher Zeiger für den Speicher (während der DMA-Lesen/schreiben
aus einem/in einen Puffer, kann die Anwendung schreiben/Lesen auf/von der anderen
Puffer). -----Aus dem Handbuch von STM32F4
Meine Frage ist: Während der DMA-übertragung, die AHB-bus ist nicht verfügbar für Cortex M4, wie könnte die Anwendung Lesen, aus dem anderen Puffer?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem ich einige der Forschung, hier ist was ich gefunden habe, falls jemand es brauchen kann.
gleichzeitige Strom: Nicht möglich, innerhalb eines DMA. Möglich, DMA1, DMA2 gleichzeitig ausgeführt.
E. g:
F427 tun können, gleichzeitig:
FIFO wird verwendet, um Daten vorübergehend zu speichern, von Low-speed-Gerät. Wenn eine bestimmte Menge an Daten angesammelt haben, ein burst gesendet werden könnten, zu speichern Ressource der AHB. Seit Wann AHB wird von DMAC, es kann nicht verwendet werden, die von Prozessor zu Prozessor. FIFO hat 4*32 bit Größe. Es kann konfiguriert werden als 16*8 bit (16*0ne byte).