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.

cc26xx contiki cpu reset cc26xx-web-demo

Other Parts Discussed in Thread: CC2650

Hi e2e - 

I have tried to add a COAP call to the cc26xx web demo to reset the cc26xx CPU.
Neither of the following calls are actually resetting the CPU: 

 ti_lib_sys_ctrl_system_reset();  // from ti-lib.h 
 SysCtrlSystemReset();  // from cc26xx driverlib sys_ctl.h

On a normal reset/boot, the green LED blinks rapidly until it joins the mesh.
What I am seeing, is the LED's do not light up, and the CPU is not responsive to button presses or COAP requests. 

On the BLE stack for the same platform, I've been using HAL_SYSTEM_RESET reliably.
Unfortunatley, contiki does not have access to the same HAL  

Does anybody know a reliable way to reset the cc26xx CPU with contiki? 

  • Hi Mike,
    I have used watchdog_reboot() to reboot the sensortag. Inspired from cc26xx-demo.c. It this what you are looking for?

    Regards,
    Andreas
  • I forgot about that one! I can give that a shot. Thanks for the reminder.
  • Hm. Same results with the watchdog_reboot(). Something tells me this is wonky, trying to reset from within the context of the coap server.
  • Try to define "#define HAL_SYSTEM_RESET() *((uint32 *)0x40082270) = 1;" and use it to reset CC2650.
  • I have found that each of the following three examples may be equivalently used to reboot the CC2650 in Contiki.

    ti_lib_sys_ctrl_system_reset();
    
    SysCtrlSystemReset();
    
    #define HAL_SYSTEM_RESET(...) *((uint32_t *)0x40082270) = 1
    HAL_SYSTEM_RESET();

    However -- I have found that the presence of a debugger can interrupt the reboot, and produces the problems you cite!  For instance, if I use a CC2650 in the srf06 board, and run one of the above reboot commands while using USB power, the CC2650 will shut down but not turn back on!

    But, if I disconnect USB and switch to BAT power (2 AAAs), then it works perfectly!

    I haven't tested this using the devpack + sensortag but I wouldn't be surprised if there was a similar problem.  Looks like debuggers interrupt proper reboot.

  • Despite my previous answer, I too have found that the CoAP feature is somehow specifically interfering with system reboot!  All 3 of the syntax representations for a reboot command that I posted fail in the same way -- the CC2650 freezes, but does not reboot.  I'm not sure what kind of recourse we have here.  Why wouldn't the reset mechanism work when called from within a CoAP server??  The same code works when called from anywhere else (that I could tell).  Could it be some sort of oscillator/clock issue?