- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Labels:
-
BLE
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
SudheeshK_26 any insights on why the speed limitation with LOW POWER mode?
Thx
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
You've solved it.
To recap: set the TX and RX FIFO buffer sizes to 8.
Thank you