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