cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

New Contributor II

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
Reply
1 Solution
Employee

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
Reply
8 Replies
Moderator
Moderator

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
Reply
New Contributor II

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
Reply
Employee

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
Reply
New Contributor II

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
Reply
Employee

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

New Contributor II

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
Reply
Employee

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

New Contributor II
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
Reply