基于VUSB技術(shù)的數(shù)控直流穩(wěn)壓電源的設(shè)計
#define USB_CFG_IOPORTNAME D//這個接口連接USB總線。當(dāng)配置為D時,寄存器PORTD,PIND and DDRD將有效。
#define USB_CFG_DMINUS_BIT 1//位配置,是在USB_CFG_IOPORT 中連接USB D-的線??梢耘渲脼榻涌诘娜魏挝?。
#define USB_CFG_DPLUS_BIT 2//位配置,是在USB_CFG_IOPORT 中連接USB D+的線。也可以連接到任意口,但是注意D+一定要連接都中斷口INT0
2)單片機在接收到讀取數(shù)據(jù)命令時會自動調(diào)用usbFunctionSetup(uchar data[8]),在函數(shù)內(nèi)把全局指針*usbMsgPtr指向所要發(fā)送的數(shù)據(jù)首地址,然后返回(函數(shù)返回值)所發(fā)送數(shù)據(jù)的長度就可以了。由于采用的是命令包方式傳輸數(shù)據(jù),每次只能接收4個字節(jié)的有效數(shù)據(jù),存儲在data[2]~data[4]中。
3)初始化時需要將MAX522的輸出置為關(guān)閉狀態(tài)。
寫入MAX522時首先寫入8位控制字,然后寫入8位DAC數(shù)據(jù)。
2.2 上位機軟件
上位機用C# 語言進行編寫,驅(qū)動采用一款名為LibUsbDotNet的開源USB上位機驅(qū)動庫文件。此驅(qū)動庫文件還提供了供。NET平臺調(diào)用的USB接口函數(shù)。使用時需包含相應(yīng)的動態(tài)鏈接庫文件。
上位機軟件主要包括顯示設(shè)備連接狀態(tài)、寫入電壓值及讀取當(dāng)前電壓值等功能。上位機軟件流程圖如圖6所示。
圖6 上位機軟件流程。
只有在總線請求為用戶自定義類型(Vendor)時單片機才會調(diào)用usbFunctionSetup(uchar data[8])這個函數(shù),所以傳輸數(shù)據(jù)是通過發(fā)送用戶自定義類型的Setup數(shù)據(jù)包來實現(xiàn)的。讀數(shù)據(jù)時設(shè)置此數(shù)據(jù)包為IN,同時寫入需要讀取的字節(jié)數(shù)。寫入數(shù)據(jù)時設(shè)置數(shù)據(jù)包為OUT,4字節(jié)的有效數(shù)據(jù)則包含在所建立的8字節(jié)Setup數(shù)據(jù)包的data[2]~data[4]之中。
3 實驗驗證與分析
本數(shù)控直流穩(wěn)壓電源在使用之前需進行校零。在初始狀態(tài)下,調(diào)節(jié)集成運放μA741的外接調(diào)零電阻使集成運放輸出為0,調(diào)節(jié)射極輸出器偏置電阻R13使輸出電壓為0.
在輸出最大的情況下,調(diào)節(jié)輸出集成運放的比例放大電阻R14,使得輸出電壓為12V.
校零之后將上位機設(shè)置電壓值與實際輸出電壓進行對比實驗,實驗數(shù)據(jù)如表1所示。
表1 電壓輸出對比實驗結(jié)果
所設(shè)計電壓源實際輸出值與設(shè)定值偏差較小,能夠滿足0~12V連續(xù)可調(diào)輸出,步進值為0.1V的使用要求。
4 結(jié) 論
設(shè)計了一種以單片機為主,基于VUSB技術(shù)進行數(shù)據(jù)傳輸控制的數(shù)控直流穩(wěn)壓電源。輸出電壓值由單片機控制,步進調(diào)節(jié)方便,輸出穩(wěn)定。既可以作為單獨的電源使用,也可以嵌入到其他需要步進電壓模塊的測試系統(tǒng)之中。
上拉電阻相關(guān)文章:上拉電阻原理
評論