The LPA middleware for Wi-Fi provides an easy way to make the low-power features available to developers in the form of a portable configuration layer. It provides features implementing low power functionality for MCUs, Wi-Fi, and Bluetooth®; however, the LPA library only needs to be included in applications that use low-power Wi-Fi operation.
The LPA middleware is essentially a Wi-Fi offload manager that is instantiated when Wi-Fi Connection Manager (WCM) initialization is done. The offload manager manages the offload configurations which are created using the Device Configurator. The Device Configurator consists of pin configurations for CYBSP_WIFI_HOST_WAKE
, CYBSP_WIFI_DEVICE_WAKE
, CYBSP_BT_HOST_WAKE
, and CYBSP_BT_DEVICE_WAKE
and the offload configurations.
Note: Pin configurations are not applicable for CYW955913EVK-01.
The LPA middleware library consists of the following components:
-
Configurator tool (using a personality), which makes the low-power features of the system easy to use. This personality writes data structures; after the configuration is saved, it generates cycfg_connectivity_wifi.h,cycfg_connectivity_wifi.c for PSoC™ 6 and cycfg_peripherals.h, cycfg_peripherals.c for CYW955913EVK-01 based on the settings made in the Device Configurator. See the ModusToolbox™ Device Configurator tool guide.
-
The generated source files are compiled and linked in the executable. The API in the generated source will be invoked at system initialization.
- MCU low power
- Wi-Fi and Bluetooth® low power
- Wi-Fi Address Resolution Protocol (ARP) offload
- Wi-Fi packet filter offload
- Wi-Fi TCP keepalive offload
- DHCP Lease Time Renew Offload
- ICMP Offload
- Neighbor Discovery Offload
- NULL Keppalive Offload
- NAT Keepalive Offload
- Wake on Wireless LAN
- MQTT Keepalive Offload
- Bluetooth® Low Power
For more release-specific information, see RELEASE.md
- ModusToolbox™ software v3.2
- Programming Language: C
This library and its features are supported on the following Infineon platforms:
-
PSoC™ 6 Wi-Fi Bluetooth® Prototyping Kit (CY8CPROTO-062-4343W)
-
PSoC™ 62S2 Wi-Fi Bluetooth® Pioneer Kit (CY8CKIT-062S2-43012)
-
PSoC™ 6 Wi-Fi Bluetooth® Pioneer Kit (CY8CKIT-062-WIFI-BT)
-
CY8CEVAL-062S2 + Sterling LWB5Plus (CY8CEVAL-062S2-LAI-4373M2)
-
CY8CEVAL-062S2 + 1YN M.2 module (CY8CEVAL-062S2-MUR-43439M2)
-
CYW955913EVK-01 Wi-Fi Bluetooth® Prototyping Kit (CYW955913EVK-01)
-
PSoC™ 62S2 evaluation kit (CY8CEVAL-062S2-CYW955513SDM2WLIPA)
See the Low Power Assistant Middleware Library Limitations.
-
wifi-core-freertos-lwip-mbedtls: To use the LPA library with FreeRTOS, the application should pull the wifi-core-freertos-lwip-mbedtls library which will internally pull wifi-connection-manager, FreeRTOS, lwIP, mbed TLS, and other dependent modules.
-
wifi-core-threadx-cat5: To use the LPA library with ThreadX (Currently supported only on CYW955913EVK-01), the application should pull the wifi-core-threadx-cat5 library which will internally pull wifi-connection-manager and other dependent modules.
The LPA could be configured using the ModusToolbox™ MCU, Wi-Fi, and Bluetooth® personalities. See the Low Power Assistant middleware library configuration considerations.
See wifi-core-freertos-lwip-mbedtls README Quick start section for basic Makefile changes required .
MCU Deep Sleep Functionality is enabled by default in FreeRTOSConfig.h as follows:
#include <cycfg_system.h>
#if (CY_CFG_PWR_SYS_IDLE_MODE == CY_CFG_PWR_MODE_SLEEP) || (CY_CFG_PWR_SYS_IDLE_MODE == CY_CFG_PWR_MODE_DEEPSLEEP)
extern void vApplicationSleep( uint32_t xExpectedIdleTime );
#define portSUPPRESS_TICKS_AND_SLEEP( xIdleTime ) vApplicationSleep( xIdleTime )
#define configUSE_TICKLESS_IDLE 2
#endif
/* Deep Sleep Latency Configuration */
#if CY_CFG_PWR_DEEPSLEEP_LATENCY > 0
#define configEXPECTED_IDLE_TIME_BEFORE_SLEEP CY_CFG_PWR_DEEPSLEEP_LATENCY
#endif
Currently ThreadX is supported only on CYW955913EVK-01.
See wifi-core-threadx-cat5 README Quick start section for basic Makefile changes required .
MCU Deep Sleep Functionality is enabled by default in CYW955913EVK-01
For Debugging, the application may enable debug, log, and error log messages by updating ol_log_level[]
with LOG_OLA_LVL_DEBUG
.
ol_log_level[LOG_OLA_OLM] = LOG_OLA_LVL_DEBUG;
ol_log_level[LOG_OLA_ARP] = LOG_OLA_LVL_DEBUG;
ol_log_level[LOG_OLA_PF] = LOG_OLA_LVL_DEBUG;
ol_log_level[LOG_OLA_TKO] = LOG_OLA_LVL_DEBUG;
The following resources contain more information:
- LPA middleware RELEASE.md
- Low Power Assistant middleware library
- ModusToolbox™ software environment, quick start guide, documentation, and videos
- LPA middleware code example for FreeRTOS
- ModusToolbox™ Device Configurator tool guide
- PSoC™ 6 technical reference manual
- PSoC™ 63 with Bluetooth® datasheet
All other trademarks or registered trademarks referenced herein are the property of their respective owners.
The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc., and any use of such marks by Infineon is under license.