Domanda

Il DMA per la serie STM32F4 ha alcune funzioni avanzate, potrei chiedere chiarimenti qui?

    .
  • Stream concorrente: i due flussi possono trasmettere i dati allo stesso tempo? Dal momento che è consentito il trasferimento di un byte. Se la larghezza del bus è a 32 bit, è possibile 4 trasmissione concorrente. BTW, qual è la larghezza del bus AHB per STM32?

  • Modalità FIFO: Se la trasmissione simultanea non è possibile, immagino che FIFO possa essere usato qui. FIFO contribuirebbe ad attendere i dati pronti dalle periferiche a bassa velocità a DMA senza occupare il bus AHB. Quando una certa quantità di dati è pronta, il pezzo di dati verrà inviato alla memoria insieme. La mia comprensione è corretta?

.

Profondità a quattro parole 32 BUFFER DI PROFONDAMENTO DI PRIMA DI MEMORIA (FIFO) PER STREAMENTO

Cosa significa? Quanti dati possono essere memorizzati nella FIFO? 4 o 4 * 32?

    .
  • Modalità burst: cosa fa effettivamente la modalità burst? Dice nella scheda tecnica che 65535 dati possono essere trasmessi. Qual è la relazione tra 65535 con la modalità Burst?

  • Modalità doppia tampone:

.

Transazioni a doppio buffer Transazioni: doppio buffer Trasferimenti utilizzando due Puntatori di memoria per la memoria (mentre il DMA sta leggendo / scrivendo Da / per un buffer, l'applicazione può scrivere / leggere / dagli altri
buffer). ----- dal manuale di riferimento di STM32F4

La mia domanda è: Durante la trasmissione DMA, il bus AHB non è disponibile per Cortex M4, come potrebbe l'applicazione leggi dall'altro tampone?

È stato utile?

Soluzione

Dopo aver fatto qualche ricerca, ecco cosa ho trovato, nel caso qualcuno potrebbe averne bisogno.

    .
  • Stream concorrente: non possibile entro un DMA. Possibile avere DMA1, DMA2 in esecuzione contemporaneamente. Per esempio: F427 può fare simultaneamente:

      .
    • Accesso CPU a Flash (codice di lettura)
    • DMA1 Accesso a SRAM (per trasferire un po 'di buffer)
    • accesso DMA2 a sdram (un altro buffer)
  • FIFO viene utilizzato per memorizzare i dati temporaneamente dal dispositivo a bassa velocità. Quando è stata accumulata una certa quantità di dati, potrebbe essere inviato una burst, per salvare la risorsa di AHB. Poiché quando AHB viene utilizzato da DMAC, non può essere utilizzato dal processore. FIFO ha 4 * 32 bit. Può essere configurato come 16 * 8 bit (16 * 0ne byte).

  • Modalità burst: un pezzo di dati viene inviato continuamente da, ad esempio FIFO a, dire memoria. L'AHB sarà occupato solo quando viene inviato Burst. La modalità Burst viene utilizzata per salvare la risorsa di AHB. Non è correlato con la limitazione delle dimensioni dei dati 65535.
  • Doppio buffer: Come è stato detto prima, AHB è occupato solo quando i dati vengono trasferiti. Pertanto, il processore può ancora recuperare i dati dalla memoria quando DMA non occupa AHB.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top