Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

Low Power Assistant (LPA) middleware library

Overview

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.

Features

  • 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

Note: CYW955913EVK-01 currently supports only ARP offload, packet filter offload and TCP keepalive offload.

Requirements

Supported platforms

This library and its features are supported on the following Infineon platforms:

Limitations

See the Low Power Assistant Middleware Library Limitations.

Dependent libraries

  • 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.

Quick start

The LPA could be configured using the ModusToolbox™ MCU, Wi-Fi, and Bluetooth® personalities. See the Low Power Assistant middleware library configuration considerations.

FreeRTOS

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

ThreadX

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

Debugging

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;

More information

The following resources contain more information:


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.