日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

充电问题解决总结

發(fā)布時(shí)間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 充电问题解决总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、充電電流有規(guī)律的跳變,30s跳變一次:

解決:
<1> 功耗方面,modem會每隔30s進(jìn)行一次喚醒,即使飛行模式也會存在,還有其他的wake喚醒源,可以添加log debug:
— a/kernel/irq/pm.c
+++ b/kernel/irq/pm.c
@@ -21,6 +21,9 @@ bool irq_pm_check_wakeup(struct irq_desc *desc)
desc->istate |= IRQS_SUSPENDED | IRQS_PENDING;
desc->depth++;
irq_disable(desc);

  • pr_info(“wakeuped by irq %d\n”, desc->irq_data.irq);
  • if(desc->action && desc->action->name)
  • pr_info(“wakeuped by dev %s\n”,desc->action->name);
    pm_system_irq_wakeup(irq_desc_get_irq(desc));
    return true;
    }
    <2> 充電方面,三方IC bq會有32s進(jìn)行一次喂狗,不喂vbus會掉了再起來
    psy沒有調(diào)用起來IC的狗函數(shù),我們在它的dumpreg函數(shù)中添加一個(gè)喂狗:

2、充電在85%左右一直再充不上去,電流停充:

解決:IC的充電狀態(tài)沒有給到gauge,full狀態(tài)沒上報(bào)
POWER_SUPPLY_PROP_STATUS,
case POWER_SUPPLY_PROP_STATUS:
pr_err(“yonghai charger done\n”);
val->intval = bq24157_get_charging_status();
break;

3、充電到1%放電時(shí)間太長:

解決:電池連接器阻抗值不對

4、充電曲線不平穩(wěn):

解決:給充電加鎖避免休眠:
charger_routine_thread函數(shù)最后添加:__pm_stay_awake(info->charger_wakelock);

5、溫度檢測不準(zhǔn)確:

解決:溫度檢測的上拉電阻和LDO的電壓配置不準(zhǔn)確
RBAT_PULL_UP_R
RBAT_PULL_UP_VOLT

6、lk下的上鍵以gpio按鍵實(shí)現(xiàn):

#define GPIO_7 (0x80000000 | 7) //EINT7_UP KEY_VOLUMEUP
mtk_kpd_gpio_set函數(shù)下添加:
mt_set_gpio_mode(GPIO_7, GPIO_MODE_GPIO);
mt_set_gpio_dir(GPIO_7, GPIO_DIR_IN);
mt_set_gpio_pull_enable(GPIO_7, GPIO_PULL_ENABLE);
mt_set_gpio_pull_select(GPIO_7, GPIO_PULL_UP);
mtk_detect_key函數(shù)下添加:
mtk_kpd_gpio_set();
#ifdef KPD_DL_KEY1
if(key == KPD_DL_KEY1)
{
if(!mt_get_gpio_in(GPIO_7)) //volup pull-down
{
print(“preloader volup gpio pull-down\n”);
return true;
}
return false;
}
#endif

7、充電到400ma時(shí)突降到200ma:

解決:

8、充電插入usb不識別vbus,無通知:

解決:
《1》、dts中使能bc1.2 active:

關(guān)于MTK BC12檢測:
bc12_sel= 0; bc12_active=0 ==> use Charger IC’s bc1.2
bc12_sel = 1; bc12_active=0 ==> use MTK PMIC’s bc1.2
bc12_sel = 2; bc12_active=0 ==> use external IC’s bc1.2

bc12_active=1 ==>
Use charging IC without bc1.2
Use MTK PMIC’s bc1.2
Don’t care bc12_sel

《2》、do_charger_detect函數(shù)中添加usb通知:
if(en &&(prop3.intval ==1 || prop3.intval ==3)) {
mt_usb_connect();
} else {
mt_usb_disconnect();
}
power_supply_changed(info->psy);

9、充電不能報(bào)full,一直有電流輸入:

解決:
pmic和gauge的probe init時(shí)間有點(diǎn)早,會有fail,導(dǎo)致充電狀態(tài)無法給到gauge
//module_init(mt6357_charger_type_init);
late_initcall(mt6357_charger_type_init);

//module_init(mt6357_gauge_init);
late_initcall(mt6357_gauge_init);

10、空電池狀態(tài)下有電流輸入:

解決:原因是空電池時(shí)在preloader下會一直檢測,導(dǎo)致pmic有耗電
平臺platform.c下檢測到5次電池不在位時(shí)不再去檢測,讓走到lk下,然后啟動充電IC驅(qū)動時(shí),因?yàn)闆]有電池,充電就不使能,所有寄存器下電停留在lk階段

