本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處(http://www.alinx.com)。
適用于板卡型號:
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個采樣點。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
602997 -
測試
+關注
關注
8文章
5269瀏覽量
126599 -
adc
+關注
關注
98文章
6495瀏覽量
544466 -
ADDA
+關注
關注
0文章
23瀏覽量
4484 -
紫光同創
+關注
關注
5文章
85瀏覽量
27503
發布評論請先 登錄
相關推薦
評論