?Xilinx 7系列FPGA全系內(nèi)置了一個(gè)ADC,稱之為XADC。這個(gè)XADC,內(nèi)部是兩個(gè)1mbps的ADC,可以采集模擬信號(hào)轉(zhuǎn)為數(shù)字信號(hào)送給FPGA內(nèi)部使用。
? ? ?XADC內(nèi)部可以直接獲取芯片結(jié)溫和FPGA的若干供電電壓(7系列不包括VCCO),用于監(jiān)控FPGA內(nèi)部狀況。同時(shí)提供了17對(duì)差分管腳,其中一對(duì)專用的模擬差分輸入,16對(duì)復(fù)用的模擬差分輸入,不使用的時(shí)候可以作為普通的User I/O。
01
XADC Pinout Requirements模塊管腳需求:
????所有的XADC模塊的專用管腳都屬于Bank0,所以都加上后綴_0,上圖1-2表示了XADC的基本輸入輸出需求:上面有兩種配置需求,左邊使用的是Vccaux(1.8V)供電,并且使用外部的1.25V的參考源,使用外部參考源在精度和熱漂移方面可以獲得更好的性能,且使用一個(gè)磁珠用以隔離模擬地和數(shù)字地,以避免模擬和數(shù)字共地而把噪聲帶入模擬電路;右邊使用的是片內(nèi)的參考源,此時(shí),VREFP腳必須按照?qǐng)D示連接到地。下表列出了XADC Package的管腳信息:
注:XADC模塊有一專用的支持差分輸入的模擬通道輸入引腳(VP/VN),另外還最多有16個(gè)輔助的模擬通道輸入引腳(ADxP?or?ADxN,x為0到15),Kintex-7不支持輔助通道6,7,13,14,15。Zynq-7000?AP?SoC器件由于封裝不通可能不會(huì)支持所有的輔助通道,具體要查詢封裝文件。
02? XADC模塊的操作方式
????單通道模式,在這種模式下,用戶必須通過寫控制寄存器40H的CH4到CH0比特來選擇一個(gè)要采樣的通道。另外控制寄存器40H的BU(analog input mode) 和ACQ(settling time )兩個(gè)參數(shù)也必須設(shè)置。
????獨(dú)立ADC模式,在這種模式下, ADC A是固定用來實(shí)現(xiàn)一個(gè)類似于缺省模式的“監(jiān)控模式”,報(bào)警輸出功能是有效的,用戶必須設(shè)置正確的報(bào)警門限;ADC B只能用來測(cè)量外部的模擬輸入。?
??? Single Pass 模式,在這種模式下,按用戶選擇的采樣順序序列順序采樣一遍后停止ADC。采樣順序序列是由用戶寫序列通道選擇寄存器48H和49H 來設(shè)定的。?
??? Continuous Sequence 連續(xù)序列模式,這種模式和Single Pass 模式很相似,區(qū)別是采樣完一遍后系統(tǒng)自動(dòng)重新開始序列采樣,故為連續(xù)采樣。?
????模式選擇是由控制寄存器41H 的SEQ3到SEQ0比特決定,具體如下圖示:
03? IP核設(shè)置
Basic 設(shè)置
? ? 關(guān)于XADC具體的結(jié)構(gòu),功能和各個(gè)參數(shù)的含義,需要注意的是:
??? 1.關(guān)于參考電壓的設(shè)置,會(huì)影響誤差范圍及采樣值的計(jì)算公式。
??? 2.模擬差分輸入對(duì)模擬信號(hào)幅值有要求,需要外邊模擬電路進(jìn)行一定程度的轉(zhuǎn)換。
????假設(shè)現(xiàn)在需要用XADC來獲取幾個(gè)模擬信號(hào)的信息,那么應(yīng)該如何操作呢。下面解釋一種設(shè)置方式。
????注意紅框中的幾點(diǎn):
??? 1.使用DRP端口獲取數(shù)字信號(hào),這樣控制似乎更簡(jiǎn)單一些。
??? 2.使用連續(xù)采樣模式,ADC一直工作在數(shù)據(jù)采集模式,采集后就可以進(jìn)行輸出。
??? 3.使用Channel Sequencer模式,由于只有兩個(gè)XADC而需要采樣的數(shù)據(jù)過多,所以讓XADC依次陸續(xù)進(jìn)行采樣。
??? 4.設(shè)置好DRP端口的時(shí)鐘頻率,50或100M都可以,無特殊要求。
ADC Setup 設(shè)置
??? IP設(shè)置第二頁(yè),主要是設(shè)置Calibration、平均值和外部MUX。這幾個(gè)可以暫時(shí)跳過,等熟悉XADC的使用后在進(jìn)行深入了解。
Alarms?設(shè)置
????第三頁(yè)設(shè)置告警參數(shù),可以不用。如果需要的話,可以設(shè)置一下,便于使用。
channel?設(shè)置
????第四頁(yè)設(shè)置需要使用的通道,這里選擇溫度和三個(gè)供電電壓,并選擇一個(gè)專用的模擬輸入通道和前三個(gè)復(fù)用的模擬輸入通道。
????最后一頁(yè)是Summary,可以看看設(shè)置是否有問題,沒有需要設(shè)置的地方。
????這個(gè)時(shí)候最基本的一個(gè)多通道獲取數(shù)據(jù)的XADC設(shè)置好了,至于設(shè)置中沒有細(xì)說的地方,可以等熟練使用之后進(jìn)行研究,找出最合適的使用模式。
04
Port 例化
????下面是如何使用這個(gè)生成的IP。由于使用DRP端口來讀取數(shù)據(jù),所以需要設(shè)計(jì)一個(gè)DRP讀寫控制器。不過由于XADC本身就提供了一些信號(hào),所以這個(gè)設(shè)計(jì)其實(shí)非常簡(jiǎn)單。
????余下四個(gè)DRP端口,兩個(gè)輸出兩個(gè)輸入。兩個(gè)輸出直接引出來,其中do_out就是最終需要的數(shù)據(jù)。這個(gè)端口是16bit,取高12bit即可(對(duì)應(yīng)XADC中宣稱的12位)。
??? XADC的IP端口中還有兩個(gè),名為eoc_out和channel_out。將eoc_out連接到DRP端口的den_in端口,含義是當(dāng)多路采樣的某一路完成采樣后,則啟動(dòng)DRP端口操作,開始進(jìn)行讀取數(shù)據(jù)。將channel_out補(bǔ)兩位之后送入daddr_in作為DRP端口操作的地址信號(hào)。這樣就完成了DRP的讀寫操作。
????不過這樣輸出的數(shù)據(jù),會(huì)周期性的在幾個(gè)端口數(shù)據(jù)之間變化。所以通常在后端加一個(gè)過濾設(shè)置,具體行為是,當(dāng)代表DRP操作完成的drdy_out拉高的時(shí)候,根據(jù)channel_out的值來判斷是哪一個(gè)通道的。
????關(guān)于每個(gè)采樣通道的具體地址,可以參考手冊(cè):
????溫度換算公式和曲線如下圖所示:
????電壓換算公式和變化曲線如下圖所示:
????至于模擬差分輸入Pin,直接送到頂層的相對(duì)應(yīng)管腳即可。注意Vivado工具可能需要對(duì)復(fù)用的模擬Pin進(jìn)行電平約束,根據(jù)VCCO的電壓值選擇相應(yīng)的lvcmos即可,例如1.8V的VCCO就選擇lvcmos18即可。
????這樣就可以獲取對(duì)應(yīng)的模擬采樣數(shù)據(jù)了。由于絕大部分情況下需要檢測(cè)的模擬信號(hào)變化相對(duì)較慢,使用XADC是足夠用于檢測(cè)的。
????涉及到XADC的使用問題還有MIG IP。MIG是Memory Interface的IP,也就是DDR3之類的DDR存儲(chǔ)器IP。由于此類接口一般速率過高,會(huì)需要溫度信息對(duì)接口做一定的矯正。在MIG IP的配置中,會(huì)默認(rèn)啟動(dòng)XADC。
????此時(shí)的XADC僅僅需要提供溫度信息就可以了。當(dāng)需要提供更多信息,就需要獨(dú)立配置XADC,這樣工程中就會(huì)生成兩個(gè)XADC;或者例化了兩個(gè)MIG IP,這樣各自就會(huì)需要一個(gè)XADC。由于硬件中只有一個(gè)XADC模塊,當(dāng)發(fā)現(xiàn)工程中需要多個(gè)XADC模塊的時(shí)候,工具就會(huì)提示出錯(cuò)。
????解決方案也非常簡(jiǎn)單,MIG IP中去掉XADC。然后在設(shè)計(jì)中獨(dú)立例化XADC IP。根據(jù)上文的做法獲取溫度信息后送往MIG。MIG IP去掉XADC后會(huì)生成一個(gè)溫度端口用來接收數(shù)據(jù)。這樣就不會(huì)發(fā)生沖突。
????另外一個(gè)非常便捷的獲取溫度信息的方案就是使用Hardware Manager。在Hardware Manager中打開XADC就能看到溫度信息。
????其實(shí)XADC所有通道數(shù)據(jù)都可以通過這個(gè)方法獲取。
文章來源:http://www.zghlxwxcb.cn/news/detail-491128.html
????可以看到上圖界面溫度信息Temp 60.3℃。文章來源地址http://www.zghlxwxcb.cn/news/detail-491128.html
到了這里,關(guān)于Xilinx 7系列FPGA內(nèi)置ADC的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!