本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處(http://www.alinx.com)。
適用于板卡型號:
PGL22G/PGL12G
1. 實驗簡介
本實驗練習使用ADC,實驗中使用的ADC模塊型號為AN9238,最大采樣率65Mhz,精度為12位。實驗中把AN9238的2路輸入以波形方式在HDMI上顯示出來,我們可以用更加直觀的方式觀察波形,是一個數字示波器雛形。
AN9238雙路65M采樣12位ADC模塊實驗預期結果
2. 實驗原理
黑金高速AD模塊AN9238為2路65MSPS, 12位的模擬信號轉數字信號模塊。模塊的AD轉換采用了ADI公司的AD9238芯片, AD9238芯片支持2路AD輸入轉換,所以1片AD9238芯片一共支持2路的AD輸入轉換。模擬信號輸入支持單端模擬信號輸入,輸入電壓范圍為-5V~+5V,接口為SMA插座。
AN9238模塊的原理設計框圖如下:
關于AD9238的電路具體參考設計請參考AD9238的芯片手冊。
2.1 單端輸入及運放電路
單端輸入AD1和AD2通過J5或者J6兩個SMA頭輸入,單端輸入的電壓為-5V~+5V。
板上通過運放AD8065芯片和分壓電阻把-5V~+5V輸入的電壓縮小成-1V~+1V。如果用戶想輸入更寬范圍的電壓輸入只要修改前端的分壓電阻的阻值。
下表為模擬輸入信號和AD8065運放輸出后的電壓對照表:
AD模擬輸入值 | AD8065運放輸出 |
-5V | -1V |
0V | 0V |
+5V | +1V |
2.2 單端轉差分及AD轉換
-1V~+1V的輸入電壓通過AD8138芯片轉換成差分信號(VIN+ ? VIN?), 差分信號的共模電平由AD的CML管腳決定。
下表為模擬輸入信號到AD8138差分輸出后的電壓對照表:
AD模擬輸入值 | AD8065運放輸出 | AD8138差分輸出(VIN+?VIN?) |
-5V | -1V | -1V |
0V | 0V | 0V |
+5V | +1V | +1V |
2.3 AD9238轉換
默認AD是配置成offset binary的,AD轉換的值如下圖所示:
在模塊電路設計中,AD9238的VREF的值為1V,這樣最終的模擬信號輸入和AD轉換的數據如下:
AD模擬輸入值 | AD8055運放輸出 | AD8138差分輸出(VIN+?VIN?) | AD9238數字輸出 |
-5V | -1V | -1V | 000000000000 |
0V | 0V | 0V | 100000000000 |
+5V | +1V | +1V | 11111111111 |
從表中我們可以看出,-5V輸入的時候,AD9238轉換的數字值最小,+5V輸入的時候,AD9238轉換的數字值最大。
2.4 AN9238數字輸出時序
AD9238雙通道AD的數字輸出為+3.3V的CMOS輸出模式,2路通道(A和B)獨立的數據和時鐘。AD數據在時鐘的上降沿轉換數據,FPGA端可用AD時鐘的采樣AD數據。
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模塊端口
4. 實驗現象
1)將AN9238模塊插入開發板的擴展口J8,注意1腳對齊,不要插錯、插偏,不能帶電操作。
2)連接AN9238的輸入到信號發生器的輸出,這里使用的是專用屏蔽線,如果使用其他線可能會有較大干擾。
AN9238連接信號源示意圖
3)連接HDMI顯示器,注意:連接的是顯示器,不是筆記本電腦HDMI接口
HDMI接口連接示意圖
4)下載程序,調節信號發生的頻率和幅度,AN9238輸入范圍-5V-5V,為了便于觀察波形數據,建議信號輸入頻率200Khz到1Mhz。觀察顯示器輸出,紅色波形為AD1輸入、藍色為AD2輸入、黃色網格最上面橫線代表5V,最下面橫線代表-5V,中間橫線代表0V,每個豎線間隔是10個采樣點。
-
FPGA
+關注
關注
1626文章
21671瀏覽量
601922 -
adc
+關注
關注
98文章
6438瀏覽量
544119 -
數字示波器
+關注
關注
6文章
516瀏覽量
33537 -
波形顯示
+關注
關注
0文章
4瀏覽量
9239 -
紫光同創
+關注
關注
5文章
82瀏覽量
27488
發布評論請先 登錄
相關推薦
評論