11、使用switch charger之后電流讀取不準(zhǔn)確:

解決:

12、關(guān)機(jī)充電截止電流一直截止不了:

解決:關(guān)機(jī)狀態(tài)下,設(shè)置的100ma截止電流,但是一直沒有辦法截止,最低電流在120ma左右,原因是關(guān)機(jī)充電動畫沒有好,一直高亮顯示第一張低電圖片,導(dǎo)致耗電,修改關(guān)機(jī)動畫能保證正常息屏休眠下去,截止電流正常

13、關(guān)機(jī)充電曲線毛刺太大:

解決:關(guān)機(jī)充電,屏背光硬件原因?qū)е缕習(xí)哳l率的亮一下白屏,所以會有亮滅狀態(tài),會導(dǎo)致有漏電,所以毛刺比較大,硬件修改,軟件兼容,保證息屏之后,無外部中斷下不再亮屏,漏電解決

14:電池電量快速下降,插上usb快速上升:

換了新型號的電池,沒有添加電池的容量mAh,還有電池的放電曲線,

15、DLPT_FEATURE_SUPPORT這個(gè)宏打開的時(shí)候,會在LK 里面初始化FG ,導(dǎo)致啟動時(shí)間很長,FG 初始化消耗2~3秒的時(shí)間

a>DLPT是一種通過實(shí)時(shí)監(jiān)控battery能夠提供給系統(tǒng)使用的的最大功率,然后將這些功率按照一定的算法來分配到cpu ,gpu,modem,flashlight,icleake,是一種防止在電池低電量由于耗電多大而導(dǎo)致了系統(tǒng)當(dāng)機(jī)的機(jī)制
b>由于在系統(tǒng)啟動的lk階段就會去計(jì)算imix這個(gè)參數(shù),如果把它拿掉了,那么在kernel階段的DLPT算法就會直接skip,直到系統(tǒng)發(fā)生休眠后重新計(jì)算這個(gè)imix值之后
c>這個(gè)feature主要是在mt6753之后的平臺推的,貴司使用的是6735,這個(gè)是沒有驗(yàn)證過這個(gè)feature的作用有大多,所以貴司如果考量DLPT在lk帶來的時(shí)間過長導(dǎo)致體驗(yàn)不好可以關(guān)閉這個(gè)feature
d>目前來說,這部分的算法是根據(jù)硬件的設(shè)計(jì)來實(shí)驗(yàn)的,軟件上面的延遲是必須的,這個(gè)暫時(shí)沒有優(yōu)化

16、預(yù)充時(shí)間長:

pre階段的電流很小,導(dǎo)致預(yù)充時(shí)間長,修改正確的RSENSE電阻值,不支持power_path的關(guān)閉它

17、lk階段的充電時(shí)間長:

pre預(yù)充到3.3v之后會到lk,然后lk初始化了fg,重新通過pmic adc讀取電壓電流值,會充電到3.45v,這階段IC充電,電流小原因:i2c slave 器件讀寫位不對:
-#define bq24157_SLAVE_ADDR_WRITE 0xD4
-#define bq24157_SLAVE_ADDR_Read 0xD5
+#define bq24157_SLAVE_ADDR_WRITE 0xD6
+#define bq24157_SLAVE_ADDR_Read 0xD7

18、一二供IC兼容問題:

IC的vendor code和IC PN腳的值區(qū)分IC:一供:ETA6937,二供:AW32207

19、二供AW32207斷充問題:

充一會電就會斷充,然后10s后重新連接,10s再斷開,期間bat id還檢測錯(cuò)誤,adc電壓檢測錯(cuò)誤
因?yàn)閁SB DCP識別連接錯(cuò)誤:

20、預(yù)充時(shí)間太長:

檢查R_SENSE阻值大小是否和硬件上貼的一致,預(yù)充時(shí)電壓低于3.3v,是硬件pmic直接供電,R_SENSE電阻靠近VBAT,BATSNS靠近R_SENSE引出,通過ADC讀取BATSNS電壓和對應(yīng)的R_SENSE來計(jì)算流入電池的電流大小,IBENBE跟BATSNS完成端電壓除以RSENSE測得充電電流

21、充電截止時(shí)ui_soc遠(yuǎn)沒有到100%:

1、優(yōu)先確認(rèn)電池對應(yīng)的ZCV表是否正確,
2、確認(rèn)無誤之后可以適當(dāng)調(diào)整截止電流或者截止電壓大小
3、R_FG_VALUE電流采樣電阻大小確認(rèn),必須要和硬件上貼的一致,屬于gauge部分,靠近電池連接器,

總結(jié)

以上是生活随笔為你收集整理的充电问题解决总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。