展讯8910DM:如果VBus和VBat接在一起,导致模组某些功能出现异常的问题分析

一、无法通过调节电压进行正常开关机

Bug:
在idh.code/components/driver/Kconfig以及drv_charger.c中对开关机电压进行配置后,外接电源调节电压对模组进行开关机测试,通过coolwatcher抓取log分析,关机流程并未全部走完,也就是说没有彻底关机;再次调高电压至开机电压,模组未能正常启动,电流为0MA,而此时模组中的某些引脚还是有电压的。

原因分析:
调电压至指定值以下使其关机,这个时候走的是软件关机流程,但是开关机键和VCharger都是在位的,这个时候软件会判断他们的状态。
由于VBus和VBat接在一起的,导致在外接电源连接VBat对模组进行供电时,VBus电平也被拉高,所以只要接外部电源,充电器在位状态是不会变的。平台vCharger中断检测是3.3V接入检测,3.2V断开检测,但是vCharger状态不变,所以软件行为关机(未彻底)之后不会让模组开机(或者反复的开关机),除非再次有触发开关机的动作(也就是在3.2V-3.3V之间vCharger状态有变化,触发中断)。因此把电压调高到指定开机电压的时候,模组是不会自动开机的。

解决方案:
由于平台对于vCharger的检测是硬件行为,所以在drv_charger.c中的VBat电压检测之后添加判断语句“如果VBat电压达到关机电压后手动设置充电器在位状态使其通过软件行为进入vCharger中断”的方法是不可行的。
需要将关机电压调低至中断检测以下,如3.1V,跳

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gabriel.Tian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值