DDS很重要,為此蘇老師專門開設了一門「DDS信號源設計」的直播課程,並花了3個月的時間精心打造了一系列可用於DDS設計訓練的硬體套件,目標是以非常低的成本製作頻率高達10MHz的任意波形信號源,並從中深刻學習數字邏輯、模擬電路、信號與系統、電路仿真工具等技術基礎。從今天的文章開始,分5次由淺入深地帶領大家了解DDS的原理及信號源製作中的關鍵要點。
DDS是一種用於通過單個固定頻率的參考時鐘信號生成任意波形的頻率合成器,被廣泛用於測試測量儀表和通信系統中。也是學習FPGA、大學生電子設計競賽備賽必學的原理性技能,在這裡我們通過FPGA Verilog代碼編程示例一步步讓大家理解一下DDS的基本概念、構成以及各項指標的含義。
用以學習和體驗DDS的開源平臺
硬禾學堂專門設計了兩款用以學習DDS的平臺:
任意波形信號源/可編程直流電源的開源學習平臺
小腳丫FPGA綜合技能訓練平臺
任意波形信號源/可編程直流電源的開源學習平臺
這兩款平臺可以支持任意一款的小腳丫FPGA核心板,它們的DAC部分都是由R-2R網絡構成的,DDS部分的代碼也是通用的,不同的是輸出電平的調節方式以及對應於每個電阻節點的管腳順序。
它們都能通過FPGA中的Verilog邏輯編程實現以下的功能並能達到相應的性能:
DDS的主時鐘選擇為12M(案例中前面的例子)和120MHz(案例中後面的例子,由小腳丫外部的12MHz輸入時鐘,通過內部PLL倍頻到120MHz),使用120MHz的時鐘能夠生成0 - 15MHz(用8個點構成一個周期波形),甚至更高頻率的正弦波波形,輸出的信號波形可以是正弦波、三角波、鋸齒波、方波等;
由於R-2R後面的運算放大器的性能限制,為保證在不同的頻率上實現恆定的信號幅度,這兩款板子的最高輸出頻率做了一定的限制,其中:
兩款板子都可以通過UART同PC連接,通過PC上的軟體(比如LabView或用QT等自編)對FPGA中的參數進行設置,進而調節DDS輸出信號的波形、頻率、幅度和直流偏移等,第一款板子還可以調節雙通道直流電壓的輸出。
下面我們來看看在這兩款平臺上通過DDS能夠實現的任意波形及實現方法、相關的Verilog代碼。
DAC的選用說明
將數字波形錶轉換為模擬電信號需要數模轉換器 - DAC
DDS需要一個DAC將數字合成的波形轉化為模擬電信號,DAC的構成可以有多種形式:
高速並行的DAC;
低速串行的DAC;
R-2R構成的低成本DAC;
通過PWM + RC構成的簡易DAC。
無論使用任何一種DAC,DDS的內核 - 邏輯構成代碼都是一樣的,差別在於最終驅動DAC時需要不同的時序邏輯、不同的DAC方式能夠支持的輸出信號頻率上限不同。
在我們推薦的兩款平臺上,都使用了R-2R的10位並行DAC,主要是成本低、速度高、連接簡單,R-2R的DAC和商用的高速並行DAC的區別主要有兩點:
R-2R無需與並行數據同步的時鐘,直接將FPGA內部的**被時鐘同步好的並行數據**輸出到10個電阻節點上就可以,因此PCB的布線以及電阻值的偏差會影響到輸出波形,這個在高速轉換的時候一定要注意,R-2R上的10個數據節點到FPGA管腳的長度不同也就意味著每個節點發生電壓變換的時間點是有差異的,這也就導致了波形上出現一定的失真(可能用肉眼觀察示波器的波形是分辨不出來的);
基準電壓為FPGA晶片I/O的電壓,比如3.3V,因此在R-2R上得到的模擬波形的峰峰值也就是3.3Vpp,商用的DAC晶片一般都有專門的參考電壓管腳,比如自帶的1.024V或2V的參考電壓,或者連接外部的更高質量的參考電壓源,使用起來相對更靈活。
R-2R DAC的工作原理示意圖
在我們的兩款平臺上,通過R-2R模擬輸出信號頻率在內部主時鐘為120MHz時可以達到15MHz並能夠得到比較好的波形,實際測試在主時鐘216MHz的情況下R-2R也能正常運行,完美得到25MHz的正弦波波形,只是在這兩個平臺上沒有對末級的運算放大器做更複雜的設計,簡單的一階低通濾波以及所選器件的帶寬限制了其頻率上限,25MHz的正弦波經過末級的調理後幅度變小。
無論採用任何一款DAC,第一步就是要驗證從FPGA的邏輯到DAC是否正常工作(尤其是FPGA和R-2R網絡連接時管腳的分配),最簡單的就是輸出固定的數字,看輸出的直流電壓是否是你換算出來應該得到的模擬量,如下圖所示:
產生直流電壓用來驗證FPGA到DAC的鏈路是否能夠正常工作
細心的朋友可能觀察到了,上面的圖中用到了反向放大器且為單電源供電的結構。
FPGA到DAC的連接工作正常,下一步就可以開始各種波形的輸出了。
關於DDS的具體實現及Verilog的代碼示例,參見明天的「一個簡單的DDS」。
直播課程的二維碼如下: