Pregunta

La serie DMA para STM32F4 tiene algunas funciones avanzadas, ¿podría pedir una aclaración aquí?

  • CRAPEÑO CONCURRENTE: ¿Puede dos secuencias transmitir datos al mismo tiempo? Dado que se permite una transferencia de bytes. Si el ancho del autobús es de 32 bits, 4 transmisión concurrente es posible. BTW, ¿cuál es el ancho del bus AHB para STM32?

  • Modo FIFO: Si la transmisión concurrente no es posible, supongo que FIFO podría usarse aquí. FIFO ayudaría a esperar los datos listos de periféricos de baja velocidad a DMA sin ocupar el bus AHB. Cuando se listo una cierta cantidad de datos, el trozo de datos se enviará a la memoria juntos. ¿Mi comprensión es correcta?

FIRT-WORD PROFT PLOTE 32 PRIMERO, FIRMA DE MEMORIA DE MEMORIA (FIFOS) por secuencias

¿Qué significa eso? ¿Cuántos datos se pueden almacenar en la FIFO? 4 o 4 * 32?

  • Modo de ráfaga: ¿Qué hace realmente el modo RUPST? Se dice en la hoja de datos que se pueden transmitir 65535 datos. ¿Cuál es la relación entre 65535 con el modo RUPST?

  • MODO DOBLE BUFFER:

Transacciones de tipo buffer doble: Transferencias de doble tampón usando dos
Punteros de memoria para la memoria (mientras que el DMA está leyendo / escribiendo
Desde / a un búfer, la aplicación puede escribir / leer hacia / desde el otro
buffer). ----- del manual de referencia de STM32F4

Mi pregunta es: Durante la transmisión DMA, el bus AHB no está disponible para Cortex M4, ¿cómo podría la aplicación leer el otro búfer?

¿Fue útil?

Solución

Después de hacer una investigación, aquí es lo que encontré, en caso de que alguien pueda necesitarlo.

  • CRAPEÑO Concurrente: No es posible dentro de un DMA. Posible tener DMA1, DMA2 corriendo simultáneamente. P.ej: F427 puede hacer simultáneamente:

    • CPU Acceso a Flash (código de lectura)
    • DMA1 Acceso a SRAM (para transferir un poco de búfer)
    • DMA2 Acceso a SDRAM (otro búfer)
  • FIFO se utiliza para almacenar datos temporalmente desde un dispositivo de baja velocidad. Cuando se ha acumulado una cierta cantidad de datos, se podría enviar una ráfaga, para guardar el recurso de AHB. Dado que cuando DMAC utiliza AHB, no puede ser utilizado por el procesador. FIFO tiene un tamaño de 4 * 32 bits. Se puede configurar como 16 * 8 bits (16 * 0NE BYTE).

  • Modo de ráfaga: un trozo de datos se envía continuamente desde, digamos FIFO a, digamos memoria. El AHB solo estará ocupado cuando se envía estallido. El modo de ráfaga se utiliza para guardar el recurso de AHB. No está relacionado con la limitación de tamaño de datos 65535.
  • Doble tampón: como se dice antes, AHB solo está ocupado cuando se transfieren los datos. Por lo tanto, el procesador aún puede recuperar los datos de la memoria cuando DMA no está ocupando el AHB.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top