微控制器無(wú)需CPU即可生成同步正弦波與余弦波
將周期值寫(xiě)入DAC的過(guò)程要求CPU開(kāi)銷(xiāo)保持輸出波形。所需要的CPU開(kāi)銷(xiāo)取決于數據表的長(cháng)度、輸出波形的頻率以及CPU的工作頻率。例如,為了每個(gè)周期采用32個(gè)數據點(diǎn)生成1個(gè)1kHz的正弦波,在CPU頻率為1MHz情況下要求CPU每秒能夠處理32000個(gè)中斷信號。處理如此多的中斷僅在中斷之間留下1000000/32000=31.25個(gè)CPU指令周期。針對上下文切換與執行,如果每個(gè)中斷服務(wù)只需要15個(gè)CPU周期,所需CPU開(kāi)銷(xiāo)就會(huì )達到近50%。
如果應用要求第二個(gè)模擬輸出波形,那么CPU負載將會(huì )增大,甚至在所需的中斷服務(wù)時(shí)間內不能更新兩個(gè)DAC。MSP430F15x/16x器件是解決該問(wèn)題的良好方案。這些器件集成了兩個(gè)DAC與1個(gè)DMA控制器。DMA控制器的用途是在無(wú)需CPU干預情況下將數據從一個(gè)位置轉移到另一個(gè)位置。在本例中,DMA能夠在規定時(shí)間內將數據從數據表轉移到2個(gè)DAC。數據轉移結構圖如下所示。