如何在关机后让芯片进入到Off状态?

描述

 

内容简介

在默认的headset工程中,当系统进行关机的时候,会让芯片进入到dormant状态,本文介绍如何在关机后让芯片进入到Off状态。

测试工具

MDE:MDE_WIN_2.8.0.37_x64

Toolkit:ADK Toolkit 1.2.16.21_x64

QACT:NULL

Bluesuite:NULL

Hardware:Qualcomm QCC3084

Software:adk-src-1-0_qtil_standard_oem_qcc518x-qcc308x,ADK-23.1-CS1-r00593.1 headset

Here we go

分析

从芯片的datasheet中可以看到,芯片的状态有No Power state、Active state、Shallow Sleep state、Deep Sleep state、Dormant state和Off state,除了No Power state以外,其他的状态都是芯片通电时正常的工作状态。这里我们主要看Dormant和Off状态:

SRC

从以上的描述很容易发现,Off state比Dormant state功耗更低,随之而来的代价就是在Off状态下只能通过SYS_CTRL和VCHG两个引脚才能唤醒。但是为了能让耳机更省电,很多产品都会选择让其进入Off状态。

高通默认的headset程序在关机后进入的的Dormant状态,这个可以通过实际测量关机后的功耗得到。

经过分析代码后log,我们可以得知在进入最后的关机状态时,程序会运行到shutdown_table的位置:

SRC

在finalPowerOffSleepStep函数中可以看到调用了进入dormant的接口函数:

SRC

这也印证了默认程序并没有进入到Off状态。

解决方法

要让程序关机后进入到Off状态也很简单,只要修改finalPowerOffSleepStep里面的调用(用appPowerDoPowerOff替换appPowerEnterDormantMode)即可:

SRC

这样修改后,没记错的话会让芯片在关机状态下的功耗达到微安级别。

 







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分