【紫光同創國產FPGA教程】【第十九章】ADDA測試例程


本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權並注明出處()。

適用於板卡型號:

PGL22G/PGL12G

1. 實驗簡介

本實驗練習使用ADC和DAC,實驗中使用的ADDA模塊型號為AN108,ADC最大采樣率32Mhz,精度為8位,DAC最大采樣率125Mhz,精度為8位。實驗中用DAC輸出正弦波,然后使用ADC采集並把波形在HDMI顯示器顯示。

ADDA模塊實驗預期結果

2. 實驗原理

2.1 數模轉換(DA)電路

如硬件結構圖所示,DA電路由高速DA芯片、7階巴特沃斯低通濾波器、幅度調節電路和信號輸出接口組成。

我們使用的高速DA芯片是AD公司推出的AD9708。AD9708是8位,125MSPS的DA轉換芯片,內置1.2V參考電壓,差分電流輸出。芯片內部結構圖如下圖所示

AD9708芯片差分輸出以后,為了防止噪聲干擾,電路中接入了7階巴特沃斯低通濾波器,帶寬為40MHz,頻率響應如下圖所示

濾波器參數如下圖所示

濾波器之后,我們使用了2片高性能145MHz帶寬的運放AD8056,實現差分變單端,以及幅度調節等功能,使整個電路性能得到了最大限度的提升。幅度調節,使用的是5K的電位器,最終的輸出范圍是-5V~5V(10Vpp)。

注:由於電路器的精度不是很精確,最終的輸出有一定誤差,有可能波形幅度不能達到10Vpp,也有可能出現波形削頂等問題,這些都屬正常情況。

模數轉換(AD)電路

如硬件結構圖中所示,AD電路由高速AD芯片、衰減電路和信號輸入接口組成。

我們使用的高速AD芯片是由AD公司推出的8位,最大采樣率32MSPS的AD9280芯片。內部結構圖如下圖所示

根據下圖的配置,我們將AD電壓輸入范圍設置為:0V~2V

在信號進入AD芯片之前,我們用一片AD8056芯片構建了衰減電路,接口的輸入范圍是-5V~+5V(10Vpp)。衰減以后,輸入范圍滿足AD芯片的輸入范圍(0~2V)。轉換公式如下:

當輸入信號Vin=5(V)的時候,輸入到AD的信號Vad=2(V);

當輸入信號Vin=-5(V)的時候,輸入到AD的信號Vad=0(V);

3. 程序設計

本實驗顯示部分是基於前面的已有的實驗,在彩條上疊加網格線和波形。

timing_gen_xy模塊完成視頻圖像的坐標生成,x坐標,從左到右增大,y坐標從上到下增大。

信號名稱 方向 寬度(bit) 說明
clk in 1 系統時鍾
rst_n in 1 異步復位,低電平復位
i_hs in 1 視頻行同步輸入
i_vs in 1 視頻場同步輸入
i_de in 1 視頻數據有效輸入
i_data in 24 視頻數據輸入
o_hs out 1 視頻行同步輸出
o_vs out 1 視頻場同步輸出
o_de out 1 視頻數據有效輸出
o_data out 24 視頻數據輸出
x out 12 坐標x輸出
y out 12 坐標y輸出

timing_gen_xy模塊端口

grid_display模塊主要完成視頻的網格線疊加,本實驗將彩條視頻輸入,然后疊加一個網格后輸出,提供給后面的波形顯示模塊使用。

信號名稱 方向 寬度(bit) 說明
pclk in 1 像素時鍾
rst_n in 1 異步復位,低電平復位
i_hs in 1 視頻行同步輸入
i_vs in 1 視頻場同步輸入
i_de in 1 視頻數據有效輸入
i_data in 24 視頻數據輸入
o_hs out 1 帶網格視頻行同步輸出
o_vs out 1 帶網格視頻場同步輸出
o_de out 1 帶網格視頻數據有效輸出
o_data out 24 帶網格視頻數據輸出

grid_display模塊端口

wav_display顯示模塊主要是完成波形數據的疊加顯示,模塊內含有一個雙口ram,寫端口是由ADC采集模塊寫入,讀端口是顯示模塊。

信號名稱 方向 寬度(bit) 說明
pclk in 1 像素時鍾
rst_n in 1 異步復位,低電平復位
wave_color in 24 波形顏色,rgb
adc_clk in 1 adc模塊時鍾
adc_buf_wr in 1 adc數據寫使能
adc_buf_addr in 12 adc數據寫地址
adc_buf_data in 8 adc數據,無符號數
i_hs in 1 視頻行同步輸入
i_vs in 1 視頻場同步輸入
i_de in 1 視頻數據有效輸入
i_data in 24 視頻數據輸入
o_hs out 1 帶網格視頻行同步輸出
o_vs out 1 帶網格視頻場同步輸出
o_de out 1 帶網格視頻數據有效輸出
o_data out 24 帶網格視頻數據輸出

wav_display模塊端口

ad9226_sample模塊主要完成ad9226輸入數據順序調整,因為ad9226輸入的數據MSB在最低位。再把有符號數轉換為無符號數,最后位寬轉換到8bit。

信號名稱 方向 寬度(bit) 說明
adc_clk in 1 adc系統時鍾
rst in 1 異步復位,高復位
adc_data in 12 ADC數據輸入,MSB在最低位,需要倒序
adc_buf_wr out 1 ADC數據寫使能
adc_buf_addr out 12 ADC數據寫地址
adc_buf_data out 8 無符號8位ADC數據

ad9226_sample模塊端口

在本例程中僅介紹如何使用波形數據生成工具,在軟件工具及驅動文件夾下找到工具,其圖標如下所示:

1)雙擊.exe打開工具,打開界面如下:

2) 可以根據需要自選波形,本例程中選擇正弦波,數據長度和位寬保持默認

3)點擊保存按鈕,將生成的數據文件保存到工程目錄文件下(注意保存的文件類型.dat):

4) 保存后出現如下對話框表示保存成功,點擊確定后關閉工具

將 .coe文件保存到生成的Rom IP核中即可,這里不再重復介紹

4. 實驗現象

1)將AN108模塊插入開發板的擴展口J8,注意1腳對齊,不要插錯、插偏,不能帶電操作

2)采用AN108的環路測試,連接AN108的DACOUT端到模塊的AD IN端,這里使用的是專用屏蔽線,如果使用其他線可能會有較大干擾

AN108連接示意圖

3)連接HDMI顯示器,注意:連接的是顯示器,不是筆記本電腦HDMI接口

HDMI接口連接示意圖

4)下載程序,旋轉AN108模塊上的旋鈕,可以看到波形幅度在變化,波形如下圖所示,黃色網格最上面橫線代表5V,最下面橫線代表-5V,中間橫線代表0V,每個豎線間隔是10個采樣點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM