電壓電流采樣測量是常常見到的mcu應(yīng)用,電壓的測量相對容易。電流測量則要麻煩一些。尤其是考慮到微小電流(ua級)和較寬的測量范圍,往往需要對電流采樣電阻上的電壓差進行高倍率的放大,或者需要改變?nèi)与娮枰垣@得不同的測量范圍。電路的復(fù)雜性和成本就會較高。模擬前端則需要專門設(shè)計的電流放大器,通常就是儀表放大器,適用的共模電壓范圍也不是很寬。
如果是低端要求不高的測量那就可以使用通用運放,一級或者兩級放大,在低端采樣不需要考慮共模電壓,實現(xiàn)起來比較簡單。這樣的低成本電壓電流測量,用國民技術(shù)的N32G435系列微控制器就很合適了。國民技術(shù)的N32G435有著較高的集成度,帶有高性能的ADC和集成OPA,很適合電流放大測量,價格又不高。可以節(jié)省運放成本和減少PCB占用。能夠?qū)崿F(xiàn)低成本,電路簡潔的電壓電流測量。
下面讓我們來探索一下如何實現(xiàn):
設(shè)計的目標是低成本,簡潔實現(xiàn)~~
那么電壓測量使用電阻分壓到ADC的輸入范圍就行了。電流測量其實也就是測量電流采樣電阻上的微小電壓差,所以需要有放大。G435芯片里面有2個OPA,可以配置成PGA,程序就可以控制放大倍數(shù)了,這就非常靈活方便了。
讓我們從官方例程開始,N32G435庫里面的例程,有個OpaAdByTim,看起來非常合適。
keil里面安裝好支持包,打開此例程,編譯通過,下載運行,一切順利……嗯……應(yīng)該是吧,結(jié)果在哪兒看呢?串口也沒有回傳~~還是得去讀讀代碼啦。
主程序里前面就是各部分配置函數(shù),主循環(huán)只有更改PGA增益,其他就沒了。
所以應(yīng)該在中斷里~ADC中斷函數(shù)里有這樣的:
ADC_ConvertedValue[0][0] = ADC_GetInjectedConversionDat(ADC, ADC_INJ_CH_1) & MASK_AD_BITS;
ADC_ConvertedValue[0][1] = ADC_GetInjectedConversionDat(ADC, ADC_INJ_CH_2) & MASK_AD_BITS;
別處就沒有對ADC_ConvertedValue的處理了。所以就只能進入調(diào)試狀態(tài),斷點到此,看看數(shù)據(jù)啦~沒錯,官方例程就是這樣簡潔!
這樣不夠直觀,要看數(shù)據(jù)變化也繁瑣了點,所以還是需要稍微更改一下。
為了簡單起見,加個串口傳送的部分,就可以用各種串口軟件查看了。
可以參考另外一個例程,USART下面的Printf例程。把里面的頭文件包上,配置代碼也復(fù)制過來,RCC配置,GPIO配置都復(fù)制過來,別忘記fputc函數(shù),這是重定義到串口輸出的關(guān)鍵。一番復(fù)制粘貼然后編譯……哦……出錯了,什么什么USARTx未定義!好吧,查找了一番發(fā)現(xiàn)這些是在串口例程那邊的main.h里,復(fù)制過來到這邊(OpaAdByTim)的main.h里.編譯成功!
接著就可以用printf回傳到PC了。至于涉及到變量引用、轉(zhuǎn)換的需要又多搞了幾個全局變量來,然后在主程序循環(huán)中又對ADC結(jié)果做了多點平均,這些大家都會的操作就不必多說了。
回傳時順便做了個數(shù)值轉(zhuǎn)換,測得開發(fā)板VCC電壓是3.25V,所以 數(shù)據(jù)*3250/4096 就可以得到測量數(shù)據(jù)的電壓值(mv)。
代碼中可以看到OPA1的正輸入端連在PA4上,OPA2的正輸入端連在PA7上。
默認的OPA模式是跟隨模式,沒有放大。改成PGA模式,下面的增益設(shè)置才能起作用:
OPAMP_Initial.Mod = OPAMP_CS_PGA_EN; //OPAMP_CS_FOLLOW;//OPAMP_CS_PGA_EN;
OPAMP_Initial.Gain = OPAMP_CS_PGA_GAIN_32;
PC端使用了一個叫serial port plotter的軟件,不但可以看到數(shù)據(jù),還能繪制圖形。
只是上傳的數(shù)據(jù)要符合其格式要求,也就是這樣的:
printf("$%d %d;",datasum_i,datasum_j);
前面$,中間空格,結(jié)尾;。
數(shù)據(jù)一旦可視化就直觀多了。nice!
這次就用電阻分壓出一個小電壓信號,用PGA放大來測量(以此實現(xiàn)電流測量):
以上是鋰電池輸出經(jīng)過100k歐可調(diào)電阻/100歐 電阻分壓出的低電壓,PGA倍數(shù)32(最大),測得210/32=6.56mv,萬用表測量6.8mv。
可以看到穩(wěn)定性稍差,這是因為用了20厘米以上的杜邦線連接,自然會有些干擾了。
經(jīng)過256數(shù)據(jù)平滑處理就會穩(wěn)定多了。
再把PGA設(shè)為8倍,無平滑處理。測得52/8=6.5mv.說明PGA倍數(shù)準確。
接下來設(shè)定為2倍,調(diào)整一下電阻比例,測得380/2=190mv.萬用表測量190mv。
以上是OPA1的測量結(jié)果,那么OPA2如何呢?
32倍時測得72/32=2.25mv,萬用表測量1.9mv。
OPA1測量結(jié)果偏小,OPA2偏大。那么輸入接地,可測得OPA1為0,OPA2為16/32=0.5mv。
這也就是offset了。OPA1的offset為負值,ADC采樣不到。
如果要搭建其他方式的運放電路,可以選擇通用模式,運放端子引出到引腳,內(nèi)部無連接(除了ADC)。或者只是緩沖一下選擇跟隨器模式就好。不過PGA模式最簡潔低成本方便可調(diào),要求不太高的話真是再合適不過了。看手冊里的參數(shù)指標比起358還是要好一些的。
另外,手冊里輸出范圍的說明,輸入是軌到軌,輸出并不是,而是縮減0.15V。
但實際測量不會這樣,還是可以實現(xiàn)軌到軌輸出,所以是哪樣呢?!
總之,經(jīng)過以上測試,驗證了N32G435內(nèi)部OPA和ADC的性能,官方的庫和例程也工作穩(wěn)定,非常不錯。完全適合做低成本的電壓電流測量應(yīng)用。非常值得推薦!
審核編輯 黃昊宇
-
電流
+關(guān)注
關(guān)注
40文章
6887瀏覽量
132318 -
電壓
+關(guān)注
關(guān)注
45文章
5612瀏覽量
115917 -
采樣測量
+關(guān)注
關(guān)注
0文章
2瀏覽量
6116
發(fā)布評論請先 登錄
相關(guān)推薦
評論