3200的待机功能及网络唤醒功能
您好!
3200的待机功能及网络唤醒功能,是如何实现的?有没有相关的demo?谢谢
CC3200的低功耗模式很多,可以参考如下例程
CC32xx Sleep-DeepSleep Application
Overview
Sleep and DeepSleep are two 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. Camera
2. McASP
3. MMCHS
4. McSPI
5. uDMA
6. GPIOs
7. WatchDOG
8. UART
9. GPT
10. Crypto
11. I2C
Also activity on the WiFi network triggered by the NWP can also be chosen as a cause for the wakeup.
Application details
The objective of this application is to showcase the sleep and deepsleep power modes supported by the CC3200
device using two of the modules.
The modules chosen in this example are:
1. WatchDog Timer based Sleep and DeepSleep
2. General Purpose Timer (GPT) based Sleep and DeepSleep
The device enters the low power modes (sleep/deepsleep) on executing the wifi instructions. Also there are some
pre-requisite settings to be performed before the device enters the low power modes.
Source Files briefly explained
1. gpt_if - APIs to configure the GPT as a one shot timer with specified timeout.
2. pinmux - Pinmux configurations as required by the application.
3. main - Main file that showcases the sleep and deepsleep functionality using the WDT and GPT modules by
invoking the corresponding APIs.
4. uart_if - To display status information over the UART
5. wdt_if - Setup the watchdog timer with the timeout value.
CC32xx Sleep-DeepSleep Application 2
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 Terminal setup
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/IAR/CCS).
• Observe the status messages on the host over serial port to understand the sequence of operations performed by
the application.
Terminal snapshot when application runs on device:
CC32xx Hibernate Application
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
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
• 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
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).
CC32xx Hibernate Application 2
• 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
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.