TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Pinolillo16 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
-
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.