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.

CC2652P: Device is not restarting after SysCtrlSystemReset

Part Number: CC2652P

Hi,

We are facing a weird problem where sometimes the device does not start up after triggering reset using SysCtrlSystemReset().

We have seen situations where the device doens't boot even after BLE OTA. (Project is DMM BLE+Zigbee with OTA)
Temporarily grounding the reset pin does however restart the device.

I have looked into another forum posts
1. not in debug for Halt-in-boot. happens in production
2. tried HAL_SYSTEM_RESET(), doesn't help

After multiple trials, we have found a way to reproduce it now, we have a device with some hardware relays, if we toggle the relay and then trigger SysCtrlSystemReset() the device shuts down but doesn't start back up.

Please can you suggest any steps to analyze this or alternative to force a boot ? 

Thanks
Akhilesh

 

  • Hi Akhilesh,

    Thanks for reaching out! Could you please share what version of the SDK you are currently using?

    Have you tried simply writing to the reset register instead of using the SysCtrlSystemReset() command?

    Best regards,

    Luke

  • Hi,

    This is on 6.10 SDK, based off the sample DMM BLE+Zigbee project

    SysCtrlSystemReset() does write the register only right ? 
    HWREGBITW( AON_PMCTL_BASE + AON_PMCTL_O_RESETCTL, AON_PMCTL_RESETCTL_SYSRESET_BITN ) = 1

    Is there any other way to do this ? Please let me know, I can try that 

    Also is HAL_SYSTEM_RESET anyway different to above ?
    #define HAL_SYSTEM_RESET()  (HWREG( AON_SYSCTL_BASE + AON_SYSCTL_O_RESETCTL ) |= AON_SYSCTL_RESETCTL_SYSRESET_M);

    The TRM mentions only 1 RESETCTL.

    Thanks
    Akhilesh

  • Hi Akhilesh, 

    We do recommend that you upgrade to the latest version of the SDK available which can be found here.

    The command does write to the register but you can also specifically do this yourself as you noted with "HWREGBITW( AON_PMCTL_BASE + AON_PMCTL_O_RESETCTL, AON_PMCTL_RESETCTL_SYSRESET_BITN ) = 1;". 

    I will inquire internally about other methods of doing this and get back to you after the weekend!

    Best regards,

    Luke

  • Hi,

    We are planning to move to the new SDK soon, but is there a difference regarding RESET between these ? 

    A pin reset works fine, but the internal reset gets stuck. Tried to set the register myself as well but it did not help
    Looking forward to your response

    Thanks
    Akhilesh

  • Hi Akhilesh,

    There should not be any difference between the RESET between there but it would help us to alleviate any other outlying issues that may be causing the error you are seeing currently. However, I am bringing this issue up with my internal team later today and will get back to you as mentioned before! I appreciate your patience.

    Best regards,

    Luke

  • Hi Luke, 

    Any info if there is any other way to force a restart ? or programmatically restart the code ?
    Is it possible to force a jumpToPrgEntry ? 

    Thanks
    Akhilesh

  • Hi Akhilesh,

    Other than the methods already mentioned, there are not other ways to force a restart that I am aware of. It may be of use to discover what is causing the device to hang on startup after a rest in debugging. 

    Best regards,

    Luke