先贊↓后看,養成習慣!
一、選擇放大器方案
1. 背景
事情是這樣的,由于有時候需要同時測兩個地方電流,而我只有一個萬用表,因此我想做一個精度1mA的電流表,采樣范圍就1mA~3A。
2. 尋找方案
由于要測的電流范圍比較廣,因此直接用一個采樣電阻的方案不太現實,計算如下,如果最大電流3A對應ADC最大采樣值3V的話,那么1mA對應的ADC值應該是1mV,一般MCU的精度是12位,3V /(2^12)= 0.7mV,很接近1mA電流對應的電壓1mV,精度上不夠。 因此在網上找方案,找到了B站一個叫《優雅的電流表》的開源項目,能做到1uA的采樣精度,以下介紹一下這個方案為框架改出來的電路。
3. 方案框架
方案的關鍵在于在不同電流值時用MOS管切換不同的采樣電阻,QP1~QP3是功率NMOS,走電流,QS1~QS3是采樣NMOS,將不同采樣電阻的Vsense采樣電壓切換到同一個通道的ADC引腳。
4. 放大電路設計
原放大電路方案是采用同相放大,我這里加了個電阻改為差分放大,由于負端接的是GND,其實是同一個作用,去掉R24就是同相放大電路了。 至于放大倍數這個和用的采樣電阻有關,電阻越大則放大電路倍數可以越小。放大電路也不適合太大,太大會將運放的輸入失調電壓也放大。
5. 采樣電阻設計
采樣電阻分三個檔位,分別用10mΩ、100mΩ、1Ω,理想的電流采集范圍分別為100mA~3A,10mA~300mA,1mA~30mA,各放大100倍后電壓范圍均為:100mV~3V,ADC采樣精度前面算過是0.7mV,精度足夠了1mA了。
6. 存在的問題
① 功率NMOS需要用低導通壓降MOS,以免采樣時影響原電路電壓。
② 運放要用低輸入失調電壓的運放,目前采用的是MAX4239,價格很貴,輸入失調電壓標稱最大只有2uV,但是實際調出來輸入失調電壓都有幾個mV,不知道是不是因為輸入共模電壓接近0V的緣故?
③ 由于是將I_OUT作為采樣電路的GND,因此無法再采集電流線上的電壓
④ 只能采集一個方向的電流,反向后無法采集。
⑤ 為了采集穩定,還需要加一級有源低通濾波。
⑥ 如果檔位切換的慢,3A電流加載1Ω的采樣電阻上時其功耗為9W,小型的電阻功率不夠,因此要么選用大電阻,要么只能再加一級比較器,輸出過壓時觸發中斷及時切換檔位。
二、更優的方案
1. 專業的電流放大器
TI的INA226是專業的電流放大器,擁有16位精度,最大差模輸入電壓±81.92mV,因此其輸入分辨率是81.92mV*2 / (2^16) = 2.5uV。電流值直接通過I2C讀取,無需進行MCU的ADC進行處理,軟件上更好處理。
2. 采樣電阻選擇
選用20mΩ的采樣電阻,則在±1mA~±3A范圍內對應的差模輸入電壓為:±20uV~±60mV,分辨率以及差模輸入范圍都足夠。
3. 本方案的好處
① INA226還支持采集電流BUS上的電壓,采集范圍0~36V,采集精度1.25mV、13位。
② 另外能采集正負電流,不受電流方向影響。
③ 本方案的GND直接與待采電路的GND相連,不存在電壓參考不一致的問題。
④ 輸入電壓僅需2.7V~5.5V就可采集36V共模電壓下的電流。
4. 存在的問題
① INA226最大輸入失調電壓可能達到正負10uV,可能對mA級的采樣造成誤差。如果要更高的精度,采用INA228,價格超高,大約20元/PCS。當然不想用INA228也可以對采樣結果進行校準,因為輸入失調電壓針對一個已有的運放來說是固定的。
② INA226共模輸入電壓范圍最小只有0V,因此如果有負電流可能造成INA226損壞。
5. 注意事項
ADC轉換時間與采樣噪聲有關,轉換時間越長噪聲越小,轉換時間可以通過I2C配置
三、總結
第一種方案實際打樣試過,采集精度倒是可以滿足要求,就是電路、軟件復雜問題多,第二種電路簡單試過了,采樣時間1ms時,電流精度基本在±0.2mA以下,很準。
歡迎評論區討論,別忘了點贊!!!