羅駿
(中國電子科技集團公司第三十四研究所,廣西桂林,541004)
運算放大器參數測試及其故障檢測對于電子領域特別是功放領域,有著極其重要的作用,能夠高效的排查故障,保障運算放大器的使用便捷、有效。
針對上述問題設計實現了一個運算放大器特性測試儀,以STM32單片機為主控芯片,通過DDS產生被測電路的驅動信號,同時構建輸入測量和輸出測量網絡實現被測電路的基本參數的測量以及故障的判別。在故障判別電路中,通過輸入端的小信號結合大信號驅動以及輸出端加入負載電阻來判斷電阻開路和短路故障;通過測量頻帶外某兩點的電壓增益實現電容開路以及容值改變的迅速判別,在進度和速度上都有較大提高。
常見的單運放還有場效應管為輸入級都是通用型運算放大器,僅僅只有級數不同而已。
下面列出這些通用型放大器的基本參數:
(1)共模輸入電阻:這一參數是運算放大器在線性區工作時,輸入端的共模電壓區間和這個區間內偏置電流的變化量的比值。
(2)直流共模抑制:這一參數主要用于評判運算放大器對兩個輸入端口的相同直流的抑制能力。
(3)交流共模抑制:主要是用來計算運算放大器對兩個輸入端口的相同交流電壓的抑制力。

圖1 設計流程圖
1.2.1 DDS信號源
AD9833:頻率、相位可編程,低功耗(20Mw/3V)。輸出的頻率范圍一般是0.1~12.5MHz在這一個范圍內可以使用軟件控制。還可以通過編程是輸出信號在正弦波,三角波以及方波中間切換,正常工作時電壓2.3V~5.5V之間,通信方式 SPI通信方式,SPI通信速率最高可達到40MHz。
1.2.2 數控放大器
AD8051通用運算放大器芯片,使用反向比例放大功能。
1.2.3 信號源控制原理
ARM控制板通過SPI通信對DDS進行頻率、幅度、波形的設置spi通信,片選低有效,16bit通信模式,下降沿采集數據,ARM通信頻率,2.5MHz。分別對ad9833內的寄存器進行讀寫,控制波形、頻率以及相位等。

圖2 stm32F767核心板
1.2.4 模擬開關控制
ARM控制板通過IO口高低切換控制模擬開關的斷開切換,從而達到輸入信號500mV和10mV的切換以及輸入電阻,輸出電阻的切換。
1.2.5 ADC
ARM控制板通過IO口高低切換控制模擬開關的斷開切換,從而達到輸入信號500mV和10mV的切換以及輸入電阻,輸出電阻的切換。
主控芯片STM32F767IGT 采用Cortex M7內核,外圍flash 1024KB,SARM 512KB。
輸入電壓2.3-5.5V,以及外圍電源濾波電容,外加一個CAP參考電壓,通信口接入SPI通訊線與控制板普通IO口相連,在輸出端口加入一個SPI協議的數字電位模塊,可用來實現在線調控輸出波形的功率。
數控放大器模塊實際就是一個電位器,可以通過SPI進行時序通訊,并且通過控制命令,可以實現在線調節電壓的一個模塊。
檢波器,主要就是用來提取出波動信號里面的一個有用的特殊的信號一種電路。檢波就是從一個不斷變化的信號之中提取出一個有用信號的過程,有包絡檢波和同向檢波兩種方式進行檢波。

圖3 AD9833的外圍電路
AD8361是一個通過集成的模式來提供均方根(RMS)響應功率的器件的檢波器,這個器件可以檢出2.5GHz的信號的均方根的值,主要用于于CDMA、QAM等其他復合調制的檢波。
(1)輸入輸出電阻測量原理
輸入阻抗的測量可以通過測量輸入端短接時被測網絡的輸出電壓有效值Uo,與輸入端串接一個電阻Rs時的輸出電壓有效值Uo’,通過公式Ri=Rs*Uo’/(Uo-Uo’)來計算出輸入電阻。同理,測量輸出電阻時可以通過輸出空接時的輸出電壓Uo和接入負載電阻時輸出電壓Uo’,再通過公式Ro=RL*(Uo-Uo’)/Uo’來計算輸出阻抗,求得的誤差經過算法修正可使得測量值接近真實值。

圖4 AD8361真有效值檢測電路設計
(2)增益計算
單片機通過控制DDS輸出1Khz,10mv的交流電壓Ui到被測網絡,后級檢測被測網絡輸出電壓Uo,利用放大倍數公式Au=Uo/Ui計算出放大倍數,然后利用公式Gu=20lgAu計算出增益。
(3)增益與幅頻特性的計算
單片機通過控制DDS輸出不同頻率下的電壓Ui到被測網絡,后級檢測被測網絡輸出電壓Uo,結合DDS輸出頻率從而畫出幅頻特性曲線。
(4)誤差分析計算
通過實測得到其真實輸入輸出電阻Rr,通過測量儀測得的輸入輸出阻抗為Rt,所以求得其相對誤差為(Rt-Rr)/Rr。
平臺keil 5,使用hal庫,使用C語言編寫代碼,采用C51譯碼器生成機器語言,裝入寄存器進行執行命令。

