Consulta DMA LPC1769

208 views
Skip to first unread message

Federico Roux

unread,
May 30, 2019, 11:17:24 AM5/30/19
to Embebidos32
Estimados, tiro una consulta a ver si alguien me tira un salvavidas.

Estoy usando, o intentando usar, el DMA del LPC1769 disparado por el adc (y el adc por el timer). Mi idea es muestrear un canal del ADC, llenar un buffer con el DMA y que salte la irq cuando el buffer se llene. Avancé bastante, pero me encuentro con varios problemas. 

- Disparo el DMA con la interrupción del ADC, pero la interrupción del dma no se activa al llenar el buffer, se activa con cada muestra nueva.
- la irq del DMA no limpia el bit de interrupción pendiente del ADC por lo que si no lo limpio en una rutina externa, la isr del dma se queda pegada.

Estuve trabajando tanto con la librería de LPCOpen y CMSIS, lo probé tanto con el esquema de memoria lineal como con listas enlazadas, pero no logro solucionar lo anterior. 

Por otro lado, el manual del LPC1769 me resulta un poco confuso con algunos modos que no encuentro bien la definición, por ejemplo Modo Burst, Modo Last Burst (qué diferencia hay entre uno y otro? y que implica que sea modo burst?). Entiendo que con cada REQUEST, el DMA inicia N transferencias (lo indicado en los campos SBSize y DBSize del registro Control) de una del tamaño indicado (SWidth y DWidth) si esta en modo burst, y cuando las termina, decrementa en 1 la cuenta. Cuando llega un nuevo REQUEST, empieza otra vez el proceso, así hasta terminar la cuenta indicada en el campo TransferSize del registro Control. Cuando termino la cuenta, puede generar una interrupción TerminalCount. Es correcto esta forma de interpretarlo? el REQUEST debería llegar en mi caso con cada interrupción del ADC (que tiene que tener activada la irq individual del canal pero no el general en el NVIC)

Hay alguna documentación aparte del Manual UM10360 y la AN10917 donde se explique más a fondo el funcionamiento del DMA de NXP?

Desde  ya mil gracias a todos!

Ivan Leon

unread,
May 30, 2019, 1:30:59 PM5/30/19
to embeb...@googlegroups.com
Nunca use el DMA en el lpc1769 pero he laburado mucho con este micro en otras funcionalidades, y te recomiendo que si puedes mejor cambia de micro. Si no , muy probablemente, haya un bug en el lpcopen ( he encontrado varios, cómo por ejemplo el i2c y te lo dicen en los foros) , además el ADC del lpc1769 es muy malo, tiene mucho ruido.

Saludos,


From: embeb...@googlegroups.com <embeb...@googlegroups.com> on behalf of Federico Roux <rouxfe...@gmail.com>
Sent: Thursday, May 30, 2019 12:17:24 PM
To: Embebidos32
Subject: [embeb32] Consulta DMA LPC1769
 
--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/9ebf545c-106c-4110-a679-77bf2132c57d%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages