NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
CC3200 Hibernate Application
Contents
Overview[edit]
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[edit]
The objective of this application is to showcase the hibernate as a power saving tool in a networking context (in this case a UDP client). In this example the device wakes up periodically from hibernate and broadcasts a message and then enters hibernate again.
Source Files briefly explained[edit]
- network_if - Common functions to handle connection to AP and FreeRTOS hook functions.
- main - Core UDP braodcast implementation. On entry to main a check is done to check the wakeup cause (power on or HIB).
- gpio_if - Basic GPIO interface APIs.
- pinmux - Assigns a personality to the pins at the device boundary.
- uart_if - To display status information over the UART.
- timer_if - To handle timer for LED blinking.
- startup_* - Tool specific vector table implementation.
Usage[edit]
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
- 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 DemoAP 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[edit]
The HIBernation has a known issue. The chip resets after waking up from Hibernation when the Top die Flash is powered by internal DC-DC. A soultion to this problem is to power the Top Die Flash from an external 3.3V supply.
Links[edit]
{{#invoke: Navbox | navbox }} {{#invoke: Navbox | navbox }}