A/D采样控制电路设计---VHDL
一、實(shí)驗(yàn)?zāi)康?/h2>
(1)了解一般狀態(tài)機(jī)的設(shè)計(jì)與應(yīng)用
(2)學(xué)習(xí)并掌握Quartus II的使用方法
(3)學(xué)習(xí)簡單時(shí)序電路的設(shè)計(jì)和硬件測(cè)試。
(3)學(xué)習(xí)使用VHDL 語言方法進(jìn)行邏輯設(shè)計(jì)輸入
(3)掌握利用有限狀態(tài)機(jī)實(shí)現(xiàn)一般時(shí)序邏輯的分析方法
(5)學(xué)習(xí)用狀態(tài)機(jī)對(duì)A/D轉(zhuǎn)換器 ADC0809的采樣控制電路
(6)學(xué)習(xí)設(shè)計(jì)A/D采樣控制電路,學(xué)習(xí)較復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)方法,并在實(shí)驗(yàn)開發(fā)系統(tǒng)上熟悉運(yùn)行輸入及仿真步驟原理
二、實(shí)驗(yàn)儀器設(shè)備
(1) PC機(jī)一臺(tái)。
(2)Quartus Ⅱ開發(fā)軟件一套
(3)EDA實(shí)驗(yàn)開發(fā)系統(tǒng)一套(EP1C12Q240C8)
三、實(shí)驗(yàn)原理
ADCO809是 CMOS的8的A/D轉(zhuǎn)換器,片內(nèi)有8路模擬開關(guān),可控制8個(gè)模擬量中的一個(gè)進(jìn)入轉(zhuǎn)換器中。轉(zhuǎn)換時(shí)間約為100us,含鎖存控制的8路多路開關(guān),輸出有三態(tài)緩沖器控制,單5V電源供電。
主要控制信號(hào)如圖所示,START是轉(zhuǎn)換啟動(dòng)信號(hào),高電平有效:ALE是3位通道選擇地址(ADDC、ADDB、 ADDA)信號(hào)的鎖存信號(hào)。當(dāng)模擬量送至某一輸入端(如 IN1或IN2等),由3位地址信號(hào)選擇,而地址信號(hào)由 ALE鎖存;EOC是轉(zhuǎn)換情況狀態(tài)信號(hào),當(dāng)啟動(dòng)轉(zhuǎn)換約100us后,EOC產(chǎn)生一個(gè)負(fù)脈沖,以表示轉(zhuǎn)換結(jié)束;在EOC的上升沿后,若使輸出使能信號(hào)OE為高電平,則控制打開三態(tài)緩沖器,把轉(zhuǎn)換好的位數(shù)據(jù)結(jié)果輸至數(shù)據(jù)總線,至此ADC0809的一次轉(zhuǎn)換結(jié)束控制 ADC0809采樣的狀態(tài)圖如圖所示。參考程序的采樣狀態(tài)機(jī)結(jié)構(gòu)圖如圖所示。
四、實(shí)驗(yàn)內(nèi)容
利用Ouartus Il對(duì)參考程序進(jìn)行文本編輯輸入和仿真測(cè)試,給出仿真波形。最后進(jìn)行引腳鎖定并進(jìn)行測(cè)試,硬件驗(yàn)證參考程序電路對(duì) ADC0809的控制功能。測(cè)試步驟:建議選擇電路模式5,ADC0809的轉(zhuǎn)換時(shí)鐘 CLK已經(jīng)事先接有750kHz的頻Z率,引腳鎖定為 START接PIO34,OE (ENABLE)接PIO35,EOC接PIO8, ALE接PIO33,狀態(tài)機(jī)時(shí)鐘 CLK接clock0,ADDA 接PIO32(ADDB和 ADDC(都接GND),ADCO809的8位輸出數(shù)據(jù)線接PI023~PIO16,。鎖存輸出Q顯示于數(shù)碼8/數(shù)碼7(PIO47~PIO40)。
五、實(shí)驗(yàn)步驟
將GW48 EDA系統(tǒng)左下角的撥碼開關(guān)4、6、7向下?lián)?#xff0c;其余向上,即使0809工作使能,使FPGA能接收來自0809轉(zhuǎn)換結(jié)束的信號(hào)(對(duì)于GW48-CK系統(tǒng),左下角選擇插針處的“轉(zhuǎn)換結(jié)束”和“A/D使能”用二短路帽短接)。下載ADC0809中的ADCINT.sof到實(shí)驗(yàn)板的FPGA中; clock0 的短路帽接可選12MHz6MHz、65536Hz等頻率;按動(dòng)一次右側(cè)的復(fù)位鍵;用螺絲刀旋轉(zhuǎn)GW48系統(tǒng)左下角的精密電位器,以便為ADC0809提供變化的待測(cè)模擬信號(hào)(注意,這時(shí)必須在程序中賦值: ADDA<=‘1’,這樣就能通過實(shí)驗(yàn)系統(tǒng)左下的AIN1輸入端與電位器相接,并將信號(hào)輸入0809的IN1端)。這時(shí)數(shù)碼管8和7將顯示ADC0809采樣的數(shù)字值(16進(jìn)制),數(shù)據(jù)來自FPGA的輸出。數(shù)碼管2和1也將顯示同樣數(shù)據(jù),此數(shù)據(jù)直接來自0809的數(shù)據(jù)口。實(shí)驗(yàn)結(jié)束后注意將撥碼開關(guān)撥向默認(rèn):僅“4”向下。
代碼示例:
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS PORT (D : IN STD_LOGIC_VECTOR (7 DOWNTO 0);CLK: IN STD_LOGIC;EOC: IN STD_LOGIC;ALE: OUT STD_LOGIC;OE : OUT STD_LOGIC;START:OUT STD_LOGIC;ADDA: OUT STD_LOGIC;LOCK0:OUT STD_LOGIC;Q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END ADCINT;ARCHITECTURE behav OF ADCINT ISTYPE states IS (st0, st1, st2, st3, st4);SIGNAL current_states, next_states: states:=st0;SIGNAL REGL :STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK :STD_LOGIC;BEGINADDA <= '1';Q <= REGL;LOCK0 <= LOCK; COM: PROCESS (current_states,eoc)BEGINCASE current_states ISWHEN st0=>ALE<='0';START<='0';LOCK<='0';OE<='0';next_states<=st1;WHEN st1=>ALE<='1';START<='1';LOCK<='0';OE<='0';next_states<=st2;WHEN st2=>ALE<='0';START<='0';OE<='0';IF (EOC='1') THEN next_states<=st3;ELSE next_states<=st2;END IF;WHEN st3=> ALE<='0';START<='0';LOCK<='0';OE<='1';next_states<=st4;WHEN st4=>ALE<='0';START<='0';LOCK<='1';OE<='1';next_states <=st0;WHEN OTHERS=>next_states<=st0;END CASE;END PROCESS COM;REG: PROCESS (CLK)BEGINIF (CLK'EVENT AND CLK='1') THEN current_states<=next_states;END IF;END PROCESS REG; LATCH1:PROCESS (LOCK)BEGIN IF LOCK='1' AND LOCK'EVENT THEN REGL<=D;END IF;END PROCESS LATCH1;END behav;A/D采樣控制電路時(shí)序圖示例:
工程文件下載:
A/D采樣控制電路設(shè)計(jì)—VHDL
結(jié)構(gòu)圖信號(hào)與引腳對(duì)照表:
結(jié)構(gòu)圖信號(hào)與引腳對(duì)照表
總結(jié)
以上是生活随笔為你收集整理的A/D采样控制电路设计---VHDL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R 学习 - 图形设置中英字体
- 下一篇: 微型计算机的字节取决于什么的宽度,计算机