cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC™ 4

tiph_4666786
New Contributor II

Hi All

I have the UART to Ble central code running on a CY5677 dongle along with the UART to Ble peripheral code on a CY8C4248LQI-BL583.

I have a 2 CoolTerm windows on my PC, one connected to the CY5677 dongle and  the other connected to the CY8C4248LQI-BL583. module.

When I type in the dongle window I see the characters in the module window , and vice versa.

HOWEVER

When I uncomment

    #define     LOW_POWER_MODE

in the peripheral code main.h and rebuild, I only see traffic in the dongle to module direction.

I cannot see any traffic in the module to dongle (peripheral to central) direction.

Does any body know why ?

Tim

1 Solution
SudheeshK
Moderator
Moderator

Hello,

When LOW_POWER_MODE is enabled, the peripheral example code enables the "RX FIFO NOT EMPTY" interrupt before calling "CySysPmSleep()" and disables it after calling "CySysPmSleep()". Also, the rx and tx buffer size configured in the UART component is 2048.

It is not recommend to disable or clear "RX FIFO NOT EMPTY" interrupt when the UART rx and tx buffer size is more than FIFO depth (for CY8C4248LQI-BL583 UART rx and tx fifo depth = 8 bytes). Can you change the rx and tx buffer size in UART configuration window to 8 and test again? Please let us know the results.

Thanks and Regards,

Sudheesh

View solution in original post

6 Replies
SudheeshK
Moderator
Moderator

Hello,

When LOW_POWER_MODE is enabled, the peripheral example code enables the "RX FIFO NOT EMPTY" interrupt before calling "CySysPmSleep()" and disables it after calling "CySysPmSleep()". Also, the rx and tx buffer size configured in the UART component is 2048.

It is not recommend to disable or clear "RX FIFO NOT EMPTY" interrupt when the UART rx and tx buffer size is more than FIFO depth (for CY8C4248LQI-BL583 UART rx and tx fifo depth = 8 bytes). Can you change the rx and tx buffer size in UART configuration window to 8 and test again? Please let us know the results.

Thanks and Regards,

Sudheesh

View solution in original post

BaWa_4696941
New Contributor II

I had the same problem. SudheeshK_26​ your recommendation works!

I have an additional question. What is the maximum reliable data throughput I can achieve in LOW POWER MODE? I am definitely dropping bytes. I cannot tell if it is the transmitter or receiver.

0 Likes
BaWa_4696941
New Contributor II

SudheeshK_26​ I was able to achieve a maximum transfer speed of 2400 baud without dropping any bytes. However, I am still not sure what drives this limitation. Insights in understanding this limitation will be of huge help in ensuring a robust design at my end.

Thank you so much in advance.

0 Likes
BaWa_4696941
New Contributor II

SudheeshK_26​ any insights on why the speed limitation with LOW POWER mode?

Thx

0 Likes
SudheeshK
Moderator
Moderator

Hello,

To transfer data at a higher speed, you have to use the uart rx and tx buffer size more than 8. I have modified the uart_to_ble central and peripheral projects to transfer data at a higher speed when LOW_POWER_MODE is enabled. Please use the attached projects and let me now if you face any issues.

Thanks and Regards,

Sudheesh

0 Likes
tiph_4666786
New Contributor II

Hi

You've solved it.

To recap: set the TX and RX FIFO buffer sizes to 8.

Thank you

0 Likes