一種基于STM32的高精度程控電流源設(shè)計(jì)
低紋波、高精度電流源是一種重要的儀器設(shè)備;廣泛應(yīng)用于電光源、電化學(xué)、通信、測量技術(shù)、電子儀器等領(lǐng)域。目前,市場上的電流源不具備連續(xù)可調(diào)功能;并且輸出電流范圍小、精度低、紋波大、價(jià)格昂貴;為應(yīng)對(duì)市場需求;本文設(shè)計(jì)了輸出電流為0~5A;最大功率為100W的高精度程控電流源;主要技術(shù)指標(biāo)為:電流源工作電壓220V/50Hz;輸出電流范圍0~5A連續(xù)可調(diào);線路調(diào)整率《0。05%+0。1MA;負(fù)載調(diào)整率《0。05%+1MA;設(shè)準(zhǔn)確度?0。05%+2MA;回讀準(zhǔn)確度《0。05%+2MA;系統(tǒng)設(shè)定分辨率為0。1MA;回讀分辨率為0。01MA。
1、線性穩(wěn)流原理
數(shù)控式線性穩(wěn)流電路結(jié)構(gòu)如圖1所示,它由調(diào)整管、誤差放大器、電流檢測器、D/A、A/D、MCU控制系統(tǒng)組成。當(dāng)調(diào)整管工作在放大狀態(tài)下,通過控制調(diào)整管基極電位,從而控制管壓降UCE的大小,為了使輸出電流穩(wěn)定,當(dāng)負(fù)載變化或者輸入電壓UI波動(dòng)時(shí),需要調(diào)整UCE,使輸出電流保持不變。采用電流檢測和誤差放大器構(gòu)成負(fù)反饋電路結(jié)構(gòu)來達(dá)到穩(wěn)流目標(biāo)?假設(shè)UI或RL增大,輸出電流增大,電流檢測電路輸出電壓U+增大,若控制電壓UC保持不變,誤差放大器輸出U0l減小,調(diào)整管的管壓降UCE上升,使輸出電流保持不變。設(shè)電流檢測電路電壓放大倍數(shù)為K,由運(yùn)算放大器的虛短、虛斷特性可得:
U+=KRI=Uc(1)
從而得到,I=UC/KR。因此,該電路能達(dá)到穩(wěn)流目的。由式(1)可知,通過改變控制電壓UC的大小,可改變輸出電流的大小。MCU系統(tǒng)通過D/A器件可達(dá)到輸出電流程控目的。
圖1 線性穩(wěn)流電路原理
2、電流源硬件設(shè)計(jì)
電流源硬件框圖如圖2所示,由T頻變壓器、單相橋式整流濾波、一次穩(wěn)壓、線性穩(wěn)流、輔助電源、STM32系統(tǒng)、D/A和A/D組成。輔助電源采用LM317、LM337、LM7805、LM7905、AMS1117電源管理芯片,提供電路中芯片正常工作的電壓。STM32單片機(jī)系統(tǒng)通過D/A控制線性穩(wěn)流輸出,通過A/D讀取輸出值,從而到達(dá)程控目的。
圖2 基于STM32的電流源硬件框圖
2.1、STM32單片機(jī)系統(tǒng)設(shè)計(jì)
采用STM32F407VGT6作為核心處理器。該處理器是基于ARMCortex-M4內(nèi)核的低成本處理器,具有豐富的外設(shè)資源,主要用于電機(jī)控制,自動(dòng)化,電子測量等應(yīng)用領(lǐng)域。STM32單片機(jī)系統(tǒng)硬件框圖如圖3所示,由RS232串口電路,液晶顯示模塊,按鍵及旋轉(zhuǎn)編碼器,串行FLASH組成。系統(tǒng)通過按鍵和編碼器獲取用戶輸入,通過顯示模塊進(jìn)行人機(jī)交互,RS232串口用于傳送SCPI控制指令,實(shí)現(xiàn)計(jì)算機(jī)與系統(tǒng)連接,串行FIASH采用SST25VF芯片,用于掉電時(shí)儲(chǔ)存運(yùn)行數(shù)據(jù)。
圖3 STM32單片機(jī)系統(tǒng)硬件框圖
2.2、變壓器抽頭選擇電路設(shè)計(jì)
為了提高程控電流源的精度以及減小系統(tǒng)功耗,在交直流變換中通過改變變壓器抽頭選擇與設(shè)置電壓相近的電壓。變壓器抽頭選擇電路,主要由滯回比較器和繼電器組成。如圖4所示,變壓器有34V、28V、22V、16V以及10V交流輸出.STM32處理器計(jì)算相應(yīng)的電壓量程后,通過控制S1、S2、S3、S4繼電器開關(guān)來選擇交流輸入電壓,本電路默認(rèn)輸入10V的交流電壓。電流源輸出電壓經(jīng)Ris與R19分壓得來,為了穩(wěn)定輸出電壓,在電路中加入滯回比較器,并把輸出電壓接到比較器正相端。
圖4 變壓器抽頭選擇電路
2.3、程控穩(wěn)流電路設(shè)計(jì)
程控穩(wěn)流電路如圖5所示,主要有電流檢測電路、誤差放大電路、誤差放大穩(wěn)壓電路組成。電流檢測電路主要有電流檢測芯片INA286以及檢測電阻(R59)組成,當(dāng)電流通過R59時(shí),R59產(chǎn)生一個(gè)電壓從而把檢測電流轉(zhuǎn)換成電壓,通過INA286將此電壓進(jìn)一步放大得到Usence,并其輸入到誤差放大器。通過OPA2188將Usence與設(shè)置電壓(DA—Vin)比較后控制控制調(diào)整管的導(dǎo)通程度,從而控制電流大小。調(diào)整管采用兩個(gè)達(dá)林頓管TIP147并聯(lián)構(gòu)成,降低單管電流,提高調(diào)整管的使用壽命。
考慮到本電路輸出最大電流為5A,檢測電流電阻的精度會(huì)影響到系統(tǒng)的精度,若電阻阻值選擇過大,在大電流情況下發(fā)熱嚴(yán)重,導(dǎo)致電阻阻值變化,從而影響系統(tǒng)的精度。采用DALE的高精度低溫漂電阻作為電流檢測電阻,阻值為0.01歐,在最大電流情況下該電阻的功率為0.25W.
圖5 穩(wěn)流電路
2.4、A/D和D/A電路設(shè)計(jì)
如圖6所示,由于電流源要求設(shè)定分辨率為0.1mA,需要采用13bit以上的D/A轉(zhuǎn)換芯片作為電流控制功能。本文采用TI公司的DAC8830轉(zhuǎn)換芯片。電路輸出5A時(shí),電流檢測輸出為SV。考慮到給予輸出電流一定的余量,電流源設(shè)計(jì)成最大輸出為5.5A。D/A轉(zhuǎn)換器基準(zhǔn)電壓采用2.5V,在5.5A輸出時(shí),D/A電路需要輸出s.sV,因此需要在D/A輸出端加入一級(jí)電壓放大器。此時(shí),D/A的控制精度為1LSB=5.5/2‘6=0.084mA。
圖6AD和DA電路
電流源的設(shè)計(jì)指標(biāo)要求回讀分辨率為0.01mA,需要采用19bit以上的A/D才能滿足設(shè)計(jì)要求。本文采用24bit模數(shù)轉(zhuǎn)換芯片LTC2400。通過R4和R5的分壓使輸入電壓不會(huì)超過2.048V基準(zhǔn)電壓。電流回讀精度為0.68uA。
3、電流源軟件設(shè)計(jì)
電流源軟件設(shè)計(jì)分為界面顯示和控制兩部分,主要功能有恒流輸出,任意波形電流輸出,按上次運(yùn)行參數(shù)輸出。同時(shí),設(shè)計(jì)了基于串口通信的SCPI指令解析器,PC端可通過SCPI指令對(duì)電流源進(jìn)行控制。
3.1、程控界面軟件設(shè)計(jì)
電流源采用5inch800x480分辨率TFT顯示模塊進(jìn)行界面顯示,通過按鍵和旋轉(zhuǎn)編碼器設(shè)置運(yùn)行參數(shù)。系統(tǒng)移植了嵌入式uCGUI界面系統(tǒng),通過函數(shù)庫調(diào)用完成界面設(shè)計(jì)。界面控制流程圖如圖7所示,完成界面創(chuàng)建后,系統(tǒng)等待輸入信號(hào)。當(dāng)輸入信號(hào)來到時(shí),系統(tǒng)根據(jù)信號(hào)類型進(jìn)入對(duì)應(yīng)的子函數(shù)。
圖7界面控制流程圖
3.2、電流輸出控制程序設(shè)計(jì)
電流輸出分為恒流輸出和任意波形輸出。恒流輸出需要設(shè)置輸出電流值,運(yùn)行時(shí)間。恒流輸出開始時(shí),系統(tǒng)獲取設(shè)置參數(shù),并將設(shè)置電流值轉(zhuǎn)換為D/A設(shè)置值,啟動(dòng)系統(tǒng)計(jì)時(shí)器,控制D/A輸出并通過A/D讀取輸出電流。當(dāng)運(yùn)行結(jié)束信號(hào)有效時(shí),輸出結(jié)束。任意波形輸出需要設(shè)置每個(gè)步序的上升時(shí)間,升畢電流值,頂部維持時(shí)間。具體控制流程如圖8所示,系統(tǒng)獲取輸人參數(shù)后,啟動(dòng)定時(shí)器,根據(jù)上升時(shí)間判斷該時(shí)間階段是否處于電流上升階段,若是,計(jì)算上升斜率值,控制D/A輸出;否則,系統(tǒng)根據(jù)頂部維持時(shí)間判斷該時(shí)間段是否處于電流維持階段,若是,輸出D/A值不變;否則,本步序輸出結(jié)束。
圖8任意波形電流輸出控制流程圖
3.3、SCPI指令解析器設(shè)計(jì)
SCPI指令是針對(duì)串口和GPIB接口的通信命令,由標(biāo)準(zhǔn)ASCⅡ碼組成.IEEE488.2中定義SCPI命令位于硬件層之上,可實(shí)現(xiàn)對(duì)不同儀器的控制功能。PC端可通過SCPI指令實(shí)現(xiàn)對(duì)電流源的監(jiān)測和控制。本文設(shè)計(jì)兩類SCPI指令,一類是SCPI公用指令,以字符‘*’開始,如查詢?cè)O(shè)備信息,系統(tǒng)復(fù)位等。另一類是電流源專用指令,分別為電流設(shè)置命令,電流回讀命令,狀態(tài)查詢命令,輸出使能/無效命令。一條SCPI指令包括指令題頭,分隔符,指令參數(shù)。例如CURR:DCl.0,CURR:AC是本條指令題頭,表示電流設(shè)置,設(shè)置為恒流模式,1.0是指令參數(shù),表示設(shè)定恒流輸出為1A。表1列出了本電流源系統(tǒng)用到的專用指令。
表1 電流源專用SCPI指令列表
本文采用查表法實(shí)現(xiàn)SCPI指令解析。當(dāng)接收到SCPI指令時(shí),系統(tǒng)首先判斷指令的語法是否正確,若語法錯(cuò)誤,返回錯(cuò)誤代碼,若正確,則對(duì)指令進(jìn)行預(yù)處理,并在已存的指令表中查找對(duì)應(yīng)的人口函數(shù)。軟件流程如圖9所示。
圖9SCPI指令解析流程
4、實(shí)驗(yàn)驗(yàn)證
4.1、電流源輸出精度實(shí)驗(yàn)
高精度程控電流源樣機(jī)如圖10所示,為了驗(yàn)證電流源輸出精度,將4Q電阻負(fù)載接人電流源,采用UT61E電流表進(jìn)行測量,在輸出0—5A測得對(duì)應(yīng)的輸出值。表2列出了部分實(shí)驗(yàn)數(shù)據(jù),從中可得到,本電流源設(shè)置精度可達(dá)到0.05%+2mA,回讀分辨率可達(dá)到0.05%+2mA,滿足設(shè)定的指標(biāo)。
圖10 高精度程控電流源樣機(jī)
表2電流源輸出精度數(shù)據(jù) 單位:mA
5、結(jié)束語
采用線性穩(wěn)流結(jié)構(gòu),設(shè)計(jì)了一種高精度程控電流源系統(tǒng)。電流源最大輸出功率為100W.輸出電流范圍0—5A,設(shè)置精度可達(dá)到0.05%+2mA,回讀分辨率可達(dá)到0.05%+2mA。軟件上設(shè)計(jì)了SCPI指令解析器,可通過指令實(shí)現(xiàn)控制功能。通過實(shí)驗(yàn)證明,該電流源工作穩(wěn)定,精度高,電流輸出范圍大,滿足工程需要。