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.

CC2640R2F: CC2640R2F Dead

Part Number: CC2640R2F
Other Parts Discussed in Thread: CC2640

Hi , Sir :
When I test the CC2640R2F , sometimes its dead .

It can not back to normal even I power-recycle the device .

Until I re-download its firmware , it back to normal again . Seems like the firmware of the CC2640 is broken .

I am curious about this , if there any possibilitythat my code lead the CC2640R2F dead like this ?

Or if there any else I need check . I am sure the power is normal .

Can you give me some suggestions ?

Thanks

Lining

  • Hello Lining,

    I hope you are doing well. Given what you have detailed above the issue could possibly be with code or hardware. First lets try to clean the device, use UniFlash to mass erase the device to start from a clean device, then open, build, and flash any example project (let's say the pinShutdown or empty project in your SDK). Next see if you can debug the program correctly, and if the project downloaded is functioning correctly. (doing this to figure out if it is a code or board issue) 

    If the SDK projects are working as intended, we will need to take a look at your project, and code that you are seeing an issue with, in this case what project did you start from, what modifications did you make, and what SDK version was used?

    Thanks,
    Alex F

  • Hi, Alex F :

    Yes When I download the firmware again , CC2640R2F works normaly .

    I use the SDK " simplelink_cc2640r2_sdk_1_40_00_45 " .

    I use the uart_callback demo .I add some services that I needed . Currently the code is like a BLE-UART transparent transmission .

    Some resources I used:
    UART/WATCHDOG/IO 

    You said : 

    the issue could possibly be with code or hardware

    Can you give me details about what hardware or code problem can lead to this ?

    If needed , I can provide the code .

    Thanks

    Lining

  • Hi, Alex F :

    Will overuse of RAM cause this problem?
    My problem  is: CC2640R2F runs normally at the beginning, and frequently transmits data between the serial port and Bluetooth. CC2640 suddenly cannot receive data from the mobile phone, and after the problem occurs, the mobile phone cannot find the  CC2640 anymore , and restarting CC2640 has no effect.
    My current memory usage is:
    FLASH 106K(83%) 127k
    FLASH LAST PAGE 88(2%) 4096
    SRAM 12916(74%) 17408
    I got this data from CCS Memory Allocation.
    If overuse of RAM will cause this problem, what is the root cause? How should we avoid this problem?

    Looking forward to your reply

    Thanks 

    Lining

  • Hello Lining,

    First lest look at:

    Can you give me details about what hardware or code problem can lead to this ?

    -The idea here was first check if the device was erasable, and if the device responded correctly when running normal SDK examples, if the device acted in a non-normal way with the SDK example that could tell us there is some sort of HW issue, if the SDK example runs correctly that can point to some type of configuration or code issue. 

    I use the SDK " simplelink_cc2640r2_sdk_1_40_00_45 " .

    -This SDK is a little old (7 years to be exact), if you are considering new development, I would recommend the lates version (5.30) if possible as there have been plenty of fixes. 

    sometimes its dead

    -Could you expand on how long it takes for this to happen, and if you could add something like a GPIO toggle to see if the GPIO is still active to see if it is very stuck or not. 

    -I do have a concern that the issue is not fixed even after a power cycle, as the device is reset; you are not writing to the wrong registers directly in this case, right? 

    CC2640 suddenly cannot receive data from the mobile phone, and after the problem occurs, the mobile phone cannot find the  CC2640 anymor

    -I may need to loop in another expert for this, but generally are you storing data from sent the phone to the device? are you clearing anything after a disconnect, or have a watchdog reset the device if it faults? 

     

    Thanks,
    Alex F

  • Hi, Alex Fager :
    (1): When the CC2640 Dead , we can erase the it . And download a new firmware it can work normally .

    Maybe not fully dead , because I can not find it by Phone . Also after power recycle it , still phone can not find it . Until donwload the firmware again for it .

    (2): Currently there no GPIO toggle to indicate it active or not . But I am sure it can not back to normal after power recycle .

    (3): I didn't write to the wrong register directly . 

    (4): There is an array here to store the data from the phone .

    I am curious that If overuse of RAM will cause this problem, what is the root cause? How should we avoid this problem?

    Because this problem happen when I add a  big array , this array is 500 bytes .

    Looking forward to your reply .

    Thanks

    Lining

  • Hello Lining,

    I am curious that If overuse of RAM will cause this problem, what is the root cause? How should we avoid this problem?

    Since the CC2640R2 has limited flash overfilling it can be a problem; try to either use a smaller array or we can clear the array at certain intervals to save space, otherwise we could try an optimization level for size (if it's not already set to that already). We could also try and check the heap usage too. 

    -As a sperate comment, we also try the code on the 5.30 SDK to see if those changes anything, as the SDKs are updated, they are given new features, bug fixes, and stability updates. Check the release notes for more info, Release Notes (ti.com)

    Thanks,
    Alex F

  • My problem  is: CC2640R2F runs normally at the beginning, and frequently transmits data between the serial port and Bluetooth. CC2640 suddenly cannot receive data from the mobile phone, and after the problem occurs, the mobile phone cannot find the  CC2640 anymore , and restarting CC2640 has no effect.

    I suspect you are experiencing a code hang. The only way to know is debug your code.

    -kel