Android電池電量跳變
問(wèn)題情形:
1.電量跳變到50%
2.電池ID腳接地
3.溫度腳來(lái)判斷電池是否在位
推測(cè)原因:
判斷電池在位的方法:
qpnp-linear-charger.c enum bpd_type{ BPD_TYPE_BAT_ID="bpd_id", BPD_TYPE_BAT_THM="bpd_thm", BPD_TYPE_BAT_THE_BAT_ID="bpd_thm_id", }
先在設(shè)備樹(shù)查找bpd是否有值
of_property_read_string(chip->spmi->dev.of_node,"qcom,bpd-detection",&bpd)
找不到的話,用代碼的定義(通過(guò)溫度腳判斷)
chip->cfg_bpd_detection = BPD_TYPE_BAT_THM;
把參數(shù)配置到結(jié)構(gòu)體中。
計(jì)算電池容量:
get_prop_capacity(struct qpnp_lbd_chip *chip)
如果電池不在位并且或?yàn)榧匐姵?,返回默認(rèn)電量(50)
電池在位檢測(cè)函數(shù):(調(diào)用流程)
get_prop_batt_present(struct qpnp_lbc_chip *chip) ->qpnp_lbc_read(chip,chip->bat_if_base+BAT_IF_PRES_STATUS_REG【0x08】,®_val,1) ->__qpnp_lbc_read(spmi,base,val,count) ->spmi_ext_register_read(spmi->ctrl,spmi->sid,base,val,count) ->spmi_read_cmd(ctrl,SPMI_CMD_EXT_READL,sid,addr,len-1,buf) ->ctrl->read_cmd(ctrl,opcode,sid,addr,bc,buf)
溫度檢測(cè)函數(shù):
get_prop_batt_temp(struct qpnp_lbc_chip *chip)
如果是假電池并且電池不在位,返回默認(rèn)溫度
qpnp_vadc_read(chip vadc_dev,LR_MUX1_BATT_THEM,&results)
如果讀取失敗,返回默認(rèn)溫度
->if(channel==VBAT_SNS)
讀電壓
qpnp_vadc_conv_seq_request(vadc,ADC_SEQ_NONE,channel,result)
讀溫度
qpnp_vadc_conv_seq_request(vadc,ADC_SEQ_NONE,DIE_TEMP,&die_temp_result)
讀補(bǔ)償
qpnp_vbat_sns_comp(&result->physical,vadc,die_temp_result.physical)
最后返回
qpnp_vadc_con_seq_request(vadc,ADC_SEQ_NONE,channel,result)
此項(xiàng)目通過(guò)軟件計(jì)算電量,沒(méi)有專用的電量計(jì)芯片
計(jì)算電量的要素:溫度 電壓 電流
虛擬電量計(jì) qpnp-vm-bms.c
所以一旦溫度采集不準(zhǔn),必導(dǎo)致電量百分比計(jì)算錯(cuò)誤
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
- Android編程之電池電量信息更新的方法(基于BatteryService實(shí)現(xiàn))
- Android優(yōu)化之電量?jī)?yōu)化的實(shí)現(xiàn)
- Android4.4開(kāi)發(fā)之電池低電量告警提示原理與實(shí)現(xiàn)方法分析
- Android省電的秘密之JobScheduler
- Android實(shí)現(xiàn)顯示電量的控件代碼
- Android開(kāi)發(fā)教程之電源管理詳解
- Android編程實(shí)現(xiàn)檢測(cè)當(dāng)前電源狀態(tài)的方法
- android電源信息查看(電量、溫度、電壓)實(shí)例代碼
- 如何通過(guò)Battery Historian分析Android APP耗電情況
相關(guān)文章
Android布局技巧之創(chuàng)建可重用的UI組件
這篇文章主要為大家詳細(xì)介紹了Android布局技巧之創(chuàng)建可重用的UI組件,文中提到了include標(biāo)簽的使用方法,感興趣的小伙伴們可以參考一下2016-05-05Android ListView的item背景色設(shè)置和item點(diǎn)擊無(wú)響應(yīng)的解決方法
在Android開(kāi)發(fā)中,listview控件是非常常用的控件,在大多數(shù)情況下,大家都會(huì)改掉listview的item默認(rèn)的外觀。2013-11-11解決android studio android monitor打不開(kāi)的問(wèn)題
下面小編就為大家分享一篇解決android studio android monitor打不開(kāi)的問(wèn)題,具有很的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android App仿QQ制作Material Design風(fēng)格沉浸式狀態(tài)欄
這篇文章主要介紹了Android App仿QQ制作Material Design風(fēng)格沉浸式狀態(tài)欄的實(shí)例,同時(shí)也給出了4.4版本下實(shí)現(xiàn)效果與5.0的對(duì)比,需要的朋友可以參考下2016-04-04Android自定義Chronometer實(shí)現(xiàn)短信驗(yàn)證碼秒表倒計(jì)時(shí)功能
這篇文章主要介紹了Android自定義ChronometerView實(shí)現(xiàn)類似秒表倒計(jì)時(shí),短信驗(yàn)證碼倒計(jì)時(shí)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11android 字體顏色選擇器(ColorPicker)介紹
本文將詳細(xì)介紹android 字體顏色選擇器(ColorPicker)需要了解更多的朋友可以參考下2012-11-11