Staging:CC3220 Hibernate Application (Texas Instruments NDA restrictions applicable)

Overview
User application can enter “Hibernate (HIB)” by calling the PRCMHibernateEnter API. This API disables power to all modules except the HIB module and the clocks operates at 32KHz. The HIB module supports an RTC timer that can be enabled to be active and free running throughout the Active-HIB cycles once started. On entering HIB, the system can be woken up based on one of the following wakeup sources selected: • Wake Timer • GPIO In this mode, most of the system is shutdown (including network processors) and only the HIB module is active. The HIB module has 2 32-bit registers that can be used to save any information across HIB entry-exit cycles. The code execution commences from the reset vector.

Application details
In this example the device wakes up periodically from hibernate and broadcasts a message and then enters hibernate again. The device cycles through active and hibernate power mode at a relatively higher frequency (which is only for demonstration purpose only). Ideally, hibernate should be exercised where the device needs to be active for a short duration over a relatively longer time period.

Source Files briefly explained

 * main.c - Core UDP braodcast implementation. On entry to main a check is done to check the wake-up cause (power on or HIB)..
 * cc_launchpad.c - contains Initialization and configuration for peripherals used.

Supporting Files

Common Files
 * pinmux.c - Generated by the PinMUX utility.
 * startup_*.c - IDE specific startup functions (not required when working with TI-RTOS)
 * network_if.c - Common functions to handle connection to AP and FreeRTOS hook functions
 * uart_if.c - abstraction layer built on top of uart interface from ti-drivers package
 * timer_if.c - interface file for general purpose timers
 * utils_if.c - contains API for putting the shared SPI in low power mode

Usage
Note: It is recommended that the application be tested by flashing the .bin file onto the serial flash on LaunchPad only. The IAR and CCS debuggers will disconnect on entering low power modes and cannot be used for subsequent debug.


 * Setup a serial communication application (HyperTerminal/TeraTerm). For detail info visit CC31xx & CC32xx Terminal Setting

On the host PC. The settings are:   - Port: Enumerated COM port (XDS110 Class Application/User UART)    - Baud rate: 115200    - Data: 8 bit    - Parity: None    - Stop: 1 bit    - Flow control: None
 * Run the reference application (Flashing the bin).
 * If running from IDE then it'll disconnect from device while device goes to hibernate.


 * Observe the status messages on the host over serial port to understand the sequence of operations performed by the application.
 * The application tries to connect to AP by name cc3220demo by default. In case this fails, the user is prompted to enter the AP name (Security type OPEN) to connect to on HyperTerminal/TeraTerm.
 * An external application listening on UDP broadcasts will be able to receive the messages broadcast. The broadcast happens on port number 5001.
 * Terminal snapshot when application runs on device:



Limitations/Known Issues
None