qiangxcn 发表于 2020-4-1 10:35:17

qcc3020充满进入dormant如何唤醒?

最近帮客户分析qcc3020的OEM代码发现一个问题:
放入充电盒耳机充满后软件控制进入dormant状态,但此后耳机从充电盒脱离无法唤醒。
从3020的datasheet看到dormant的唤醒条件有:
■ A rising edge on SYS_CTRL
■ A rising edge or a falling edge on VCHG
■ Activity on any PIO
■ A timer
■ Digital activity on any LED pad (when configured as digital inputs)
具体的做法是:
power_manager收到charger_manager的CHARGER_MESSAGE_COMPLETED消息后延时一 段时间调用appPowerEnterDormantMode();
有看到appPowerEnterDormantMode()内禁用了充电器appChargerForceDisable(),是否因为它导致了充电脱离无法唤醒耳机?


求高人指点一二,不胜感激!!

basketcase 发表于 2020-4-1 11:04:36

这个跟软件应该没有问题吧,3020只要vchg电平有变化都会唤醒,大概是0-3.6v,3.6-5v这两个区间,而且不用刻意进入dormant,调用Poweroff会自行判断的,vchg有电压就会进入dormant,没电压就会关机

liujinhan 发表于 2020-4-1 11:08:40

满电后,直接poweroff,试试

qiangxcn 发表于 2020-4-1 16:03:06

liujinhan 发表于 2020-4-1 11:08
满电后,直接poweroff,试试

datasheet上有说明VCHG有电是不能power off的。确实也试过,结果是也是意料中如原厂代码,看到log关机失败:
static bool appPowerDoPowerOff(void)
{
    /* Try to power off.*/
    PsuConfigure(PSU_ALL, PSU_ENABLE, FALSE);

    /* Failed to power off.. */
    DEBUG_LOG("Turning off power supplies was ineffective?");

    /* No need to disable charger for power down, but if a charger is connected
       we want to charge. Check if we failed to power off because charger
       detection is not complete */
    if (!appChargerDetectionIsPending())
    {      
      /* Fall back to Dormant */
      appPowerEnterDormantMode(FALSE);

      /* Should never get here...*/
      Panic();
    }

    DEBUG_LOG("Failed to power off because charger detection ongoing. Check charger again later");

    return FALSE;
}

liujinhan 发表于 2020-4-1 16:14:21

qiangxcn 发表于 2020-4-1 16:03
datasheet上有说明VCHG有电是不能power off的。确实也试过,结果是也是意料中如原厂代码,看到log关机失 ...

确定是满电状态吗?

qiangxcn 发表于 2020-4-1 16:33:09

basketcase 发表于 2020-4-1 11:04
这个跟软件应该没有问题吧,3020只要vchg电平有变化都会唤醒,大概是0-3.6v,3.6-5v这两个区间,而且不用刻 ...

如果不禁止充电而调用dormant总会引起PANIC,禁止充电appChargerForceDisable()又会导致唤醒不了,感觉象条死路。另外,盒子从有电到没电不会关机,会产生OUT OF CASE事件。再测试一下用不用dormant充满的耗电差别吧。

qiangxcn 发表于 2020-4-1 19:54:27

liujinhan 发表于 2020-4-1 16:14
确定是满电状态吗?

这个倒没什么疑问,LED红灯灭了,而且增加了消息处理才能跑到那里。

qiangxcn 发表于 2020-4-1 20:07:33

对比测试充满进或不进dormant各点电流:
                                VCHG端电流                         VBAT端电流
原厂不入dormant          <1mA                                   0.0125mA
修改进dormant                <1mA                                   0.004mA
USB 5V处取样电阻小了点不准,VBAT的耗电还是有改善价值的。按50mAh电池算就是4000小时和12500小时的差别了。

basketcase 发表于 2020-4-2 00:13:42

qiangxcn 发表于 2020-4-1 20:07
对比测试充满进或不进dormant各点电流:
                                VCHG端电流                         VBAT端 ...

进入dormant的时候看耳机电流是没有多大意义的,要看充电盒的功耗,高通芯片的5V漏电还是很厉害的,单耳大概有20-30微安,转换到充电仓大概是30-50个微安左右,这还是电路设计没问题的情况下,所以高通一般都不推荐做5V常开。
页: [1]
查看完整版本: qcc3020充满进入dormant如何唤醒?