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 Deepsleep Application

From Texas Instruments Wiki
Jump to: navigation, search
Cc31xx cc32xx return home.png
Cc32xx return sample apps.png

Overview[edit]

DeepSleep is one of the low power modes supported by the CC3200 device. There are various options available to select the module to be active during a low power mode by appropriately configuring the designated registers of the PRCM module and thereby causing an exit from the low power mode based on activity on the chosen active module. The clock to the other modules, that are not chosen to be active, get disabled. The clock is also halved in case of DeepSleep mode.

The various modules that can be clock gated (enabled/disabled) are:

  1. UART
  2. UDMA
  3. TIMER
  4. WDT
  5. GPIO
  6. I2C

Also in the deep sleep mode, activity on the WiFi network triggered by the NWP can also be chosen as a cause for the wakeup.

Application details[edit]

The objective of this application is to showcase the deepsleep as a power saving tool in a networking context (in this case a TCP server). In this example the Idle task hook function available to the application as a FreeRTOS feature is used to enter the deepsleep power mode. Whenever there is activity on the network, the device is brought out of deepsleep state and services the networking sequence. So whenever the networking APIs block, the device enters deepsleep on idle task execution.

Source Files briefly explained[edit]

  • main - Core TCP server implementation. Idle task hook function implementation that enters deepsleep is also present.
  • nw_if - Common functions to handle connection to AP and FreeRTOS hook functions.
  • 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 - Wrapper for timer module driver
  • 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.

    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).
  • 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.
  • Whenever the server starts waiting for a client, connect to the device from an external networking application. The TCP server port number is 5001 and the IP address is available over the UART logs.
  • Notice the exit from the deepsleep whenever a new client connects. There are also other instances of the device entering deepsleep.
Terminal snapshot when application runs on device:
CC3200_deepsleep_nw_terminal_runScreen.png


Limitations/Known Issues[edit]

The uart print to enter deepsleep is placed in the idle hook function which is of lowest priority and hence the print appear jumbled due to context switches. The print is retained only for clarity of the timing of entering deepsleep.

Links[edit]

{{#invoke: Navbox | navbox }} {{#invoke: Navbox | navbox }}

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article CC3200 Deepsleep Application here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article CC3200 Deepsleep Application here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article CC3200 Deepsleep Application here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article CC3200 Deepsleep Application here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article CC3200 Deepsleep Application here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article CC3200 Deepsleep Application here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article CC3200 Deepsleep Application here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article CC3200 Deepsleep Application here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article CC3200 Deepsleep Application here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity