本帖最后由 1201yuge 于 2016-4-23 09:26 编辑
问题是这样的,我想用DAC输出连续的信号,现在假设是需要输出一种无规律的波形(可以认为是噪声),并且需要以2MHz的转换速率输出;现在的实现方式是在内存中定义一个50K的数组,配置成DMA DAC输出,那么现在问题来了,以2MHz的速率输出,那么输出完50K 16位的数组只需要15.6ms,我想每次输出的波形是不重复的,那么怎么样才可以实现数据的更新呢?
我想到的方法有:
1.每次DMA传输完产生一个完成中断,然后更新数据,再次触发DMA传输,可以保证数据不重复,但是不连续了。
2.每次DMA传输到一半的时候或者完成的时候产生一个中断,更新缓冲区前一半或者后一半的数据,DMA是连续传输方式。
注:我现在更新的数据来源是随机数发生器,速率跟不上DAC的输出,请问有没有朋友做过类似的东西,给点意见,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
播放的采样率比较低,大概16k。音频数据是存放在SPI FLASH中的。
基本思路就是定时器触发DMA传输到DAC寄存器,给DMA开辟两个缓冲区。
一周热门 更多>