亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android電池電量跳變

 更新時(shí)間:2017年04月28日 14:05:45   作者:Hello$word  
本篇文章主要介紹了Android電池電量跳變的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧

問(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】,&reg_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í)也希望多多支持腳本之家!

相關(guān)文章

最新評(píng)論