羅駿
(中國電子科技集團(tuán)公司第三十四研究所,廣西桂林,541004)
運(yùn)算放大器參數(shù)測(cè)試及其故障檢測(cè)對(duì)于電子領(lǐng)域特別是功放領(lǐng)域,有著極其重要的作用,能夠高效的排查故障,保障運(yùn)算放大器的使用便捷、有效。
針對(duì)上述問題設(shè)計(jì)實(shí)現(xiàn)了一個(gè)運(yùn)算放大器特性測(cè)試儀,以STM32單片機(jī)為主控芯片,通過DDS產(chǎn)生被測(cè)電路的驅(qū)動(dòng)信號(hào),同時(shí)構(gòu)建輸入測(cè)量和輸出測(cè)量網(wǎng)絡(luò)實(shí)現(xiàn)被測(cè)電路的基本參數(shù)的測(cè)量以及故障的判別。在故障判別電路中,通過輸入端的小信號(hào)結(jié)合大信號(hào)驅(qū)動(dòng)以及輸出端加入負(fù)載電阻來判斷電阻開路和短路故障;通過測(cè)量頻帶外某兩點(diǎn)的電壓增益實(shí)現(xiàn)電容開路以及容值改變的迅速判別,在進(jìn)度和速度上都有較大提高。
常見的單運(yùn)放還有場效應(yīng)管為輸入級(jí)都是通用型運(yùn)算放大器,僅僅只有級(jí)數(shù)不同而已。
下面列出這些通用型放大器的基本參數(shù):
(1)共模輸入電阻:這一參數(shù)是運(yùn)算放大器在線性區(qū)工作時(shí),輸入端的共模電壓區(qū)間和這個(gè)區(qū)間內(nèi)偏置電流的變化量的比值。
(2)直流共模抑制:這一參數(shù)主要用于評(píng)判運(yùn)算放大器對(duì)兩個(gè)輸入端口的相同直流的抑制能力。
(3)交流共模抑制:主要是用來計(jì)算運(yùn)算放大器對(duì)兩個(gè)輸入端口的相同交流電壓的抑制力。
圖1 設(shè)計(jì)流程圖
1.2.1 DDS信號(hào)源
AD9833:頻率、相位可編程,低功耗(20Mw/3V)。輸出的頻率范圍一般是0.1~12.5MHz在這一個(gè)范圍內(nèi)可以使用軟件控制。還可以通過編程是輸出信號(hào)在正弦波,三角波以及方波中間切換,正常工作時(shí)電壓2.3V~5.5V之間,通信方式 SPI通信方式,SPI通信速率最高可達(dá)到40MHz。
1.2.2 數(shù)控放大器
AD8051通用運(yùn)算放大器芯片,使用反向比例放大功能。
1.2.3 信號(hào)源控制原理
ARM控制板通過SPI通信對(duì)DDS進(jìn)行頻率、幅度、波形的設(shè)置spi通信,片選低有效,16bit通信模式,下降沿采集數(shù)據(jù),ARM通信頻率,2.5MHz。分別對(duì)ad9833內(nèi)的寄存器進(jìn)行讀寫,控制波形、頻率以及相位等。
圖2 stm32F767核心板
1.2.4 模擬開關(guān)控制
ARM控制板通過IO口高低切換控制模擬開關(guān)的斷開切換,從而達(dá)到輸入信號(hào)500mV和10mV的切換以及輸入電阻,輸出電阻的切換。
1.2.5 ADC
ARM控制板通過IO口高低切換控制模擬開關(guān)的斷開切換,從而達(dá)到輸入信號(hào)500mV和10mV的切換以及輸入電阻,輸出電阻的切換。
主控芯片STM32F767IGT 采用Cortex M7內(nèi)核,外圍flash 1024KB,SARM 512KB。
輸入電壓2.3-5.5V,以及外圍電源濾波電容,外加一個(gè)CAP參考電壓,通信口接入SPI通訊線與控制板普通IO口相連,在輸出端口加入一個(gè)SPI協(xié)議的數(shù)字電位模塊,可用來實(shí)現(xiàn)在線調(diào)控輸出波形的功率。
數(shù)控放大器模塊實(shí)際就是一個(gè)電位器,可以通過SPI進(jìn)行時(shí)序通訊,并且通過控制命令,可以實(shí)現(xiàn)在線調(diào)節(jié)電壓的一個(gè)模塊。
檢波器,主要就是用來提取出波動(dòng)信號(hào)里面的一個(gè)有用的特殊的信號(hào)一種電路。檢波就是從一個(gè)不斷變化的信號(hào)之中提取出一個(gè)有用信號(hào)的過程,有包絡(luò)檢波和同向檢波兩種方式進(jìn)行檢波。
圖3 AD9833的外圍電路
AD8361是一個(gè)通過集成的模式來提供均方根(RMS)響應(yīng)功率的器件的檢波器,這個(gè)器件可以檢出2.5GHz的信號(hào)的均方根的值,主要用于于CDMA、QAM等其他復(fù)合調(diào)制的檢波。
(1)輸入輸出電阻測(cè)量原理
輸入阻抗的測(cè)量可以通過測(cè)量輸入端短接時(shí)被測(cè)網(wǎng)絡(luò)的輸出電壓有效值Uo,與輸入端串接一個(gè)電阻Rs時(shí)的輸出電壓有效值Uo’,通過公式Ri=Rs*Uo’/(Uo-Uo’)來計(jì)算出輸入電阻。同理,測(cè)量輸出電阻時(shí)可以通過輸出空接時(shí)的輸出電壓Uo和接入負(fù)載電阻時(shí)輸出電壓Uo’,再通過公式Ro=RL*(Uo-Uo’)/Uo’來計(jì)算輸出阻抗,求得的誤差經(jīng)過算法修正可使得測(cè)量值接近真實(shí)值。
圖4 AD8361真有效值檢測(cè)電路設(shè)計(jì)
(2)增益計(jì)算
單片機(jī)通過控制DDS輸出1Khz,10mv的交流電壓Ui到被測(cè)網(wǎng)絡(luò),后級(jí)檢測(cè)被測(cè)網(wǎng)絡(luò)輸出電壓Uo,利用放大倍數(shù)公式Au=Uo/Ui計(jì)算出放大倍數(shù),然后利用公式Gu=20lgAu計(jì)算出增益。
(3)增益與幅頻特性的計(jì)算
單片機(jī)通過控制DDS輸出不同頻率下的電壓Ui到被測(cè)網(wǎng)絡(luò),后級(jí)檢測(cè)被測(cè)網(wǎng)絡(luò)輸出電壓Uo,結(jié)合DDS輸出頻率從而畫出幅頻特性曲線。
(4)誤差分析計(jì)算
通過實(shí)測(cè)得到其真實(shí)輸入輸出電阻Rr,通過測(cè)量儀測(cè)得的輸入輸出阻抗為Rt,所以求得其相對(duì)誤差為(Rt-Rr)/Rr。
平臺(tái)keil 5,使用hal庫,使用C語言編寫代碼,采用C51譯碼器生成機(jī)器語言,裝入寄存器進(jìn)行執(zhí)行命令。
圖5 流程圖
首先將引腳配置為普通IO口使用
圖6 AD9833的程序流程圖
使用普通io模擬SPI通訊協(xié)議,NSS低電平有效,時(shí)鐘空閑時(shí)位低電平,通過查AD9833資料獲取寄存器的地址,通過SPI時(shí)序的調(diào)試,嘗試通信,通過讀寫測(cè)試,與其進(jìn)行數(shù)據(jù)的交互,進(jìn)行代碼的的封裝,固定。通過循環(huán)就可以實(shí)現(xiàn)掃頻輸出信號(hào),達(dá)到自動(dòng)測(cè)試的理想結(jié)果,經(jīng)過掃頻測(cè)試,測(cè)試通用型運(yùn)算放大器的基本特性,基本實(shí)現(xiàn)要求的功能。最后通過模擬時(shí)序?qū)D9833進(jìn)行通信。
*函數(shù)名:AD9833_Write
*功能說明:向SPI總線發(fā)送16個(gè)bit數(shù)據(jù)
圖7 數(shù)控放大器流程圖
與AD9833,通過模擬SPI進(jìn)行數(shù)據(jù)交互,由于其寄存器地址不同,所以掛載SPI總線。通過數(shù)據(jù)的傳輸使其有不同的阻值切換,改變其電阻值。達(dá)到與電位器相同的結(jié)果。
圖8 ADC電壓采集流程圖
ADC設(shè)置,通過hal庫函數(shù),配置ADC參數(shù),其中,包括采樣時(shí)間,采樣速率,和輪詢次數(shù),通過多次采集數(shù)據(jù),加入簡單的濾波,使數(shù)據(jù)相對(duì)穩(wěn)定。對(duì)ADC引腳進(jìn)行以下配置。
ADC1_Handler.Instance=ADC1;
ADC1_Handler.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV4; //4分頻,ADCCLK=PCLK2/4=108/4=27MHZ
ADC1_Handler.Init.Resolution=ADC_RESOLUTION_12B;//12位模式
ADC1_Handler.Init.DataAlign=ADC_DATAALIGN_RIGHT;//右對(duì)齊
ADC1_Handler.Init.ScanConvMode=DISABLE;//非掃描模式
ADC1_Handler.Init.EOCSelection=DISABLE;//關(guān)閉EOC中斷
ADC1_Handler.Init.ContinuousConvMode=DISABLE;//關(guān)閉連續(xù)轉(zhuǎn)換
ADC1_Handler.Init.NbrOfConversion=1;//1個(gè)轉(zhuǎn)換在規(guī)則序列中 也就是只轉(zhuǎn)換規(guī)則序列1
ADC1_Handler.Init.DiscontinuousConvMode=DISABLE;//禁止不連續(xù)采樣模式
ADC1_Handler.Init.NbrOfDiscConversion=0;//不連續(xù)采樣通道數(shù)為0
ADC1_Handler.Init.ExternalTrigConv=ADC_SOFTWARE_START; ADC1_Handler.Init ExternalTrigConv Edge=ADC_EXTERNALTRIGCONVEDGE_NONE;//使用軟件觸發(fā)
ADC1_Handler.Init.DMAContinuousRequests=DISABLE;//關(guān)閉DMA請(qǐng)求
HAL_ADC_Init(&ADC1_Handler); //初始化
DA輸出濾去整流輸出電壓中的紋波的電路有兩種方案可以選擇,一種是APF,一種是LC濾波器。
選用3.5寸串口屏,通過TTL與控制板的IO口相連,還可以通過USB轉(zhuǎn)TTL與串口屏相連接。
串口屏內(nèi)部有字庫提供,直接使用。字體的顯示常用的就兩種方法,一是在控件里面直接輸入要顯示的漢字內(nèi)容。二是通過控制板發(fā)送指令集,調(diào)用字庫里面的漢字進(jìn)行顯示。在界面設(shè)計(jì)的時(shí)候用到了第一種方法,第二種是在進(jìn)行自動(dòng)測(cè)試的時(shí)候,進(jìn)行漢字的顯示,測(cè)量出誤差通過串口返回給串口屏控件,進(jìn)行數(shù)據(jù)于漢字的顯示。
在串口屏上加上背景圖片,加入到串口屏之中再進(jìn)行選擇、調(diào)整模糊度設(shè)置。
在串口屏上加上曲線描點(diǎn)控件,設(shè)置描點(diǎn)的方式、方向、速度等等,其次選擇表格的類型、格數(shù),要設(shè)置背景、表格、畫線顏色,預(yù)先通過設(shè)計(jì)軟件設(shè)計(jì)好之后下載到屏幕,描點(diǎn)直接通過串口發(fā)送y軸的值,將這些值放在連續(xù)的循環(huán)函數(shù)里面就可以實(shí)現(xiàn)不斷地循環(huán)描點(diǎn)。
printf(“add 2,1,%dxffxffxff”,ch1);向串口屏發(fā)送指令,使其不斷的進(jìn)行描點(diǎn)畫線。
采用實(shí)測(cè)與理論數(shù)據(jù)結(jié)合的方式進(jìn)行測(cè)量與測(cè)試。以運(yùn)算放大器的特性參數(shù)測(cè)量為準(zhǔn),用示波器測(cè)量電壓幅度值,在和ADC采集的數(shù)據(jù)進(jìn)行對(duì)比,顯示基本平滑。使用頻譜儀測(cè)量dds的輸出功率,和adc采集的值進(jìn)行對(duì)比,發(fā)送給串口屏,進(jìn)行數(shù)據(jù)的接受和顯示,完成數(shù)據(jù)的描點(diǎn)的畫線。通過采集數(shù)據(jù)統(tǒng)計(jì)表明,本模塊輸入電阻,輸出電阻,增益等數(shù)據(jù)誤差不超過10%,得到了一下數(shù)據(jù)。
表1 實(shí)驗(yàn)數(shù)據(jù)
設(shè)計(jì)基于stm32放大器測(cè)試儀,對(duì)單片機(jī)程序編寫,完成SPI、串口的通信,完成ADC的使用,電路方面主要是檢波電路,以及濾波器的設(shè)計(jì)。完成系統(tǒng)架構(gòu)要求后,對(duì)方案的理論進(jìn)行模擬與仿真測(cè)試。
之后對(duì)整體的理論方案軟件部分的實(shí)現(xiàn)進(jìn)行程序編寫,首先控制板自身的整體框架的實(shí)現(xiàn),后面再加上ADC的功能的實(shí)現(xiàn),和引腳功能的映射,然后實(shí)現(xiàn)與DDS信號(hào)源的通信,還有數(shù)控衰減器的SPI通信。最后通過串口與串口屏進(jìn)行數(shù)據(jù)的交互,實(shí)現(xiàn)顯示功能、控制功能。再加上顯示動(dòng)態(tài)Adc值,與故障的檢測(cè)功能的判定。然后通過串口的的數(shù)據(jù)發(fā)送,在串口屏上進(jìn)行描點(diǎn)的操作。最終完成了整個(gè)軟件的編寫過程。