Boa Tarde.
No âmbito da execução de um projeto utilizando o arduino due, tenho duvidas na forma de enviar para a memoria um sinal ADC por intermédio d DMA. É uma tecnologia que ainda estou numa fase de aprendizagem e como tal se alguém tiver conhecimento sobre este assunto gostaria que me desse informações para tentar chegar a solução.
A arquitetura do ATMEGA328 e similares não provê acesso direto a memória a partir dos periféricos internos ao MCU. O DMA a que você se refere seria isso, certo?
Para o trabalho que estou a fazer estou a utilizar o arduino DUE, e nas bibliotecas não descobri grande coisa. O trabalho que tenho de fazer consiste num sistema de localização indoor. Numa fase de teste vou usar o som, para isso, tenho que usar um microfone para captar um sinal e enviá-lo para a DAC. Mas no tratamento deste sinal queria que pode-se guardar esse sinal na memoria e à medida que recebia um novo sinal o que estava na memória passava para a DAC e assim sucessivamente. E isto só me parece possível a partir da iteração com a DMA.
Infelizmente ainda não instalei a IDE que funciona com o DUE... e a julgar pela qualidade do DUE, não me vejo a fazer isso nos tempos mais próximos.
Já experimentei DMA em ARM com uma Maple Leaf e aquilo funcionou bastante bem, mas as bibliotecas deles podem estar mais desenvolvidas. Já espiaste nos directórios do Arduino para ver o que lá tem sobre DMA? Pode ser que já haja uma biblioteca ou isso.