好多年沒寫東西了,現在記一下這幾天調運放的心得,當做學習筆記。
畢設里有個電路部分是關于噪聲采集的,利用Mic傳感器采集環境噪聲,Mic也俗稱咪頭。此部分的電路原理,是通過用運放放大來自Mic的微弱正弦信號,從而使STM32的ADC進行正常采集,再用FFT傅立葉運算采樣,然后算出其各諧波的頻率,再在LCD上繪制其頻譜,并進行分析。
由Mic的PDF得知其輸出電壓峰峰值在1mv~15mv。在考慮需要放大多少倍的時候,要參考STM32自帶的ADC。STM32的ADC為12位,為了提高ADC采集的精度,最好放大到1V~2V。由公式得2000mv/1mv=200倍。
在網上搜了些原理圖進行參考,目前手頭有袖珍的示波器,但沒有信號發生器,前2年幫同學買元件買多了一塊AD9850,想結合STM32做個簡易的信號發生器,但無論我怎么調9850硬是沒有輸出,全部補焊過一遍,測通信波形,全部正常,懷疑已經壞了,放棄之。翻抽屜,發現前2年做了一塊爛尾的51的板,上面有個TLC5615,是個10位的DAC,拆下來并成功驅動它輸出了正弦波。由于手頭的示波器比較簡易,顯示被測信號幅值和頻率并不準,所以用萬用表測正弦波得其有限值為0.7V,乘以1.4后得其峰峰值,0.98V約1V輸出。應該已經符合實驗需要了。
由于手頭上運放只有LM358,就隨便找了塊萬板焊了個單運放放大器,電阻全用精密可調電位器替代,以方便調試。接上來自TLC5615的正弦信號,再接上示波器,無失真放大倍數只有2倍,調了很久實現放大200倍的初衷,即再放大就削頂了,此時用萬用表測輸出電壓為1.3V,即峰峰值為1.3*1.4=1.82V。

才放大2倍就已經要削頂了,調了整整一天沒有頭緒,起初是懷疑輸入電容把低頻信號都濾除的原因,更換了47uF的電容后,只是上電時信號緩沖時間長了些,并不會影響放大倍數,恨自己模電沒學好。通過和同學討論,直到調到半夜明白其原因。
原來是輸入信號的幅值過大造成的放大倍數很低。
(輸入信號的幅值x放大倍數)+基準電壓<輸出
如圖,為這次實驗采用的原理圖,采用反向放大。
由于LM358運放非軌對軌運放,所以輸出電壓不可能和電源電壓一樣或相近,一般都是VCC-1~2v左右,實驗中運放用的是單電源+5V 供電,即輸出不可能超過4V。由于Mic輸出的為正負周期的音頻信號,如運放不對信號進行處理,使去在0V以上進行放大的話,其放大后的信號會被削掉負半周期。而解決辦法就是抬升正弦信號的中點,使其中點電壓在電源范圍內。由于運放電源使用的是-+5V,故在運放的正向輸入端利用電阻偏置,得到VCC/2的偏置電壓,也就是2.5V的中點電壓。
結合上面的公式,也就是輸入信號放大后為1.82V峰峰值,加上2.5V中點電壓后為 4.32V,即超過了運放的最大輸出電壓,再對信號進行放大后必然然削頂!而解決辦法是增加電源電壓。
顯然我的要求是放大10mv以內的信號,故信號可以放大至150倍即可接近運放最大輸出電壓。
第二天立馬調了放大倍數為100倍,去掉TLC5615的 正弦波,直接接上Mic,上電,喊話,熟悉的波形出現了。
但由于LM358屬于普通運放,存在失調電壓,即把輸出短接到GND后,也會有幾mv的電壓,而且其帶寬增益積為1MHz,人聲為20Hz~20kHz,所以在放大20Khz信號200倍后,其需要2Mhz的帶寬,顯然LM358不夠,而且我只需要一級放大即可滿足要求。故解決辦法是更換運放型號。
常用的儀用運放OP07性能優越,但帶寬增益積只有0.6Mhz,也不滿足要求,所以目標瞄準了它的兄弟型號OPA277 。
OPA277也是單運放芯片,SO8封裝不是很占我的板子上的空間, 帶寬增益積有8Mhz,而且可以低電壓供電,正負5V電壓可以從板子上的RS3232的電荷泵取。遂用Multisim10進行了仿真。
如圖,放大倍數用預設的200倍,即10mv放大至輸出2V,則由公式(R1/R2)+1=200,取R1=200K,R2=1K。為了輸入端與輸出端電阻值的匹配,R3取1K。為了使輸出電壓不超過4V,所以運放正向輸入端的電壓值取2V以下,實測得R4/(R4*R5)*5V=1.84V,即R4=17.5K,R5=30K。OP系列只能用雙電源供電以得到最高性能,如把運放同向輸入端的+5V改為-5V可以把信號拉低于0V,中點電壓為-2.5V。

此時輸入信號為10mv,1kHz的正弦波,輸出電壓有效值為1.4V :
此時輸出的波形如圖,上波形為放大后的波形。由示波器看到,輸入信號為9.455mv,輸出為反向的1.944V,即1944mv/9.455mv=205倍。已滿足需求。
|