BLE Component Errata Content : Problem on switch the role.

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

cross mob
pich_1695756
Level 1
Level 1
First like received

Dear All,,,

Now, I have been developing the door lock application with Cypress PSoC4 BLE.

-. Cypress PSoC4 BLE Part : CY8C4248LQI-BL583.

The function of the door lock, Central and Peripheral Role are being used alternately as occasion demands.

The below capture  is a screenshot of the BLE Component data (V3.53) sheet and errata contents.

BLE Errata Capture.png

I am also now having difficulty developing with similar symptoms such as errata contents,

so I would like to get some more specific workaround information, along with more detailed information on errata content.

Thanks,

Best Regards,

PH

0 Likes
1 Solution

Hello,

      The workaround for this issue is given in the BLE component datasheet. There is no application note or errata sheet  available for now.

Please let us know if you have any issue after implementation of the workaround.

-Gyan

View solution in original post

0 Likes
8 Replies
Yugandhar
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 5 likes given

Hello,

Are you facing any issues after implementing this workaround?

Please attach the project so we will see what exactly casing the issue even after implementing the workaround.

Thanks,

P Yugandhar.

0 Likes

As I mentioned, I have been developing doorlock application with Cypress PSoC4 BLE (CY8C4248LQI-BL583). 

Our doorlock application should be used  both central and peripheral   profile as GAP role. 

Normally, GAP Peripheral Role exchanges data with remote device ,,,

In special cases, when a specific command is received via any UART interface,

the GAP Central Role exchanges data with the remote device. 

Also, since it is a door application, it uses a battery as a power source, and it realizes low power.

In particular, in the case of low power, in the case of GAP peripheral, wake-up is performed through advertisement,

and when receiving a specific command through UART, wake up from UART wake-up function and switch to GAP central.

The problem is that when working with the GAP peripherals, you can see that the low power fucntion is working properly.

If you switch to GAP central, connect to the remote device, and then return to the GAP peripherals as usual, It is not working properly. 

I have verified that, at this time, advertising is not working properly at the GAP peripheral.  

So, now that we are running GAP peripherals, we switch to GAP Central and connect to the remote device.

Once again, we need to reset the ble compoenent via cyble_stop () and cyble_start () Return ,,,

At this time the low power function works properly ...

However, it is extremely unstable. 

I am looking for an application note and an errata sheet to solve our problem ,,,

Currently, I believe that the errata I found are similar. 

If my guess is correct, I hope to get help from Cypress on how to solve our problems fundamentally.

0 Likes

Hello,

      The workaround for this issue is given in the BLE component datasheet. There is no application note or errata sheet  available for now.

Please let us know if you have any issue after implementation of the workaround.

-Gyan

0 Likes

Hello,,,

I still have three question like the below.

1) I have problems like errata only when I use ble low power function now. If you do not use the ble low power function, there is no problem in restarting the advertisement at the role switch. Is this correct?

2) I am now using cyble_softreset to solve the problem. Let me know about the difference bweteen cyble_softreset and cyble_shutdown + cyble_stackinit.

3) Does Cypress have a plan to solve the problem of this errata fundamentally ??? If so, when is it roughly?

Thanks,

Best Regards,

PH

0 Likes

Please find the answers below -

1) I have problems like errata only when I use ble low power function now. If you do not use the ble low power function, there is no problem in restarting the advertisement at the role switch. Is this correct?

Ans: Yes.  This issue happens only when Low Power Modes are used.

2) I am now using cyble_softreset to solve the problem. Let me know about the difference bweteen cyble_softreset and cyble_shutdown + cyble_stackinit.

Ans: Software Reset will reset the system , means your program execution will restart from the stating of main() function. cyble_shutdown + cyble_stackinit APIs will stop and Start the BLESS Hardware of the PSoC BLE system ( Just like UART_Start()  and  UART_Stop())

3) Does Cypress have a plan to solve the problem of this errata fundamentally ??? If so, when is it roughly?

Ans: Currently , there is no deadline but may be in the next release of BLE component .

-Gyan

Hello,,,Gyan^^

Thanks for your detail inform.

One more check,,,

As I mentioned "CyBle_SoftReset()", not System software reset to restart the main function.

This is the below.

===========================================================================================================

CyBle_SoftReset (void ) This function resets the BLE Stack, including BLE sub-system hardware registers. BLE Stack transitions to idle mode. This function can be used to reset the BLE Stack if the BLE Stack turns unresponsive due to incomplete transfers with the peer BLE device. A call to this function results in the generation of CYBLE_EVT_STACK_ON event on successful BLE Stack reset.

==========================================================================================================

Thanks,

Best Regards,

PH

0 Likes

Hello PH,

    CyBle_Stop() API will free the BLE stack dynamic memory and CyBle_Start() will reallocate the memory for BLE Stack.

CyBle_Softreset() will just reset all the Stack and BLESS hardware registers and it will not Free/Allocate the Stack memory.

-Gyan

pich_1695756
Level 1
Level 1
First like received
As I mentioned, I have been developing doorlock application with Cypress PSoC4 BLE (CY8C4248LQI-BL583).  
Our doorlock application should be used  both central and peripheral   profile as GAP role. 
Normally, GAP Peripheral Role exchanges data with remote device ,,,
In special cases, when a specific command is received via any UART interface,
the GAP Central Role exchanges data with the remote device. 
Also, since it is a door application, it uses a battery as a power source, and it realizes low power.
In particular, in the case of low power, in the case of GAP peripheral, wake-up is performed through advertisement,
and when receiving a specific command through UART, wake up from UART wake-up function and switch to GAP central.
The problem is that when working with the GAP peripherals, you can see that the low power fucntion is working properly.
If you switch to GAP central, connect to the remote device, and then return to the GAP peripherals as usual, It is not working properly. 
I have verified that, at this time, advertising is not working properly at the GAP peripheral.  
So, now that we are running GAP peripherals, we switch to GAP Central and connect to the remote device.
Once again, we need to reset the ble compoenent via cyble_stop () and cyble_start () Return ,,,
At this time the low power function works properly ...
However, it is extremely unstable. 
I am looking for an application note and an errata sheet to solve our problem ,,,
Currently, I believe that the errata I found are similar. 
If my guess is correct, I hope to get help from Cypress on how to solve our problems fundamentally.
0 Likes