Autor Tema: DMA en PIC18F  (Leído 2161 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
DMA en PIC18F
« en: 25 de Agosto de 2018, 18:16:27 »
Que tal amigos, estoy trabajando con unos nuevos micros de la serie 18F-K42. Y veo que tienen DMA alguno de ustedes lo ha probado?

Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:DMA en PIC18F
« Respuesta #1 en: 26 de Agosto de 2018, 10:05:15 »
Recien me entero que poseen DMA los PIC18F jeje.

El DMA sigue siendo igual que todos, pero veo una sola diferencia con respecto a los ST/Ti (ARMs based) es que utilizan el mismo bus que la CPU.
Entonces tenes que configurar las prioridades. Explicados en el datasheet, las principales tres son:

ISR PRIORITY - MAIN PRIORITY - PERIPHERAL PRIORITY

Que vendria a ser lo ideal, el problema es que en este caso el DMA si tu "fuente" es la Flash, solo va a poder acceder cuando la CPU no necesite la Flash (solo saltos). Que para pocos datos seria HORRRIBLE. El configurar el DMA + solo en saltos, hace que la velocidad sea mejor enviandolos uno por uno.
Y a la RAM solo cuando las instrucciones no necesiten de leer la RAM, en resumen, si la CPU esta usando el bus, el DMA tiene que esperar. Y te recuerdo que la RAM es donde estan los registros de los demas perifericos ( SPI, I2C, etc )

Podes subir la prioridad de los perifericos, el problema es que al iniciar el DMA, bloqueas a la CPU. Incluso podrias subir la prioridad por encima de la prioridad de interrupcion, y tambien bloquearias las interrupciones mientras el DMA esta enviando.


 

anything