所有关于电路

选择DDS / DAC任意功能发生器IC,用于音频应用

R.

螺纹启动器

rodv92

加入2011年5月23日
10.
我需要使用基于任意波形的时间变化电压来驱动模拟VCO芯片(用于频率控制,LFO类型)
使用DAC对于除DC电压以外的任何DAC的问题是其寄存器需要以固定的时间间隔不断更新。
如果DAC是Arduino控制的,那么运行良好(通过查找表盘旋),除非MCU与情况有关的任何内容,这导致延迟问题。

据我所知,这是我的选择:
- 使用多线程/ RTOS选项使用覆盆子PI或任何MCU足够快的(80+ MHz CPU),以便时间差异不可观察。
- 使用每DAC的MCU和一个主MCU来统治它们。(主/专用MCU之间的串行通信),在此过程中制作自己的DDS。
- 使用能够重复执行波形图案的DDS + DAC IC,为来自MCU的所有权加载一次,直到需要更新波形。

由于占地面积较低,我最好去选项3。
我看过AD9106,但我的应用似乎真正的矫枉过正(重复模式的基本频率将在LFO范围内,即最多50 Hz)

对于相对简单的DDS甚至具有重复模式功能的先进DAC的任何想法?
j

杂草

加入了2020年2月29日
9.
我认为你有一个涉及的权衡的手柄。ARB波形是问题 - 大多数DDS芯片都有正弦号,很少有RAM用于波形查找。AD9106可能是最干净的解决方案。具有良好DSP扩展的DSP或CPU,如ARM M4(青少年3/4)可能是好的。你想要的是DMA,所以你可以设置这个,然后让它运行。解决这的另一种常见方法是用小的FPGA。一个阶段累加器非常简单,你只需拍摄MSB虽然查找表并推出波形。您可能会透视这款60美元的中国ARB波形发电机的拆除,我认为他们使用一些便宜的FPGA和一堆电阻为DAC-非常聪明的整体。有些人试图改善这些小sig gens,很多逆向工程稍微撕开了其中一个,并显示了他们如何工作 - 戴夫·琼斯的eevblog?
j

杂草

加入了2020年2月29日
9.
我刚刚再次读到你的最后一句 - 在50 Hz,一个具有计时器中断的Arduino和软件中的阶段累加器应该超过足够的。只需使IRQ成为一个高优先级,所以你没有得到抖动。您还可以提前一点地发火,然后在ISR中等待一点,以确切的正确时间消除抖动。它会很少消耗Arduino。
最佳