圖5 流程圖
首先將引腳配置為普通IO口使用

圖6 AD9833的程序流程圖

使用普通io模擬SPI通訊協議,NSS低電平有效,時鐘空閑時位低電平,通過查AD9833資料獲取寄存器的地址,通過SPI時序的調試,嘗試通信,通過讀寫測試,與其進行數據的交互,進行代碼的的封裝,固定。通過循環就可以實現掃頻輸出信號,達到自動測試的理想結果,經過掃頻測試,測試通用型運算放大器的基本特性,基本實現要求的功能。最后通過模擬時序對AD9833進行通信。
*函數名:AD9833_Write
*功能說明:向SPI總線發送16個bit數據



圖7 數控放大器流程圖
與AD9833,通過模擬SPI進行數據交互,由于其寄存器地址不同,所以掛載SPI總線。通過數據的傳輸使其有不同的阻值切換,改變其電阻值。達到與電位器相同的結果。

圖8 ADC電壓采集流程圖
ADC設置,通過hal庫函數,配置ADC參數,其中,包括采樣時間,采樣速率,和輪詢次數,通過多次采集數據,加入簡單的濾波,使數據相對穩定。對ADC引腳進行以下配置。
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;//右對齊
ADC1_Handler.Init.ScanConvMode=DISABLE;//非掃描模式
ADC1_Handler.Init.EOCSelection=DISABLE;//關閉EOC中斷
ADC1_Handler.Init.ContinuousConvMode=DISABLE;//關閉連續轉換
ADC1_Handler.Init.NbrOfConversion=1;//1個轉換在規則序列中 也就是只轉換規則序列1
ADC1_Handler.Init.DiscontinuousConvMode=DISABLE;//禁止不連續采樣模式
ADC1_Handler.Init.NbrOfDiscConversion=0;//不連續采樣通道數為0
ADC1_Handler.Init.ExternalTrigConv=ADC_SOFTWARE_START; ADC1_Handler.Init ExternalTrigConv Edge=ADC_EXTERNALTRIGCONVEDGE_NONE;//使用軟件觸發
ADC1_Handler.Init.DMAContinuousRequests=DISABLE;//關閉DMA請求
HAL_ADC_Init(&ADC1_Handler); //初始化
DA輸出濾去整流輸出電壓中的紋波的電路有兩種方案可以選擇,一種是APF,一種是LC濾波器。
選用3.5寸串口屏,通過TTL與控制板的IO口相連,還可以通過USB轉TTL與串口屏相連接。
串口屏內部有字庫提供,直接使用。字體的顯示常用的就兩種方法,一是在控件里面直接輸入要顯示的漢字內容。二是通過控制板發送指令集,調用字庫里面的漢字進行顯示。在界面設計的時候用到了第一種方法,第二種是在進行自動測試的時候,進行漢字的顯示,測量出誤差通過串口返回給串口屏控件,進行數據于漢字的顯示。
在串口屏上加上背景圖片,加入到串口屏之中再進行選擇、調整模糊度設置。
在串口屏上加上曲線描點控件,設置描點的方式、方向、速度等等,其次選擇表格的類型、格數,要設置背景、表格、畫線顏色,預先通過設計軟件設計好之后下載到屏幕,描點直接通過串口發送y軸的值,將這些值放在連續的循環函數里面就可以實現不斷地循環描點。
printf(“add 2,1,%dxffxffxff”,ch1);向串口屏發送指令,使其不斷的進行描點畫線。
采用實測與理論數據結合的方式進行測量與測試。以運算放大器的特性參數測量為準,用示波器測量電壓幅度值,在和ADC采集的數據進行對比,顯示基本平滑。使用頻譜儀測量dds的輸出功率,和adc采集的值進行對比,發送給串口屏,進行數據的接受和顯示,完成數據的描點的畫線。通過采集數據統計表明,本模塊輸入電阻,輸出電阻,增益等數據誤差不超過10%,得到了一下數據。

表1 實驗數據
設計基于stm32放大器測試儀,對單片機程序編寫,完成SPI、串口的通信,完成ADC的使用,電路方面主要是檢波電路,以及濾波器的設計。完成系統架構要求后,對方案的理論進行模擬與仿真測試。
之后對整體的理論方案軟件部分的實現進行程序編寫,首先控制板自身的整體框架的實現,后面再加上ADC的功能的實現,和引腳功能的映射,然后實現與DDS信號源的通信,還有數控衰減器的SPI通信。最后通過串口與串口屏進行數據的交互,實現顯示功能、控制功能。再加上顯示動態Adc值,與故障的檢測功能的判定。然后通過串口的的數據發送,在串口屏上進行描點的操作。最終完成了整個軟件的編寫過程。