TI论坛
直播中

张润佘

8年用户 221经验值
私信 关注
[问答]

如何使用bluetopia协议栈修改cc2564的发射功率?

如题,谢谢。
当使用bluetopia+cc2564作为central设备,在连接peripheral设备时,功耗很高,只有连接建立后,功耗才能降下来。如果长时间连不上,例如peripheral设备不在覆盖范围时,central设备的功耗一直在三十几mA的水平上徘回,很耗电。
当使用spp连接其它经典蓝牙设备时,连接期间功耗也很高。

回帖(9)

苏醒

2020-8-28 13:06:03
有关发射功率 可以尝试调用如下函数
int BTPSAPI VS_Set_Max_Output_Power(unsigned int BluetoothStackID, Byte_t MaxPower)
 
有关降功耗,不一定要降低发射功率,可以查一下是否休眠模式已经打开了?在BLE工作时,广播时间的长短,结束后是隔一段时间再广播还是按了某个键之后在广播?BLE操作处理的不同也会功耗不同。SPP是标准蓝牙的协议,功耗较BLE高
举报

张润佘

2020-8-28 13:23:25
引用: 合肥冉坤 发表于 2020-8-28 13:06
有关发射功率 可以尝试调用如下函数
int BTPSAPI VS_Set_Max_Output_Power(unsigned int BluetoothStackID, Byte_t MaxPower)
 

多谢,加入了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)
编译通过。
举报

张润佘

2020-8-28 13:30:45
引用: 合肥冉坤 发表于 2020-8-28 13:06
有关发射功率 可以尝试调用如下函数
int BTPSAPI VS_Set_Max_Output_Power(unsigned int BluetoothStackID, Byte_t MaxPower)
 

请问休眠模式怎么打开?是否有相应例子?多谢。
我用cc2564作为central设备,用于连接第三方心率腕表,每秒钟都会接收到心率腕表的心率数据,之后通过经典蓝牙的spp发到pc上。
请问这种工作方式怎样改善功耗呢?
举报

苏醒

2020-8-28 13:36:32
引用: wangke2010 发表于 2020-8-28 13:31
请问休眠模式怎么打开?是否有相应例子?多谢。
我用cc2564作为central设备,用于连接第三方心率腕表,每秒钟都会接收到心率腕表的心率数据,之后通过经典蓝牙的spp发到pc上。
请问这种工作方式怎样改善功耗呢?

有一些函数是和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的使用时间越少相对而言肯定更省功耗
举报

更多回帖

发帖
×
20
完善资料,
赚取积分