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.

how to reset cc3200

Other Parts Discussed in Thread: CC3200

I've some questions about the functioning of cc3200 reset via software mechanism:

1. Is it true that the best reset way is going into hibernate and then wake-up after some delay?

2. What's the suggested time to wait before waking-up the device for reset?

3. In alternative, is it safe to use PRCMCUReset alone?

4. What happen if the reset is triggered through the standard SYSRESETREQ flag of AICR register?

Thanks a lot for your help

many greetings

Attilio 

  • Attilio,

    • The recommendation is to use the hibernate cycle in-lieu of 'PRCMSOCReset'. And, in order to realize the functionality of PRCMSOCReset, we have provided a utility routine 'Utils_TriggerHibCycle' in 'utils_if.c' file of the SDK - Note that this routine should only be exercised after all the network processing has been stopped (sl_Stop). Please refer the known-issues section @ (SDK 1.1.0 Known issues -> Driverlib changes -> Item #1) for more details.
    • Wait time, as you can see in the implementation of 'Utils_TriggerHibCycle', is 10ms
    • PRCMMCUReset(true) is to reset the MCU CM4 only - PRCMMCUReset(false) is to reset the MCU CM4 and MCU peripherals. It's of course safe to use if this is what you intend to do.

    -/Praneet

  • Thanks Praneet,

    just to summarize ...

    I have to write a library reset() function that the user application could call anytime, with network process active or not.

    the following code snippet is what I understand to be the right reset logic, where simplelink_started is a global state variable.

    void cc3200_reset(void) {
    if (simplelink_started) {
    sl_Stop(100);
    MAP_PRCMHibernateIntervalSet(330);
    MAP_PRCMHibernateWakeupSourceEnable(PRCM_HIB_SLOW_CLK_CTR);
    MAP_PRCMHibernateEnter();
    } else {
    MAP_PRCMMCUReset(1);
    }
    }

    I think it is correct but if I miss something else please correct me

    Greetings
    Attilio