This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EDMA 进行AD数据采集的问题



打算使用AD7656 AD采集,为降低cpu占用率使用edma传输数据,ad7656有两种接口:spi和并行数据总线,ad转换完成后可以通过一个IO输出中断。

 

Spi方式:我的想法是ad完成中断cpu,启动edma,通过mcbsp的spi模式读取6个16位数据,现在的问题是,ad中断后怎么启动mcbsp?难道是写外部中断函数启动mcbsp读取同时初始化edma,然后edma把数据从mcbsp搬移到内存?这样的话采样率比较高,频繁外部中断占用cpu很大。

 

并行总线方式: ad完成触发cpu,启动edma传输,源地址是emif  AD地址,目的地址是内存,这样不用写中断函数,cpu占用少?这样可以么?谢谢

 

使用spi方式连线比较少,不知道可以不写中断函数完成数据接收吧

谢谢

  • 个人经验,不知是否有用啊

    使用dma,往往是有fifo或者大量的数据。你现在ad一次6个的采样,他就是要int一次dsp,你没有fifo或者ram缓存,那就是没有办法,只能这个频率中断dsp了。

    并行总线方式 同样有中断频率的问题。例如你的采样是100k 那就是100k的中断频率。不过,话说,如果你的采样不是很高,几十k的话,不如算了,不要使用dma了,直接中断读取就可以了

  • DMA 虽然有中断但是不需要cpu参与, dma目标是 ddr内存 128MB,应该是够用的

    6路采样率300K