微控制器无需CPU即可生成同步正弦波与余弦波
将周期值写入DAC的过程要求CPU开销保持输出波形。所需要的CPU开销取决于数据表的长度、输出波形的频率以及CPU的工作频率。例如,为了每个周期采用32个数据点生成1个1kHz的正弦波,在CPU频率为1MHz情况下要求CPU每秒能够处理32000个中断信号。处理如此多的中断仅在中断之间留下1000000/32000=31.25个CPU指令周期。针对上下文切换与执行,如果每个中断服务只需要15个CPU周期,所需CPU开销就会达到近50%。
如果应用要求第二个模拟输出波形,那么CPU负载将会增大,甚至在所需的中断服务时间内不能更新两个DAC。MSP430F15x/16x器件是解决该问题的良好方案。这些器件集成了两个DAC与1个DMA控制器。DMA控制器的用途是在无需CPU干预情况下将数据从一个位置转移到另一个位置。在本例中,DMA能够在规定时间内将数据从数据表转移到2个DAC。数据转移结构图如下所示。