1. XADC介紹
xadc在 所有的7系列器件上都有支持,通過(guò)將高質(zhì)量模擬模塊與可編程邏輯的靈活性相結(jié)合,可以為各種應(yīng)用打造定制的模擬接口,XADC 包括雙 12 位、每秒 1 兆樣本 (MSPS) ADC 和片上傳感器。其中12位指的是ADC轉(zhuǎn)換的精度,1MSPS說(shuō)的是采樣速率。如圖所示,是XADC在FPGA內(nèi)部電路的邏輯示意,注意區(qū)別于IP核形成的電路。
1.圖中1部分是溫度傳感器和電壓傳感器,可監(jiān)測(cè)如圖所示的多組電壓。
2.圖中2部分是FPGA bank上的引腳。可以用來(lái)接模擬源,總共有17對(duì)差分組。其中VP-0與VAUXP有所區(qū)別,VP-0在不用來(lái)接模擬源時(shí)要接地,VAUXP在不用做模擬時(shí),可與普通的數(shù)字IO一樣使用。支持模擬輸入的 FPGA I/O 在封裝文件名中包含_ADxP_ 和 ADxN 標(biāo)識(shí),例如 IO_L1P_T0_ AD0P 35 是模擬輔助通道 VAUXP[0] 的輸入引腳。IO_L1N_T0 AD0N _35 為模擬輔助通道 VAUXN[0] 的輸入引腳。Kintex-7 設(shè)備不支持輔助通道 6、7、13、14 和 15??梢栽?I/O 組中啟用任意數(shù)量的輔助模擬輸入,并將剩余的用作數(shù)字 I/O。如果一個(gè)組中混合有模擬和數(shù)字 I/O,則該 I/O 組必須由滿足所用數(shù)字 I/O 標(biāo)準(zhǔn)規(guī)范所需的電源供電。在這種情況下,模擬輸入信號(hào)不應(yīng)超過(guò) I/O Bank 電源電壓 (V CCO )。
3.圖中3部分是ADC部分所需的模擬電壓的基準(zhǔn)源,可以選擇外部基準(zhǔn)源,基準(zhǔn)源電壓是1.25V,也可以選擇內(nèi)部基準(zhǔn)源,這時(shí)VRE管腳要接地。
4.圖中4部分是兩個(gè)12位精度的ADC模數(shù)轉(zhuǎn)換器。其中ADC A接內(nèi)部的溫度、電壓傳感器,ADC B主要接外部輸入的模擬源。
5.圖中5部分是對(duì)外的接口,可以使用JTAG或者FPGA內(nèi)部邏輯通過(guò)訪問(wèn)DRP接口來(lái)讀寫內(nèi)部的控制寄存器和讀取狀態(tài)寄存器。
2.輸入要求
ADC 的標(biāo)稱模擬輸入范圍為 0V 至 1V。在單極模式(默認(rèn))下,當(dāng)輸入電壓為 1V 時(shí),ADC 的模擬輸入會(huì)產(chǎn)生FFFh (12 位)的滿量程代碼。在雙極性模式下,ADC 使用二進(jìn)制補(bǔ)碼編碼,并在 +0.5V 輸入時(shí)產(chǎn)生7FFh的滿量程代碼,在 –0.5V 輸入時(shí)產(chǎn)生800h的滿量程代碼。
如下圖所示,是xilinx推薦的模擬源的外部電路示意。阻器 R1 和 R2 將 10V 電源分壓至 1V,以便與 XADC 配合使用。R5 已與 R1 和 R2 的并聯(lián)電阻進(jìn)行阻抗匹配。模擬輸入是高阻抗差分輸入。差分輸入方案可以抑制任何外部應(yīng)用的模擬輸入信號(hào)上的共模噪聲。由于每個(gè)輸入(例如 V P和 V N )的高阻抗,輸入交流阻抗通常由傳感器、驅(qū)動(dòng)電路的輸出阻抗或其他外部組件確定。
3.輸出
基于上述的了解,我們得出結(jié)論,配置好電路之后,AD轉(zhuǎn)換之后的結(jié)果將會(huì)存在相應(yīng)的寄存器中。然后通過(guò)專用的引腳去讀寄存器就可以了。如圖所示,溫度傳感器的寄存器地址為00h。但是溫度需要一個(gè)轉(zhuǎn)換的過(guò)程,例如讀出的ADC采樣的值為997h,他所對(duì)應(yīng)的值應(yīng)該是25℃。因?yàn)橐嫌靡韵鹿睫D(zhuǎn)換。
? ?
需要注意,讀出的寄存器位寬16bit,但只有12bit數(shù)據(jù)有效,12 位數(shù)據(jù)對(duì)應(yīng)于 16 位狀態(tài)寄存器中的 12 個(gè) MSB(最高有效位)。
DRP時(shí)序
如果DWE為邏輯低,則執(zhí)行DRP讀操作。當(dāng) DRDY 變高時(shí),該讀操作的數(shù)據(jù)在 DO 總線上有效。因此,應(yīng)使用 DRDY 來(lái)捕獲 DO 總線。對(duì)于寫操作,DWE 信號(hào)為邏輯高電平,DI 總線和 DRP 地址 (DADDR) 在 DCLK 的下一個(gè)上升沿被捕獲。當(dāng)數(shù)據(jù)成功寫入 DRP 寄存器時(shí),DRDY 信號(hào)變?yōu)檫壿嫺唠娖?。?DRDY 信號(hào)變低之前,無(wú)法啟動(dòng)新的讀或?qū)懖僮鳌?
4.XADC IP核使用
可以使用原語(yǔ)來(lái)讀取ADC轉(zhuǎn)換后的值,也可以使用IP核。本文實(shí)現(xiàn)使用XADC IP核讀取FPGA內(nèi)部溫度。
A.選擇DRP接口,如果不需要讀出具體的AD轉(zhuǎn)換之后的數(shù)值,則選擇none;IP核的實(shí)際電路比上述XADC的電路多了AXI-Lite用于配置寄存器。在沒(méi)有軟核和PS端時(shí),用DRP更為方便。
B.選擇連續(xù)采樣模式,包括了電壓采集和電壓轉(zhuǎn)換兩個(gè)階段。在連續(xù)采樣模式下,ADC 在當(dāng)前轉(zhuǎn)換周期結(jié)束時(shí)自動(dòng)啟動(dòng)新的轉(zhuǎn)換。在事件采樣模式下,您必須在當(dāng)前轉(zhuǎn)換周期結(jié)束后使用 CONVST 或 CONVSTCLK 輸入啟動(dòng)下一次轉(zhuǎn)換,適用于精準(zhǔn)時(shí)刻采集。
C.通道選擇,這里選擇單一通道,只工作在單一通道監(jiān)測(cè)溫度即可。° Simultaneous Selection允許同時(shí)監(jiān)測(cè)兩個(gè)通道?!?Independent ADC獨(dú)立監(jiān)視外部通道,同時(shí)監(jiān)測(cè)溫度和電壓。Channel Sequencer 任意監(jiān)視多個(gè)通道。
其余關(guān)于DRP的配置、是否勾選AXI-Stream、以及復(fù)位信號(hào)的選擇保持默認(rèn)即可。
第二頁(yè)配置一些ADC的增益、補(bǔ)償、沒(méi)有深入研究,保持默認(rèn)。Alarms頁(yè)配置相關(guān)通道的報(bào)警信息,本次演示不需要,只看到溫度值即可,這里不勾選。由于前面選了單一配置,這里channel頁(yè)也無(wú)需配置直接生成IP即可。
如下圖所示為實(shí)測(cè)結(jié)果,在den_in有效時(shí)向地址為0的寄存器下發(fā)讀取指令,在drdy_out為高時(shí),do_out輸出有效,可以看到寄存器中16bit的值為39392,右移4為的值2462帶入上述溫度轉(zhuǎn)換的式子得到當(dāng)前FPGA溫度值為29.77攝氏度。
部分代碼如下,有每個(gè)引腳含義的注釋可供參考
reg [31:0]tim_cnt;
always @(posedge clk_100 or negedge clk_rst) begin
if(!clk_rst)begin
tim_cnt<= 0;
den_in<= 0;
end
elsebegin
den_in<= 0;
tim_cnt<= tim_cnt + 1;
if(tim_cnt== 32'd100_000_000)begin
tim_cnt<= 0;
den_in<= 1;
end
end
end
xadc_wiz_0 xadc_fun (
.di_in(di_in), // Inputdata bus for the dynamic reconfiguration port (DRP).
.daddr_in(daddr_in), //input wire [6 : 0] daddr_in
.den_in(den_in), //Enable signal for the dynamic reconfiguration port.
.dwe_in(dwe_in), //Write enable for the dynamic reconfiguration port.
.drdy_out(drdy_out), //Data ready signal for the dynamic reconfiguration port.
.do_out(do_out), //Output data bus for the dynamic reconfiguration port.
.dclk_in(clk_100), //input wire dclk_in
.reset_in(~clk_rst), //input wire reset_in
.vp_in(vp_in), //input wire vp_in
.vn_in(vn_in), //input wire vn_in
.channel_out(channel_out), //Channel selection outputs. 只是正在采樣的通道
.eoc_out(eoc_out), //End of Conversion signal.
.alarm_out(alarm_out), //output wire alarm_out
.eos_out(eos_out), //End of Sequence
.busy_out(busy_out) //ADC busy signal
);
原文鏈接:
https://blog.csdn.net/weixin_40615338/article/details/143944324
-
FPGA
+關(guān)注
關(guān)注
1630文章
21769瀏覽量
604641 -
IP核
+關(guān)注
關(guān)注
4文章
330瀏覽量
49558 -
XADC
+關(guān)注
關(guān)注
0文章
9瀏覽量
3426
原文標(biāo)題:XADC IP核
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論