bleprofile_PrepareHidOff and deep sleep going wrong

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi all. I have a problem using bleprofile_PrepareHidOff. Once I call it, my BCM20736A1 doesn't go in deep sleep. I attach the trace:

16:46:40 - blecm evt handler:

16:46:40 - 0e04010a200c

16:46:40   AppTimer(adv, conn) stopped: 1

16:46:40   noAdv

16:46:40 -

16:46:40 - blecm evt handler:

16:46:40 - 0e04010a200c

16:46:40   bleprofile_queryPowersave(POWEROFF): 00000001

16:46:40   bleprofile_queryPowersave(POWEROFF): 00000001

16:46:40   enterHidoff!!!

16:46:40   Prepare Power save

16:46:40   AppTimer(adv, conn) stopped: 1

16:46:40   noAdv

16:46:40   Start Power Save

16:46:40   TimersKilled

16:46:40   abortHidoff!!!

16:46:40   Stop Power Save

16:46:40   Fine Timer(5 ms, 80/sec)

16:46:40   Fine TImer tick 1

16:46:40   Normal Timer(0 s, 0 tick)

My sleep query callback is

UINT32 UARTManager_device_lpm_queriable(LowPowerModePollType type, UINT32 context)

{

  return /*0*/100;

}

Can you tell me what's wrong? I tried also to not register the callback with the same result.

0 Likes
3 Replies
JacobT_81
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

Please see Shawn's post: How to enter HIDOFF? How to detect if the request is not honored?


"GPIO:P0 should be pulled high (via 10k), or the key-scan feature of the device may think a key on a keyboard is pressed and it will stay awake to perform further scanning."


The cause of the device immediately aborting deep sleep is generally the physical state of P0.


Jacob

0 Likes
Anonymous
Not applicable

Hi, I use that PIN as puart Tx pin on the SiP. Can i put an internal pull-up resistor?

0 Likes
Anonymous
Not applicable

Using an external resistor would be better.

0 Likes