手冊如下,INA219 是TI推出的具有I2C 接口的零漂移雙向電流/功率監(jiān)測計,
INA219內部結構圖如上,芯片同是支持差分分壓電流檢測跟總線電壓檢測,
芯片外部引腳A0、A1引腳,支持支持16路地址設置,同時可掛載16路設備,
INA219操作其實很簡單,內部共有六個寄存器,其中需要用戶設置的只有兩個
Configuration Register 配置寄存器(地址= 00h)[reset = 399Fh
Shunt Voltage Register 分流電壓寄存器(地址= 01h)
Bus Voltage Register 總線電壓寄存器(地址= 02h)
Power Register 功率寄存器(地址= 03h)[reset = 00h]
Current Register 當前寄存器(地址= 04h)[reset = 00h]
Calibration Register 校準寄存器(地址= 05h)[reset = 00h]
8.6.2.1 Configuration Register,配置寄存器(地址= 00h)[reset = 399Fh]
RST:重置位,將此位設置為“1”會產生與上電復位相同的系統(tǒng)復位。將所有寄存器重置為默認值; 這一點自我清除。
BRNG:總線電壓范圍,0 = 16V FSR,1 = 32V FSR(默認值)
PG:PGA(僅限分流電壓),設置PGA增益和范圍。請注意,PGA默認為÷8(320mV范圍)。表4顯示了各種產品增益設置的增益和范圍。
BADC:BADC總線ADC分辨率/平均,這些位調整總線ADC分辨率(9位,10位,11位或12位)或設置總線電壓寄存器的平均結果時使用的采樣數(02H)。
SADC:SADC分流ADC分辨率/平均,這些位調整分流ADC分辨率(9位,10位,11位或12位)或設置分流電壓寄存器的平均結果時使用的采樣數(01H)。
BADC(總線)和SADC(分流)ADC分辨率/平均和轉換時間設置如表5所示。
MODE:操作模式,選擇連續(xù),觸發(fā)或斷電操作模式。這些位默認為連續(xù)分流和總線
8.6.3.1 Shunt Voltage Register,分流電壓寄存器(地址= 01h)
分流電壓寄存器存儲當前的分流電壓讀數VSHUNT。分流電壓寄存器位根據配置寄存器(00h)中選擇的PGA設置進行移位。當存在多個符號位時,它們將是相同的值。
負數以2的補碼格式表示,通過補充絕對值二進制數并加1來得到負數的2的補碼。
通過設置MSB = 1來擴展符號,表示負數。將符號擴展到任何其他符號位以形成16位字。
示例:對于值VSHUNT = -320 mV:
1.取絕對值(包括精度到0.01 mV)→320.00
2.將此數字翻譯為整數十進制數→32000
3.將其轉換為二進制→111 1101 0000 0000
4.補充二進制結果:000 0010 1111 1111
5.在Complement中添加1以創(chuàng)建Two‘s Complement格式化結果→000 0011 0000 0000
6.擴展符號并創(chuàng)建16位字:1000 0011 0000 0000 = 8300h(記住根據PGA設置,根據需要將符號擴展到所有符號位。)
8.6.3.2 Bus Voltage Register,總線電壓寄存器(地址= 02h)
總線電壓寄存器存儲最新的總線電壓讀數VBUS。
滿量程范圍= 32 V(十進制= 8000,十六進制= 1F40),LSB = 4 mV。
滿量程范圍= 16 V(十進制= 4000,十六進制= 0FA0),LSB = 4 mV。
CNVR:轉換就緒,雖然可以隨時讀取上次轉換的數據,但INA219轉換就緒位(CNVR)指示數據輸出寄存器中何時有轉換數據。
所有轉換,平均和乘法完成后,CNVR位置1。 CNVR將在以下條件下清除:
1.)將新模式寫入配置寄存器的工作模式位(掉電或禁用除外)
2.)讀取功率寄存器
OVF:數學溢出標志,當功率或電流計算超出范圍時,數學溢出標志(OVF)置位。 它表明當前和電力數據可能毫無意義。
8.6.3.3 Power Register,功率寄存器(地址= 03h)[reset = 00h]
滿量程范圍和LSB由校準寄存器設置。 請參見編程校準寄存器。
功率寄存器通過將電流值乘以總線值來記錄功率,單位為瓦特
8.6.3.4 Current Register,當前寄存器(地址= 04h)[reset = 00h]
滿量程范圍和LSB取決于校準寄存器中輸入的值。
有關詳細信息,請參閱編程校準寄存器。 負值以2的補碼格式存儲。
通過將分流電壓寄存器中的值乘以校準寄存器中的值,根據公式4計算電流寄存器的值:
8.6.4.1 Calibration Register,校準寄存器(地址= 05h)[reset = 00h]
電流和功率校準由校準寄存器的FS15至FS1位設置。 請注意,在計算中不使用位FS0。
該寄存器設置與分流器上的滿量程壓降相對應的電流。 滿量程范圍和電流和功率測量的LSB取決于在該寄存器中輸入的值。
請參見編程校準寄存器。 該寄存器適用于整個系統(tǒng)校準。 請注意,0 POR值都是默認值。
FS0是一個空位,始終為0.無法向FS0寫入1。 CALIBRATION是存儲在FS15:FS1中的值。
接下來我們重點說一下各個寄存器等配置問題,INA219共有六個寄存器,其中只有Configuration跟Calibration需要用戶自己配置具體的寄存器為上面已經做了詳解。
Configuration配置寄存器
配置寄存器主要配置芯片測量的量程、精度及工作模式,復位值0x399F
PG位用于配置差分模式下,芯片測量差分分壓電壓的量程,說白了就是把IN+與IN-兩引腳間的電壓再等分多少分之一
BADC與SADC位同樣適用上面的參數,用于設置ADC的采樣精度及采樣周期,
其中綠框內表示設置不同的精度只采樣一次,采樣周期不同,紅框表示使用12bit精度,采集多少次取平均值,采樣周期不同
MODE位用于設置芯片的工作模式,
一般用最后一項,默認差分電壓與總線電壓都連續(xù)采樣
Calibration校準寄存器
校準寄存器的設置,要針對芯片外部使用的采樣電阻的阻值,通知設置校準寄存器,方便芯片直接計算測量值,用戶就可以直接從其余四個寄存器中直接讀出測量的數據了
關于校準寄存器的計算,手冊中給出了公式,如下所示
此處需要結合配置寄存器中我們設置的BRNG位,即總線電壓范圍是16V還是32V,下面我們以32V為例,說一下計算過程,參考如下程序
使用的電路如下
第一步
我們先根據測量需要,設定我們的電壓測量范圍0-32V,以及使用的采樣電阻阻值0.05歐姆
并假定IN+與IN-引腳間的最大差分電壓為±320mV
第二步
根據N+與IN-引腳間的最大差分電壓±320mV,計算出電路中可測量的的最大電流為6.4A計算出
第三步
根據外部電路中可能流過的最大電流,配合Shunt Voltage Register查分分壓寄存器的設置,
計算出使用15bit精度時的測量分度196uA,與使用12bit精度時的測量分度1562uA,
這兩個數值即我們可以測量的線路中電流是可以達到的最小分度值范圍
第四步
從第三步計算的范圍中,選取一個比較方便計算,且符合測量要求的數值,即Current_LSB值
一般取比15bit精度時的分度196uA稍大一點的整數,必須我們此處使用的0.0002A(200uA);
此數值也可使用手冊中給出的公式2計算得到
第五步
根據手冊中給的計算公式1,我們使用即Current_LSB值及我們的外部采樣電阻值,
可以計算出Calibration校準寄存器需要設置的數值,即程序中的 ina219_calValue = 4096;
第六步
由我們計算得到的Current_LSB,使用手冊中給出的公式5,
我們可以計算的到Power功率寄存器的最小分度值為4mW
此數值與工具寄存器的值相乘及時我們電路中的功率了
第七步
此處主要用于說明幾個主要測量值的范圍
第八步
根據我們程序中設計的最大電流值及最大電壓,計算出可以測量的最大功率值
并給出了此配置下的最小電流分度,ina219_current_LSB_uA = 200; // Current LSB = 200uA per bit
及最小功率分度,ina219_power_LSB_mW = 4; // Power LSB = 4mW per bit = 20 * Current LSB
第九步
根據我們上面的計算,設置我們的Configuration配置寄存器及Calibration校準寄存器
-
-
芯片
+關注
關注
459文章
52091瀏覽量
435387 -
寄存器
+關注
關注
31文章
5412瀏覽量
123160 -
I2C
+關注
關注
28文章
1528瀏覽量
126873
原文標題:使用INA219電量監(jiān)測芯片的一點經驗
文章出處:【微信號:Power_Fan_,微信公眾號:電源Fan】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
利用INA219作為電池輸入的電壓電流采集,會出現燒毀的情況怎么解決?
求助,關于INA219的配置和數據獲取的問題求解
INA219電流過大怎么處理?
有關INA219芯片的使用問題
INA219,pdf(Zerø-Drift,
INA219 26V、雙向、零漂移、低側/高側、I2C 輸出電流/功率監(jiān)控器

評論