Firefly开源社区

打印 上一主题 下一主题

qpps工程下,在 sleep 下不能被client连接的

39

积分

0

威望

0

贡献

游客

积分
39

qpps工程下,在 sleep 下不能被client连接的

发表于 2016-4-13 12:14:40      浏览:7914 | 回复:9        打印      只看该作者   [复制链接] 楼主
用户设置的功耗模式为 normal sleep模式,好像理论上协议栈会被32K睡眠定时器动态唤醒的,应该是能够被连接的,可是不能成功连接,请问在sleep模式下,如何能被链接,而且能正常工作
回复

使用道具 举报

400

积分

0

威望

0

贡献

注册会员

Rank: 8Rank: 8

积分
400
QQ
发表于 2016-4-13 14:53:11        只看该作者  沙发
你对低功耗蓝牙的理解就是sleep下就能自动被连接吗?如果是这样,那么你的理解是错误的。
1.无论何时,sleep模式下都是不能够被连接的。
2.蓝牙能否正常的被连接,关键在于是否启用了蓝牙广播,蓝牙会用极短的时间内完成广播发送,然后进入sleep模式。在广播发出的时候,系统绝对不会是sleep状态的。反之,即使系统全速运行,你没有启用蓝牙广播,也是无法连接的。
3.sleep作为一个睡眠,是即使BLE在正常工作的时候也会出现的一个状态,于是才能够低功耗。也就是手机即使和BLE设备在连接状态下,也会出现进入sleep模式的情况,并且是大多数时间都是。
4.例程的低功耗模式已经很成熟,对于何时进入低功耗无须太过于纠结,也请尽量不要手动干预,如果你在使用中电流过大,可以参照main函数的LED指示进行判断进入了哪一级的低功耗,依此排查不能进入低功耗的原因。
没个性,不签名!
回复

使用道具 举报

39

积分

0

威望

0

贡献

游客

积分
39
发表于 2016-4-13 23:28:03        只看该作者  板凳
安安 发表于 2016-4-13 14:53
你对低功耗蓝牙的理解就是sleep下就能自动被连接吗?如果是这样,那么你的理解是错误的。
1.无论何时,sle ...

安安,谢谢你的解答,可是我发现,当主机连上从机的时候,功耗一直为很高,大概5MA,并没有进入sleep模式,当从机处于广播状态,功耗会降到微安级别,这也是为什么呢
回复

使用道具 举报

39

积分

0

威望

0

贡献

游客

积分
39
发表于 2016-4-13 23:32:54        只看该作者  地板
安安 发表于 2016-4-13 14:53
你对低功耗蓝牙的理解就是sleep下就能自动被连接吗?如果是这样,那么你的理解是错误的。
1.无论何时,sle ...

有可能设置的连接事件太频繁所致吗?我设置的连接时间为10ms 1次,并且不允许从机延迟
回复

使用道具 举报

400

积分

0

威望

0

贡献

注册会员

Rank: 8Rank: 8

积分
400
QQ
发表于 2016-4-14 09:10:50        只看该作者  5#
longdelu 发表于 2016-4-13 23:32
有可能设置的连接事件太频繁所致吗?我设置的连接时间为10ms 1次,并且不允许从机延迟

如果连接过于频繁确实会导致电流比较大。
没个性,不签名!
回复

使用道具 举报

39

积分

0

威望

0

贡献

游客

积分
39
发表于 2016-4-14 09:54:29        只看该作者  6#
安安 发表于 2016-4-14 09:10
如果连接过于频繁确实会导致电流比较大。

这就是它在连接状态造成功耗比较高的原因吗?还是说由于连接太频繁,虽然说协议栈也会进入sleep模式,但由于连接事件产生较多,它的电流就大了? 或者我可以理解成协议栈在连接的时候功耗进不了sleep模式?
回复

使用道具 举报

39

积分

0

威望

0

贡献

游客

积分
39
发表于 2016-4-14 09:55:11        只看该作者  7#
安安 发表于 2016-4-14 09:10
如果连接过于频繁确实会导致电流比较大。

这就是它在连接状态造成功耗比较高的原因吗?还是说由于连接太频繁,虽然说协议栈也会进入sleep模式,但由于连接事件产生较多,它的电流就大了? 或者我可以理解成协议栈在连接的时候功耗进不了sleep模式?
回复

使用道具 举报

400

积分

0

威望

0

贡献

注册会员

Rank: 8Rank: 8

积分
400
QQ
发表于 2016-4-14 15:08:42        只看该作者  8#
longdelu 发表于 2016-4-14 09:55
这就是它在连接状态造成功耗比较高的原因吗?还是说由于连接太频繁,虽然说协议栈也会进入sleep模式,但 ...

其实连接的时候也是会sleep的,但是连接参数和数据吞吐率决定了芯片的sleep时间。如果你想比较仔细的分析睡眠状态,可以用两个IO口指示睡眠状态(如main),然后用逻辑分析仪抓取IO状态
没个性,不签名!
回复

使用道具 举报

39

积分

0

威望

0

贡献

游客

积分
39
发表于 2016-4-14 15:23:43        只看该作者  9#
安安 发表于 2016-4-14 15:08
其实连接的时候也是会sleep的,但是连接参数和数据吞吐率决定了芯片的sleep时间。如果你想比较仔细的分析 ...

是的,安安,普通万用表测,在连接事件太频繁的情况下,测得是平均功耗,我找同事用更先进的仪器测量电流,发现它是能进入sleep模式,只能它占的时间周期太小了,从而拉高了平均功耗,谢谢安安,我发的三个帖子问题都解决了,通过这三个帖子,相信不少人会明白QN902X的功耗工作的
回复

使用道具 举报

39

积分

0

威望

0

贡献

游客

积分
39
发表于 2016-4-14 15:30:36        只看该作者  10#
longdelu 发表于 2016-4-14 15:23
是的,安安,普通万用表测,在连接事件太频繁的情况下,测得是平均功耗,我找同事用更先进的仪器测量电流 ...

关于一开始我说的在sleep模式下,从机不能被主机连接的情况,或扫描设备时不灵敏,也许是我改的广播的时间间隔不是很好,后来我改成源码里面的推荐值,就好很多了。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表