关于杰理6983D4修改时钟模式之后的死机问题

最近有一个案子,硬件工程将电感过于靠近磁铁,磁铁对电感的干扰,导致手机搜不到蓝牙配对名,拆壳之后正常,软件解决的方法有两个:改LDO模式、改时钟模式。

改LDO模式:修改之后,电感就没有作用了,可以直接不贴,自然无视干扰,但是功耗会高很多。操作方法如下:

#define TCFG_LOWPOWER_POWER_SEL	 PWR_LDO15  //电源模式设置,默认为DCDC

改时钟模式:这个修改之后增加1mA的功耗,原理是增加内核的电压,来增强抗干扰,修改了之后,休眠的时候有概率会出现芯片直接跑死机的现象,解决方法如下:
首先修改时钟模式:

#define TCFG_CLOCK_MODE      CLOCK_MODE_USR

然后增加一个处理:

const struct low_power_param power_param = {
     ......
	.light_sleep_attribute = TCFG_LOWPOWER_LIGHT_SLEEP_ATTRIBUTE,
};

然后定义一下:

#define TCFG_LOWPOWER_LIGHT_SLEEP_ATTRIBUTE     LOWPOWER_LIGHT_SLEEP_ATTRIBUTE_KEEP_CLOCK

最后修改休眠:

static u8 user_idle_query(void)
{
	return 1;
}

static enum LOW_POWER_LEVEL user_level_query(void)
{
	struct application *app;
	app = get_current_app();
	if (strcmp(app->name, APP_NAME_BT) == 0) {
		return LOW_POWER_MODE_LIGHT_SLEEP;
	}
	return LOW_POWER_MODE_SLEEP;
}

REGISTER_LP_TARGET(user_lp_target) = {
	.name		= "user",
	.level		= user_level_query,
	.is_idle	= user_idle_query,
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值