完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题,谢谢。
当使用bluetopia+cc2564作为central设备,在连接peripheral设备时,功耗很高,只有连接建立后,功耗才能降下来。如果长时间连不上,例如peripheral设备不在覆盖范围时,central设备的功耗一直在三十几mA的水平上徘回,很耗电。 当使用spp连接其它经典蓝牙设备时,连接期间功耗也很高。 |
|
相关推荐
9 个讨论
|
|
合肥冉坤 发表于 2020-8-28 13:06 多谢,加入了VS_Set_Max_Output_Power函数,发现编译错误。问题出在如下语句上: /* Assign the Power Vector into the command. */ if((Index == 0) && (FormatIndex == 0)) ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(&CommandBuffer[2 + FormatIndex], (Byte_t)(MaxPower * 2)); else ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(&CommandBuffer[2 + FormatIndex], (Byte_t)(PowerVector * 2)); 查看ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE的定义为: #define ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(_x, _y) [ ((Byte_t *)(_x))[0] = ((Byte_t)(_y)); ] 问题就在这里,将上述宏定义改为: #define ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(_x, _y) do [ ((Byte_t *)(_x))[0] = ((Byte_t)(_y)); ] while (0) 编译通过。 |
|
|
|
|
|
wangke2010 发表于 2020-8-28 13:31 有一些函数是和Sleep相关的,例如 int BTPSAPI VS_Enable_Sleep_Mode(unsigned int BluetoothStackID, Boolean_t Enable) int BTPSAPI VS_Update_HCILL_Parameters(unsigned int BluetoothStackID, Word_t InactivityTimeout, Word_t RetransmitTimeout, Byte_t CTSPulseWidth) 需要参考的话,可以看一下例程HOGPKeyboardDemo,这个例程里面有涉及到sleep mode。 有关应用场景,首先central设备的功耗肯定比纯BLE的peripheral设备高,SPP的使用时间越少相对而言肯定更省功耗 |
|
|
|
|
|
合肥冉坤 发表于 2020-8-28 13:37 多谢,我在初始化协议栈后,开始调度之前,调用了函数VS_Set_Max_Output_Power,传入的功率值是最小值0,感觉效果不明显。另外,该函数好像还有点问题,如下所示: SmallestDifference = ((MaxPower - 4) >= 0) ? (MaxPower - 4):(-(MaxPower - 4)); 因为MaxPower 是无符号类型,因此“(MaxPower - 4) >= 0”应该是一直为真的,也就是说问号表达式的后一部分不会得到执行。我试着将其改为int型,感觉没有明显变化。 另外,在执行connectledevice函数时,功耗依然非常高,高达三十几mA,不知何故。连接成功后,功耗迅速下降到5mA左右。 |
|
|
|
|
|
wangke2010 发表于 2020-8-28 13:49 这个地方应该是在把数字变成负数 不妨试试12和0看看差别 |
|
|
|
|
|
wangke2010 发表于 2020-8-28 13:49 这种情况,如需降低功耗,要注意以下几点: 1, 需要把sleep mode enable。 需要把 HCI_DRIVER_SET_EXTENDED_COMM_INFORMATION_DELAY(&HCI_DriverInformation, 1, 115200, cpUART, 150); 改为 HCI_DRIVER_SET_EXTENDED_COMM_INFORMATION_DELAY(&HCI_DriverInformation, 1, 115200, cpHCILL, 150); 修改之后,ACL保持连接之后,进入sniff+sleep,电流能够降低到0.04mA。 2,需要enable sniff mode,这个在工程里面本来就已经打开了。 3,需要修改scan(BLE), inquiry(BREDR), page scan mode, inquiry scan mode下面的interval。这样可以相应降低蓝牙设备在inquiry, inquiry scan和 page scan几种模式下的功耗。您提出的问题看起来就是这个情况。具体的API在您的另一个帖子里回复了。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
1872 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3614 浏览 4 评论
5020 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1725 浏览 1 评论
9311 浏览 8 评论
CC3100BOOST使用CC3200lunchXL进行烧录
654浏览 2评论
697浏览 1评论
TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!
651浏览 1评论
1178浏览 1评论
求DLPC350 Programmer’s Guide User's Guide 中文版说明书
1174浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 12:44 , Processed in 0.751842 second(s), Total 74, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号