cyw20719b2 SDS Sleep handler not called when HCI UART CTS Pin is low at boot

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

cross mob
anje_2248446
Level 3
Level 3
25 sign-ins 10 replies posted 10 questions asked

Hello Cypress,

I have few observations on SDS Sleep handler not getting called if HCI UART CTS pin state is low in few cases:

- CASE 1:  After a COLD Boot and after firmware has started to run, but before the Sleep Handler is called the first time, if I momentarily ground the CTS pin, then the Sleep handler will never be called, but the FW continues to run (i.e. the button Interrupt handler is still active.

- CASE 2:  After COLD Boot and let the sleep handler be called at least once so that the board goes to SDS Sleep, wake the board with the Buttton press, ... after this it seems I can momentarily ground the CTS pin with no effect (The Sleep handler will be called eventually and the board will enter SDS Sleep).

HOWEVER, (CASE 3:) if I leave the CTS pin grounded for a longer period of time (through the time when the sleep handler should be called again), again I can see that the Sleep handler will NOT be called and the board will never go to SDS Sleep.

Do you have any details on how and why HCI UART CTS Pin state affects SDS Sleep handler not getting called ?

Thanks,

Aniket

 

0 Likes
1 Solution
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi @anje_2248446 , If you are connecting an external host to HCI pins either for HCI mode or Raw mode, we need to set sleep mode as WICED_SLEEP_MODE_TRANSPORT

Regards,
Bragadeesh

View solution in original post

0 Likes
5 Replies
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi @anje_2248446,

Can you please let us know what setting you have used for sleep_mode in wiced_sleep_config_t? If it is WICED_SLEEP_MODE_NO_TRANSPORT then when transport is connected, sleep is always disallowed.  

Regards,
Bragadeesh
0 Likes
ChCh_3584941
Level 4
Level 4
50 sign-ins 25 replies posted 25 sign-ins

@BragadeeshV  In this case, yes, Sleep is configured as WICED_SLEEP_MODE_NO_TRANSPORT.  Based on our observations so far it seems that the condition of: "Transport Connected" is triggered by CTS Pulled Low, even for a short time, ... is that correct?

Is there are way to clear this condition on the HCI UART so that the PMU will begin to call the Sleep Handler?  

0 Likes
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi @anje_2248446 ,

Could you please clarify if you are using an external host (microcontroller) connected to the HCI port? IS there any requirement for you to assert CTS line when there is no host connected?

Also, please check the following document, CYW208xx BLE Low-Power Guidelines (Pg: 8 )

https://www.cypress.com/file/465226/download 

sleep_mode: WICED_SLEEP_MODE_NO_TRANSPORT or WICED_SLEEP_MODE_TRANSPORT. If you select the former, the device will enter sleep only if no host is connected (i.e., HCI UART CTS line not asserted).
If you select the latter, the device will enter sleep only when an external HCI host is connected (i.e., HCI UART CTS
line is asserted). If the device is being used stand-alone without an external HCI host, you should choose
WICED_SLEEP_NO_TRANSPORT.

Regards,
Bragadeesh
0 Likes
anje_2248446
Level 3
Level 3
25 sign-ins 10 replies posted 10 questions asked

@BragadeeshV thanks for the reply. We are using HCI port in the raw mode connected to other micro-controller. As mentioned we are using WICED_SLEEP_MODE_NO_TRANSPORT mode. During boot-up, other controller asserts connected cypress CTS pin for a brief period (couple of seconds). This causes the sleep handler never getting called. Is there any way so that we can avoid the CTS pin state conditional check to get sleep permit handler getting called ?

0 Likes
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi @anje_2248446 , If you are connecting an external host to HCI pins either for HCI mode or Raw mode, we need to set sleep mode as WICED_SLEEP_MODE_TRANSPORT

Regards,
Bragadeesh
0 Likes