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.

CC2541 Peripheral+Observer demo code : RF is dead after 4 hours

Other Parts Discussed in Thread: CC2541

My customer is implementing a Peripheral+Observer combo role project, using the demo code
found in this link: processors.wiki.ti.com/.../SimpleBLE_ComboRoles

But instead of scanning once per key press, The scanning is started every 5 seconds in a
periodic event handler. After running the continuous advertising every 100ms + scanning every 5 sec for around 4 hours,
there's no longer any RF activities.

Looking at the current waveform to CC2541 confirms there's no more Tx/Rx current spikes.
However, the firmware is still running (the LCD still get constantly update), and therefore the MCU is still alive.

The firmware was tested on (SmartRF05 + CC2541EM and BLE Stack 1.40) to eliminate hardware issue.

Can TI please confirm if this is an issue in the stack libraries ? and please advise any solution for this ?

- Thomas

  • Hello Thomas,

    Since you indicated that the FW is still running, can you use the debugger to check for any non-expected return codes from the stack? Are you getting any watchdog resets?

    Best wishes
  • Hey Thomas,
    What is the scanning parameters you are using? Do you have many advertisers in the vicinity?

    One potential state I can think of is if Scanning finds an advertiser and issues a scan request just before a scheduled advertising event is suppose to run. This should be a very rare case that might have slipped our internal tests. This should also be reflected by observing the issue at random occasion (not just after 4 hours as an example). You could try to relax the scanning and make it triggered based on HCI Extension Advertiser Event Notice (described in the Vendor Specific HCI Guide) and only allow it to scan for a short amount of time and disable it before next advertising event. This may not be optimal for a 100ms advertising interval though.

    Best Regards
    Joakim
  • Thanks JXS, Joakim for your replies.

    There was no reset nor error code returned when RF is dead.

    All the scanning parameters are same as those used in the sample code, that is TGAP_GEN_DISC_SCAN_INT = TGAP_GEN_DISC_SCAN_WIND = 16, No active scan. I suppose there will not be any scan request send since this is a passive scan.

    There were several advertiser (up to 4) in the vicinity during the test. In fact, if I run 2 sets of the CC2541EM loaded with exactly the same peripheral + observer image, the RF will die faster (say within 30 to 60 mins). My customer reported they sometime see the problem within 15 mins. So the time for the problem to happen is rather random.

    Seems that one of the way is to enable scanning only when RF is idle, that's during advertising interval or connection interval, but that will make the firmware rather messy I guess...

    - Thomas