有人利用STM32的DAC+DMA做信号发生器吗?
有人利用STM32的DAC+DMA做信号发生器吗? 我上个月项目刚好用到,DAC+DMA生成1K正弦波用来测试PALM手机的MIC,128个点,效果很好!参考库例子改的。
库例子的点数少些,频率低些。 回复【1楼】capron
-----------------------------------------------------------------------
可不可以贴出来看看呢? LPC17xx的DMA可以自动循环
DAC带一个专用 TIMER 触发
除了DAC的性能限制,你说做一个信号发生器有多简单? 楼主有没有用STM32做过信号发生器能不能传些经验或者 资料 请教一下怎么样可以改变波形的频率?
从100Hz-—100KHz 我给楼主上传一个我做的用ZET6,仅供参考
请问Eric2013 你这个可以做到精确调频率吗?
是用的定时器+DMA传输方式?还是使用定时器中断里写《模拟DDS公式的计数值》+DAC输出的方式实现的呢?谢谢 ,如果是用的定时器+DMA传输方式。请教如何做到的精确频率的输出呢? 还请赐教。
Eric2013 发表于 2013-1-24 08:33 static/image/common/back.gif
我给楼主上传一个我做的用ZET6,仅供参考
请问Eric2013 你这个可以做到精确调频率吗?
是用的定时器+DMA传输方式?还是使用定时器中断里写《模拟DDS公式的计数值》+DAC输出的方式实现的呢?谢谢 ,如果是用的定时器+DMA传输方式。请教如何做到的精确频率的输出呢? 还请赐教。 是的 我测试了 效果还可以 wind2100 发表于 2013-4-27 22:26 static/image/common/back.gif
是的 我测试了 效果还可以
请教如何做到的精确频率的输出呢? 还请赐教。 用定时器 去更新DA的值 就精确了 wind2100 发表于 2013-5-5 19:03 static/image/common/back.gif
用定时器 去更新DA的值 就精确了
也就是说是用的是定时器中断内更新DAC的方式么?那么不是很占用CPU资源么?,我之前用51做过类似的为了输出较高频率几乎占用了所有CPU资源,其他什么都做不了,,这个我参考了STM32例程里输出正弦波例子,但不知道通过DMA传输定时器更新怎么做到精确输出。暂时弄不出来输出频率误差很大。能不能给些清楚的提示?
1. 是通过修改定时器计数值,改变触发DMA的时间的方式,再使用DMA自动更新DAC吗??(我现在用的方法,但做不到精确输出。暂时弄不出来因为输出频率误差很大。使用固定的256个正弦输出点)
2. 还是就是在“定时器中断”里面 更新定时计数值改变输出频率,并更新DAC吗。 ST 不是有一个例子吗? 就是用的TIM6 定时更新的 DAC做过ADPCM解码并播放出音乐。 capron 发表于 2009-7-2 15:46 static/image/common/back.gif
我上个月项目刚好用到,DAC+DMA生成1K正弦波用来测试PALM手机的MIC,128个点,效果很好!
参考库例子改的。 ...
这位大虾,能不能把DAC生成正弦波和方波的源代码贴出来啊,本人初学,搞了很久也没有搞出来,也没有野火上DAC的例程,很纠结啊,谢谢大虾了。。。。。。。。。 tyou 发表于 2010-3-23 17:51 static/image/common/back.gif
LPC17xx的DMA可以自动循环
DAC带一个专用 TIMER 触发
这个只能叫模型,专业的信号发生器比这个要复杂的多,如果再把杂散、平坦度、信噪比、失真度等必备参数考虑进去的话,就更复杂了{:lol:} mark DAC.... 学习。有详细资料吗? STM32 的DAC,采用DDS方式做信号发生器,有一个缺点:频率值不能被整除的话,频率偏差会很大,这是方案缺陷,没有办法的。
做信号发生器,可以采用DDS芯片如AD9850,直接搞定。
页:
[1]