hi,TI工程师:
我项目中将CC2541作为Peripheral广播数据,手机App作为Central接收数据
1,在CC2541没有App连接的情况,CC2541可以进入PM3,功耗在2.2uA
2,在CC2541有App连接的情况,CC2541主动断开App的连接,然后进入PM3,功耗在242uA左右
调用GAPRole_TerminateConnection()
调用{uint8 enable=FALSE;GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &enable );}
删除定时器,确认进入PM3
3,在CC2541有App连接的情况,但是App主动断开连接,之后CC2541主动进入PM3,功耗在2.2uA
请问情况2跟情况3有什么区别,我该如何设置让情况2的功耗也在2.2uA?
Yue TANG:
你的问题2说得有点不太明白。你是说你必须调用了GAPRole_TerminateConnection()和{uint8 enable=FALSE;GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &enable );} ,删除了定时器,才能进入PM3?
还是说已经做了上述操作,并进入了PM3,但功耗是242uA?
jiangtao sun:
回复 Yue TANG:
我调用了GAPRole_TerminateConnection()和{uint8 enable=FALSE;GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &enable );} ,删除了定时器;已经单步调试确认进入了PM3,但是功耗是242uA
Yue TANG:
回复 jiangtao sun:
检查下是否还有其他外设开启,比如串口?PM3能进去,激活是靠是靠按键吗?
user4399852:
回复 Yue TANG:
不是外设问题吧;如题,第一种情况和第三种情况进入PM3都能达到2.2uA,可见不是外设问题;只有第二种不能达到,问题应该是在CC2541(从机)主动断开连接和安卓APP(主机)断开连接上吧?@TI兄弟们
jiangtao sun:
回复 Yue TANG:
确认没有开启其他外设!
情况1和情况3已经能够达到PM3低功耗,说明外设设置已经最优!
情况2与情况3,差别仅仅是,“CC2541主动断开了一个App的GAPP连接” or “App主动断开GAPP连接”
情况2与情况1,差别是,手机App连接了,且CC2541主动断开连接
———————-
我想要的效果是,在手机App通过BLE连接到CC2541时,CC2541主动断开GAPP连接,且能进入PM3低功耗(2.2uA)
目前我采取的操作显然没有到达效果,但是因为BLE协议栈不开源,我不知道该情况2和情况3,协议栈里面有哪些不同操作
我采取哪些措施可以得到2.2uA的低功耗
jiangtao sun:
回复 Yue TANG:
确认激活是用按键激活
Yue TANG:
回复 jiangtao sun:
你在断开前的操作顺寻改改。如下是bloodpressure的例子。
你断开先启动一个定时器,delay一下,再做关advirsting和disconnect的操作。
1. osal_start_timerEx( bloodPressureTaskId, BP_DISCONNECT_EVT, BP_DISCONNECT_PERIOD );
2.
// Disconnect after sending measurement if ( events & BP_DISCONNECT_EVT ) { uint8 advEnable = FALSE; //disable advertising on disconnect GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &advEnable ); HalLedSet ( HAL_LED_1, HAL_LED_MODE_ON ); // Terminate Connection GAPRole_TerminateConnection();
return (events ^ BP_DISCONNECT_EVT); }
jiangtao sun:
回复 Yue TANG:
已测,不成功!
1,按照你的方法,功耗还是242uA
2,方法2,先GAPRole_TerminateConnection();然后延时500,再关闭广播,也失败,功耗仍是242uA
jiangtao sun:
回复 Yue TANG:
你的方法进行过测试吗?
Yue TANG:
回复 jiangtao sun:
我暂时环境可测功耗,你如果方便测,可用默认simpleperipherial 例子按上述方法试试,看是否仍然有这样的现象。