PROJECT #020: UART TO BLE BRIDGE, LOW POWER NOT WORKING

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

cross mob
tiph_4666786
Level 1
Level 1
First like received First reply posted First question asked

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
Moderator
250 sign-ins First question asked 750 replies posted

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
Moderator
250 sign-ins First question asked 750 replies posted

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

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

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

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

Thx

0 Likes
lock attach
Attachments are accessible only for community members.

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

Hi

You've solved it.

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

Thank you

0 Likes