This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/CC2650: CC2650 stops advertising after a few minutes of connection

Part Number: CC2650
Other Parts Discussed in Thread: CC2540, BOOSTXL-SHARP128

Tool/software: TI-RTOS

Hi all!

I have a CC2650 LaunchPad with multi_role project and a BOOSTXL-SHARP128 boosterpack for display that connects to one to four devices using CC2540 with simpleBLEcentral projects. The CC2540 devices can mostly connect to the CC2650 without problems, but sometimes they get stuck in a loop connecting and disconnecting forever, and the only solution is to reflash the CC2540 device. The same problem never occurs when connecting two CC2540 together. Does anyone have any idea what might cause this?

Another problem is that when one or more devices succesfully connects, the CC2650 drops all connections and stops advertising after around 10 minutes (time varies a bit). Trying to manually start advertising again through the menu does nothing. It says it is advertising, but can not be found by any device nearby, the only workaround is by pressing the physical reset button. It would be ok to have a software reset somewhere in the code. I tried to use HAL_SYSTEM_RESET() , but I don't think I implemented it correctly as the CC2650 never resets itself and CCS gives warning that the function is definited implcitly.

A lot of people seem to have struggled with similar problems before, some examples:  

e2e.ti.com/.../545894

e2e.ti.com/.../593161

Regards

Sebastian

  • Hi Sebastian,

    Can you provide a sniffer log of the failing case so that we can see more information about what's going on over the air? Unfortunately, without the sniffer log it's hard for us to comment what could be happening.

    You may also look to ensure that DLE is turned off on the CC2650.

    What's the max number of BLE devices that your code is set to support?
  • Hi Evan!

    Thank you for your reply! I will look into acquiring a sniffer log!

    I don't know how I should ensure that DLE is turned off. If it should be turned off in the original multi_role code, then it should be turned off in my code as well, as I haven't done too many changes to the code. The max number of BLE devices is set by MAX_NUM_BLE_CONN = 4.

    I discovered that my program runs fine without any problems whatsoever when using UART and reading all values in PuTTY, but as soon as I change the predefined symbols BOARD_DISPLAY_EXCLUDE_LCD and BOARD_DISPLAY_EXCLUDE_UART to exclude UART and instead use the LCD, the problems start. Usually only 1 device can connect, but the others connect but never succesfully pairs and gets stuck. This eventually freezes the CC2650 LaunchPads ability to advertise.

    Regards,

    Sebastian

  • Sebastian,

    It sounds like you may be running out of heap. Turning DLE off will help your heap, and you can learn how to profile your heap as well using the Software Developers Guide located in the docs/ folder of your BLE Stack install directory. Please search for heap and Data Length Extensions. There should be guides on both.

    LCD could use a large amount of heap, and when DLE is enabled and using encryption, you could quickly run out of RAM. CC2650 by nature does not have a vast amount of RAM, but there are options like AUX_AX_RAM and CACHE_AS_RAM that can be enabled as well. This is also in the users guide.