基于FPGA的AD7862接口電路設(shè)計
2 接口電路程序設(shè)計
在本設(shè)計中用的是AD7862-10,采用高速轉(zhuǎn)換模式,典型轉(zhuǎn)換時序如圖2所示。
圖2中隊?wèi)?yīng)的時間參數(shù)的要求如下表1所示。
從圖2的時序圖可以看出AD7862通過輸入脈沖信號CONVST啟動轉(zhuǎn)換。在CONVST信號的下降沿,片上的兩個track/hold都同時的被設(shè)置為hold狀態(tài),兩個通道開始進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換時鐘由內(nèi)置的晶振提供。BUSY信號指示轉(zhuǎn)換結(jié)束,同時兩個通道的轉(zhuǎn)換結(jié)果可以被讀出。由AO的值來決定第一次讀取的值是VA1或者VB1,第二次讀取的是VA2或者VB2。當(dāng)CS信號和RD信號為低時,數(shù)據(jù)被從12位的并行數(shù)據(jù)線上讀取。在高速轉(zhuǎn)換模式下,AD7862的轉(zhuǎn)換時間為3.6 us,track/hold收集時間為0.3 us。為了保證最佳轉(zhuǎn)換效果,在轉(zhuǎn)換期間和下一次轉(zhuǎn)換開始前300 ns不能進(jìn)行讀取操作。
上述的時序圖對應(yīng)為先讀取VA1和VA2,然后在讀取VB1和VB2,對應(yīng)的信號AO首先被設(shè)為低電平,然后被拉為高電平。在設(shè)計驅(qū)動電路的過程中,一定要保證設(shè)計的時序滿足上述時序參數(shù)的要求,不然就有可能發(fā)生采樣不準(zhǔn),出錯。
結(jié)合AD7862的轉(zhuǎn)換速度,FPGA選擇1O MHz的處理時鐘。對于整個轉(zhuǎn)換過程的控制用一個狀態(tài)機(jī)來完成,狀態(tài)機(jī)分為12個狀態(tài) (idie,convert1,busy1,reada1,wait1,reada2,swapchna1,convert2,busy2,readb1,wait2,readb2),其中idle狀態(tài)為空閑等待轉(zhuǎn)換狀態(tài);convertl指示第一次轉(zhuǎn)換啟動狀態(tài);busyl指示第一次轉(zhuǎn)換狀態(tài);resdal狀態(tài)下讀取 VA1;waitl狀態(tài)為讀取VA1和VA2之間的等待狀態(tài);reada2狀態(tài)下讀取VA2;swapchnal狀態(tài)指示交換到另一個通道進(jìn)行轉(zhuǎn)換;convert2指示第二次轉(zhuǎn)換啟動狀態(tài);剩余狀態(tài)和前面的類似,只不過是針對VB1和VB2而言。設(shè)計代碼如下(只描述VA1和VA2的部分,剩下的類似):
評論