關(guān)機(jī)充電,手機(jī)不斷重啟問(wèn)題分析

和你一起終身學(xué)習(xí),這里是程序員Android

本篇文章主要介紹 Android 開(kāi)發(fā)中的 異常重啟 部分知識(shí)點(diǎn),通過(guò)閱讀本篇文章,您將收獲以下內(nèi)容:

一、lk 階段重啟
二、在kernel關(guān)機(jī)充電階段重啟
三、關(guān)閉異常掉電機(jī)制

在低電量時(shí),插著充電器關(guān)機(jī)充電,手機(jī)會(huì)不斷重啟。

一、lk 階段重啟

低電量關(guān)機(jī)充電不斷重啟問(wèn)題在lk 階段重啟的log如下

Unplugged Usb/Charger in Kernel Charging Mode Before Jumping to Kernel, Power Off

重啟原因
設(shè)備支持DEVICE_TREE_SUPPORT,在lk啟動(dòng)kernelboot_linux_fdt

int boot_linux_fdt(void *kernel, unsigned *tags,
                   char *cmdline, unsigned machtype,
                   void *ramdisk, unsigned ramdisk_size)
{
   ...............
   #ifdef MTK_KERNEL_POWER_OFF_CHARGING
 /*Prevent the system jumps to Kernel if we unplugged Charger/USB before*/
 if(kernel_charging_boot() == -1)
 {
 dprintf(CRITICAL,"[%s] Unplugged Usb/Charger in Kernel Charging Mode Before Jumping to Kernel, Power Off\n", __func__);
 #ifndef NO_POWER_OFF
  mt6575_power_off();
  #endif
  ...............
 }
}

由于在lk階段的電流過(guò)大,導(dǎo)致charger的電壓被拉低到4.3v以下,因?yàn)? VCDT_LV_VTH默認(rèn)的電壓是4.3v,所以在detect charger回返回false,由于插充電器的原因在power off之后又起來(lái)導(dǎo)致了不斷重啟的現(xiàn)象,其中VCDT_LV_VTH的設(shè)置可以參考datasheet的設(shè)置。

解決方案

  • 1)首先檢查lk階段充電電流設(shè)置的大小,注意檢查backlight_on設(shè)置的level。
  • 2)如果是用的swtich ic charger,首先的開(kāi)啟dpm功能,dpm功能是一種保護(hù) charger vol在大電流的情況下不被拉的很低,Vin-dpm 電壓的設(shè)置范圍是 4.2-4.76vdefault的值是4.2,一般要設(shè)置為4.5
  • 3)如果在以上的修改還不生效,就把VCDT_LV_VTH值設(shè)置為4.2v

二、在kernel關(guān)機(jī)充電階段重啟

在kernel階段重啟有兩個(gè)原因如下:

  1. 在關(guān)機(jī)充電時(shí),charger detect存在的情況下,但是如果被識(shí)別為usb host mode,這時(shí)就會(huì)放回false,引起了power off
    這時(shí)應(yīng)該去檢測(cè)usbid pin硬件上是不是被拉低了
kal_bool upmu_is_chr_det(void)
{
     ...........
    if (mt_usb_is_device()) {
        battery_log(BAT_LOG_FULL,
            "[upmu_is_chr_det] Charger exist and USB is not host\n");
        return KAL_TRUE;
    } else {
        battery_log(BAT_LOG_CRTI,
          "[upmu_is_chr_det] Charger exist but USB is host\n");
     ...........
}
  1. charger電壓超過(guò)了/kernel-3.10/drivers/power/mediatek/battery_common.c#charger_hv_detect_thread里面設(shè)置的電壓,默認(rèn)為6.5v這時(shí),就會(huì)產(chǎn)生cable out,接著就會(huì)power off

三、關(guān)閉異常掉電機(jī)制

修改一下異常掉電機(jī)制代碼vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/k37mv1_bsp/inc/cust_rtc.h

關(guān)閉異常掉電機(jī)制

至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺(jué)得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請(qǐng)聯(lián)系小編刪除,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容