資靈薇+安盼盼+潘迪
摘要:本設計以直流電壓源為核心,CPLD為主控制器,通過按鈕來設置直流電源的輸出電壓,設置步進等級可達0.1V,輸出電壓范圍為0—9.9V,輸出電流為1A,并由數碼管顯示輸出電壓值。由“+”、“-”兩鍵分別控制輸出電壓步進增減,并且輸出電壓可預置在0~9.9V之間的任意一個值。由CPLD輸出數字信號,經過D/A轉換器(AD0832)輸出模擬電流量,再經過運算放大器隔離放大輸出模擬電壓量,控制穩壓芯片L7805電壓的變化而輸出不同的電壓。
關鍵詞:數控直流電源;CPLD;D/A數模轉換
1方案設計
設計要求:(1)輸出電壓范圍:0~9.9V,步進0.1V,紋波不大于10mV。(2)輸出電流:500mA。(3)輸出電壓用數碼管顯示。(4)由“+”、“-”鍵分別控制輸出電壓步進增或減。(5)輸出電壓可預置在0~9.9V之間任意值。(6)輸出電壓可自動增加或減少(步進不變)。(7)增加保護功能:輸出電壓不能發生從0.0→9.9(或9.9→0.0)跳變。
2設計思路
3主要電路(設計和計算)
3.1電源部分:
a.變壓部分:我們用的是220V,15V的變壓器變壓。
b.濾波部分:為了使穩壓電源可以正常工作,濾波電路的輸出電壓U1應該滿足下式:
U1≥Uomax+(UI-Uo)min
其中:Uomax為穩壓電源輸出最大值
(UI-Uo)min 為集成穩壓器輸入與輸出最小電壓差,典型值為3V.
所以:U1≥=V =12+3=15v
τ=RLC≥(3→5)T
RL=U1×I1(頻率為50HZ)
C=(3→5)T*0.5÷RL=(3→5)×0.02×0.52×20.57=2666μF
則可以取2600μF以上的電容(RLC越大,電容的放電速度越慢,紋波成分越小)。因此電容C選用3300μF電解電容來濾波。
3.2CPLD部分。該部分我們將其分為6個模塊分來實現其功能,其中時鐘模塊用的是原理圖,其他模塊使用VHDL語言編寫,最后合成頂層文件的原理圖文件。
3.2.1十進制可逆計數部分(延時,長按)。(其中V為兩位BCD輸出電壓值,N為防抖延遲計數和快進連續計數延遲判斷變量,DL為減速變量,時鐘1Hz)第一,先實現從00~99的加減功能,分為temp1(0~9)(低位)和temp2(0~9)(高位)兩位,每次都加(減)1,加到99(0)停止,控制temp1和temp2的取值范圍,然后temp1等于9時temp2進(或減)一位,到99或0時停止;第二,實現防抖和長按功能,要消除因機械抖動而改變輸出的電壓。快進連續計數延遲判斷變量,當某一個按鍵長時間按下時,實現連續加減。
3.2.2BCD轉二進制。上面的程序輸出的是0~99的BCD碼,而實際中需要將0~99的二進制碼輸入DAC0832,所以還應將BCD碼轉換為二進制輸出。
3.2.3BCD轉8段譯碼顯示。這個模塊是把可逆計數模塊輸出的小數點前一位和小數點輸出到數碼管上,因為帶有小數點,所以這一位有8位輸出,最高位是‘1代表小數點。(BCD碼輸出顯示到數碼管上)這個模塊的敏感信號就不是時鐘了,還是temp1和temp2。由于實際中數碼管是共陰極的,所以用真值表中‘1就代表點亮該位,‘0代表熄滅。
3.2.4時鐘和分頻。因為調用芯片內的晶振時鐘的VHDL代碼比較復雜,所以內部時鐘這部分用原理圖設計。分頻部分,主要是將內部時鐘的高頻率降低到我們所需的頻率,產生一個新的頻率。
3.3D/A轉換。D/A轉換:CPLD部分向DAC0832發送數字編碼,產生不同的輸出。由于DAC0832的為電流量需要用運放將電流信號轉變為電壓信號。為了實現電壓值穩定輸出,還需要通過運放實現。因為輸出電壓量程為10V,VREF基準電壓范圍為-15V---+15V,基準電壓可以為5.0V,這樣在DAC0832的8腳輸出電壓的分辨率為:5.0÷127=0.039。即D/A輸入數據端每增加1,電壓增加0.039V。然后調節反饋電阻R 的大小,才能得到輸出電壓的電壓分辨率:0.039÷15KΩ=0.1÷R,R的大小約為38.46 KΩ。這樣當調節電壓的時候,以每次0.1V的梯度增加或者降低電壓。
4檢測與調試問題
在檢測D/A轉換的Vref上,431提供的輸出電壓應該是5V,但出來總是9V左右0,不能滿足DA轉換的需要,電 路參數的設定還存在問題,暫時沒檢測出來。
在調試CPLD的輸出即DAC0832的輸入時。是從BCD碼向二進制數的轉換,引腳鎖定比較復雜,檢測了很多遍,輸出不同的二進制數最后才正確的鎖定好所有的引腳。
用示波器測試紋波的時候,紋波的大小約30mv,比較大,想到的解決方案是再電源和地之間加了一個1000μF和1nF的電容來減小輸出的紋波。
在測試輸出電流的時候,總是只有幾毫安的大小,然后返回去檢測輸出電壓是正確的,再檢查7805之間的壓差發現為0,即7805被燒壞,沒有起到擴流的左右,解決方法即更換一個7805。
5測試數據及實驗結果
電路空載及接入功率電阻(作為負載)后所測得電源電壓輸出及紋波大小如下表所示:
序號 空載 接10歐姆負載
顯示電壓/V 測量電壓/V 顯示電壓/V 輸出紋波/mV
1 9.9 9.75 9.9 6.1
2 9.0 8.90 9.0 6.1
3 8.0 7.95 8.0 6.3
4 7.0 7.00 7.0 6.2
5 6.0 6.03 6.0 6.1
6 5.0 5.04 5.0 6.4
7 4.0 4.10 4.0 6.2
8 3.0 3.09. 3.0 6.3
9 2.0 2.11 2.0 6.4
10 1.0 1.11 1.0 6.2
11 0.0 0.23 0.0 6.3
摘要:本設計以直流電壓源為核心,CPLD為主控制器,通過按鈕來設置直流電源的輸出電壓,設置步進等級可達0.1V,輸出電壓范圍為0—9.9V,輸出電流為1A,并由數碼管顯示輸出電壓值。由“+”、“-”兩鍵分別控制輸出電壓步進增減,并且輸出電壓可預置在0~9.9V之間的任意一個值。由CPLD輸出數字信號,經過D/A轉換器(AD0832)輸出模擬電流量,再經過運算放大器隔離放大輸出模擬電壓量,控制穩壓芯片L7805電壓的變化而輸出不同的電壓。
關鍵詞:數控直流電源;CPLD;D/A數模轉換
1方案設計
設計要求:(1)輸出電壓范圍:0~9.9V,步進0.1V,紋波不大于10mV。(2)輸出電流:500mA。(3)輸出電壓用數碼管顯示。(4)由“+”、“-”鍵分別控制輸出電壓步進增或減。(5)輸出電壓可預置在0~9.9V之間任意值。(6)輸出電壓可自動增加或減少(步進不變)。(7)增加保護功能:輸出電壓不能發生從0.0→9.9(或9.9→0.0)跳變。
2設計思路
3主要電路(設計和計算)
3.1電源部分:
a.變壓部分:我們用的是220V,15V的變壓器變壓。
b.濾波部分:為了使穩壓電源可以正常工作,濾波電路的輸出電壓U1應該滿足下式:
U1≥Uomax+(UI-Uo)min
其中:Uomax為穩壓電源輸出最大值
(UI-Uo)min 為集成穩壓器輸入與輸出最小電壓差,典型值為3V.
所以:U1≥=V =12+3=15v
τ=RLC≥(3→5)T
RL=U1×I1(頻率為50HZ)
C=(3→5)T*0.5÷RL=(3→5)×0.02×0.52×20.57=2666μF
則可以取2600μF以上的電容(RLC越大,電容的放電速度越慢,紋波成分越小)。因此電容C選用3300μF電解電容來濾波。
3.2CPLD部分。該部分我們將其分為6個模塊分來實現其功能,其中時鐘模塊用的是原理圖,其他模塊使用VHDL語言編寫,最后合成頂層文件的原理圖文件。
3.2.1十進制可逆計數部分(延時,長按)。(其中V為兩位BCD輸出電壓值,N為防抖延遲計數和快進連續計數延遲判斷變量,DL為減速變量,時鐘1Hz)第一,先實現從00~99的加減功能,分為temp1(0~9)(低位)和temp2(0~9)(高位)兩位,每次都加(減)1,加到99(0)停止,控制temp1和temp2的取值范圍,然后temp1等于9時temp2進(或減)一位,到99或0時停止;第二,實現防抖和長按功能,要消除因機械抖動而改變輸出的電壓。快進連續計數延遲判斷變量,當某一個按鍵長時間按下時,實現連續加減。
3.2.2BCD轉二進制。上面的程序輸出的是0~99的BCD碼,而實際中需要將0~99的二進制碼輸入DAC0832,所以還應將BCD碼轉換為二進制輸出。
3.2.3BCD轉8段譯碼顯示。這個模塊是把可逆計數模塊輸出的小數點前一位和小數點輸出到數碼管上,因為帶有小數點,所以這一位有8位輸出,最高位是‘1代表小數點。(BCD碼輸出顯示到數碼管上)這個模塊的敏感信號就不是時鐘了,還是temp1和temp2。由于實際中數碼管是共陰極的,所以用真值表中‘1就代表點亮該位,‘0代表熄滅。
3.2.4時鐘和分頻。因為調用芯片內的晶振時鐘的VHDL代碼比較復雜,所以內部時鐘這部分用原理圖設計。分頻部分,主要是將內部時鐘的高頻率降低到我們所需的頻率,產生一個新的頻率。
3.3D/A轉換。D/A轉換:CPLD部分向DAC0832發送數字編碼,產生不同的輸出。由于DAC0832的為電流量需要用運放將電流信號轉變為電壓信號。為了實現電壓值穩定輸出,還需要通過運放實現。因為輸出電壓量程為10V,VREF基準電壓范圍為-15V---+15V,基準電壓可以為5.0V,這樣在DAC0832的8腳輸出電壓的分辨率為:5.0÷127=0.039。即D/A輸入數據端每增加1,電壓增加0.039V。然后調節反饋電阻R 的大小,才能得到輸出電壓的電壓分辨率:0.039÷15KΩ=0.1÷R,R的大小約為38.46 KΩ。這樣當調節電壓的時候,以每次0.1V的梯度增加或者降低電壓。
4檢測與調試問題
在檢測D/A轉換的Vref上,431提供的輸出電壓應該是5V,但出來總是9V左右0,不能滿足DA轉換的需要,電 路參數的設定還存在問題,暫時沒檢測出來。
在調試CPLD的輸出即DAC0832的輸入時。是從BCD碼向二進制數的轉換,引腳鎖定比較復雜,檢測了很多遍,輸出不同的二進制數最后才正確的鎖定好所有的引腳。
用示波器測試紋波的時候,紋波的大小約30mv,比較大,想到的解決方案是再電源和地之間加了一個1000μF和1nF的電容來減小輸出的紋波。
在測試輸出電流的時候,總是只有幾毫安的大小,然后返回去檢測輸出電壓是正確的,再檢查7805之間的壓差發現為0,即7805被燒壞,沒有起到擴流的左右,解決方法即更換一個7805。
5測試數據及實驗結果
電路空載及接入功率電阻(作為負載)后所測得電源電壓輸出及紋波大小如下表所示:
序號 空載 接10歐姆負載
顯示電壓/V 測量電壓/V 顯示電壓/V 輸出紋波/mV
1 9.9 9.75 9.9 6.1
2 9.0 8.90 9.0 6.1
3 8.0 7.95 8.0 6.3
4 7.0 7.00 7.0 6.2
5 6.0 6.03 6.0 6.1
6 5.0 5.04 5.0 6.4
7 4.0 4.10 4.0 6.2
8 3.0 3.09. 3.0 6.3
9 2.0 2.11 2.0 6.4
10 1.0 1.11 1.0 6.2
11 0.0 0.23 0.0 6.3
摘要:本設計以直流電壓源為核心,CPLD為主控制器,通過按鈕來設置直流電源的輸出電壓,設置步進等級可達0.1V,輸出電壓范圍為0—9.9V,輸出電流為1A,并由數碼管顯示輸出電壓值。由“+”、“-”兩鍵分別控制輸出電壓步進增減,并且輸出電壓可預置在0~9.9V之間的任意一個值。由CPLD輸出數字信號,經過D/A轉換器(AD0832)輸出模擬電流量,再經過運算放大器隔離放大輸出模擬電壓量,控制穩壓芯片L7805電壓的變化而輸出不同的電壓。
關鍵詞:數控直流電源;CPLD;D/A數模轉換
1方案設計
設計要求:(1)輸出電壓范圍:0~9.9V,步進0.1V,紋波不大于10mV。(2)輸出電流:500mA。(3)輸出電壓用數碼管顯示。(4)由“+”、“-”鍵分別控制輸出電壓步進增或減。(5)輸出電壓可預置在0~9.9V之間任意值。(6)輸出電壓可自動增加或減少(步進不變)。(7)增加保護功能:輸出電壓不能發生從0.0→9.9(或9.9→0.0)跳變。
2設計思路
3主要電路(設計和計算)
3.1電源部分:
a.變壓部分:我們用的是220V,15V的變壓器變壓。
b.濾波部分:為了使穩壓電源可以正常工作,濾波電路的輸出電壓U1應該滿足下式:
U1≥Uomax+(UI-Uo)min
其中:Uomax為穩壓電源輸出最大值
(UI-Uo)min 為集成穩壓器輸入與輸出最小電壓差,典型值為3V.
所以:U1≥=V =12+3=15v
τ=RLC≥(3→5)T
RL=U1×I1(頻率為50HZ)
C=(3→5)T*0.5÷RL=(3→5)×0.02×0.52×20.57=2666μF
則可以取2600μF以上的電容(RLC越大,電容的放電速度越慢,紋波成分越小)。因此電容C選用3300μF電解電容來濾波。
3.2CPLD部分。該部分我們將其分為6個模塊分來實現其功能,其中時鐘模塊用的是原理圖,其他模塊使用VHDL語言編寫,最后合成頂層文件的原理圖文件。
3.2.1十進制可逆計數部分(延時,長按)。(其中V為兩位BCD輸出電壓值,N為防抖延遲計數和快進連續計數延遲判斷變量,DL為減速變量,時鐘1Hz)第一,先實現從00~99的加減功能,分為temp1(0~9)(低位)和temp2(0~9)(高位)兩位,每次都加(減)1,加到99(0)停止,控制temp1和temp2的取值范圍,然后temp1等于9時temp2進(或減)一位,到99或0時停止;第二,實現防抖和長按功能,要消除因機械抖動而改變輸出的電壓。快進連續計數延遲判斷變量,當某一個按鍵長時間按下時,實現連續加減。
3.2.2BCD轉二進制。上面的程序輸出的是0~99的BCD碼,而實際中需要將0~99的二進制碼輸入DAC0832,所以還應將BCD碼轉換為二進制輸出。
3.2.3BCD轉8段譯碼顯示。這個模塊是把可逆計數模塊輸出的小數點前一位和小數點輸出到數碼管上,因為帶有小數點,所以這一位有8位輸出,最高位是‘1代表小數點。(BCD碼輸出顯示到數碼管上)這個模塊的敏感信號就不是時鐘了,還是temp1和temp2。由于實際中數碼管是共陰極的,所以用真值表中‘1就代表點亮該位,‘0代表熄滅。
3.2.4時鐘和分頻。因為調用芯片內的晶振時鐘的VHDL代碼比較復雜,所以內部時鐘這部分用原理圖設計。分頻部分,主要是將內部時鐘的高頻率降低到我們所需的頻率,產生一個新的頻率。
3.3D/A轉換。D/A轉換:CPLD部分向DAC0832發送數字編碼,產生不同的輸出。由于DAC0832的為電流量需要用運放將電流信號轉變為電壓信號。為了實現電壓值穩定輸出,還需要通過運放實現。因為輸出電壓量程為10V,VREF基準電壓范圍為-15V---+15V,基準電壓可以為5.0V,這樣在DAC0832的8腳輸出電壓的分辨率為:5.0÷127=0.039。即D/A輸入數據端每增加1,電壓增加0.039V。然后調節反饋電阻R 的大小,才能得到輸出電壓的電壓分辨率:0.039÷15KΩ=0.1÷R,R的大小約為38.46 KΩ。這樣當調節電壓的時候,以每次0.1V的梯度增加或者降低電壓。
4檢測與調試問題
在檢測D/A轉換的Vref上,431提供的輸出電壓應該是5V,但出來總是9V左右0,不能滿足DA轉換的需要,電 路參數的設定還存在問題,暫時沒檢測出來。
在調試CPLD的輸出即DAC0832的輸入時。是從BCD碼向二進制數的轉換,引腳鎖定比較復雜,檢測了很多遍,輸出不同的二進制數最后才正確的鎖定好所有的引腳。
用示波器測試紋波的時候,紋波的大小約30mv,比較大,想到的解決方案是再電源和地之間加了一個1000μF和1nF的電容來減小輸出的紋波。
在測試輸出電流的時候,總是只有幾毫安的大小,然后返回去檢測輸出電壓是正確的,再檢查7805之間的壓差發現為0,即7805被燒壞,沒有起到擴流的左右,解決方法即更換一個7805。
5測試數據及實驗結果
電路空載及接入功率電阻(作為負載)后所測得電源電壓輸出及紋波大小如下表所示:
序號 空載 接10歐姆負載
顯示電壓/V 測量電壓/V 顯示電壓/V 輸出紋波/mV
1 9.9 9.75 9.9 6.1
2 9.0 8.90 9.0 6.1
3 8.0 7.95 8.0 6.3
4 7.0 7.00 7.0 6.2
5 6.0 6.03 6.0 6.1
6 5.0 5.04 5.0 6.4
7 4.0 4.10 4.0 6.2
8 3.0 3.09. 3.0 6.3
9 2.0 2.11 2.0 6.4
10 1.0 1.11 1.0 6.2
11 0.0 0.23 0.0 6.3