如何不间断地实现DAC波形输出,并可以实时更新输出数据?

2019-07-20 22:41发布

本帖最后由 1201yuge 于 2016-4-23 09:26 编辑

   问题是这样的,我想用DAC输出连续的信号,现在假设是需要输出一种无规律的波形(可以认为是噪声),并且需要以2MHz的转换速率输出;现在的实现方式是在内存中定义一个50K的数组,配置成DMA DAC输出,那么现在问题来了,以2MHz的速率输出,那么输出完50K 16位的数组只需要15.6ms,我想每次输出的波形是不重复的,那么怎么样才可以实现数据的更新呢?

我想到的方法有:
1.每次DMA传输完产生一个完成中断,然后更新数据,再次触发DMA传输,可以保证数据不重复,但是不连续了。
2.每次DMA传输到一半的时候或者完成的时候产生一个中断,更新缓冲区前一半或者后一半的数据,DMA是连续传输方式。

注:我现在更新的数据来源是随机数发生器,速率跟不上DAC的输出,请问有没有朋友做过类似的东西,给点意见,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
adlu
1楼-- · 2019-07-21 14:05
1201yuge 发表于 2016-4-23 12:18
嗯嗯,我还想做些傅里叶变换在输出呢,看来速度是不够,只能降低DAC的输出频率了。能够请教一下假设我要 ...

这个就看你对波形质量的要求了,比如每个波形32个点,那DAC输出速度就是32x20k=640k。

用F4来做数字信号处理还是比较吃力的,一般都用FPGA或者DSP。
1201yuge
2楼-- · 2019-07-21 16:45
adlu 发表于 2016-4-23 14:59
我之前用F1的DAC输出,做过播放WAV文件的。
播放的采样率比较低,大概16k。音频数据是存放在SPI FLASH中的 ...

嗯嗯,我最终的目的也是要输出到功放上面,你觉得给人听,最低的输出采样率是多少合适,16K会不会稍微有点低?
adlu
3楼-- · 2019-07-21 18:21
 精彩回答 2  元偷偷看……
1201yuge
4楼-- · 2019-07-21 20:55
adlu 发表于 2016-4-23 16:01
呵呵,你这个"给人听"没标准啊。

音乐播放也是给人听,公车报站也是给人听,两个的要求天差地别。

ok,懂了。谢了

一周热门 更多>