Skip to content

Commit

Permalink
Upload lpa 5.1.0.5291 [2049]
Browse files Browse the repository at this point in the history
  • Loading branch information
gitlab-runner committed Dec 15, 2023
1 parent a262be0 commit 99a354f
Show file tree
Hide file tree
Showing 13 changed files with 926 additions and 1,082 deletions.
110 changes: 69 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,79 @@
# Low Power Assistant Middleware(LPA) Library
# Low Power Assistant (LPA) middleware library

## Overview

The LPA middleware provides an easy way to make the low-power features available to developers in the form of a portable configuration layer. The LPA library functions are only used by Wi-Fi. LPA provides features for MCU Low Power, Wi-Fi Low Power and Bluetooth Low Power but the LPA library only needs to be included in applications that use Wi-Fi low power.
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 essentailly an WiFi offload manager which is instantiated when WiFi-Connection-Manager initialization is done.
The offload manager gets created and manages the offloads based on the configured offloads using CUSTOM DESIGN MODUS via device configurator created personality in PDL. The PDL personality consists of Pin Configuration for CYBSP_WIFI_HOST_WAKE, CYBSP_WIFI_DEVICE_WAKE, CYBSP_BT_HOST_WAKE and CYBSP_BT_DEVICE_WAKE. The saved design.modus generates the sources (cycfg_connectivity_wifi.h, cycfg_connectivity_wifi.c) which are compiled and linked in the executable for configured Wi-Fi Offloads.
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 configured offloads using a custom *design.modus* file created using the Device Configurator personality in PDL. The PDL personality consists of pin configurations for `CYBSP_WIFI_HOST_WAKE`, `CYBSP_WIFI_DEVICE_WAKE`, `CYBSP_BT_HOST_WAKE`, and `CYBSP_BT_DEVICE_WAKE`. The saved *design.modus* file generates the source files (*cycfg_connectivity_wifi.h* and *cycfg_connectivity_wifi.c*) which are compiled and linked in the executable for configured Wi-Fi offloads.

The LPA middleware library consists of the following components:

LPA middleware 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.c* and *cycfg_connectivity_wifi.h* files based on the settings made in the personality. See the [ModusToolbox™ Device Configurator tool guide](https://www.infineon.com/dgdl/Infineon-ModusToolbox_Device_Configurator_4.10_User_Guide-UserManual-v01_00-EN.pdf?fileId=8ac78c8c88704c7a0188a18bc3c94e70&redirId=180683).

* Configurator tool (using a personality), which makes the low-power features of the system easy to use [ModusToolbox Device Configurator Tool Guide](https://www.infineon.com/dgdl/Infineon-ModusToolbox_Device_Configurator_4.0_User_Guide-UserManual-v01_00-EN.pdf?fileId=8ac78c8c8386267f0183a960bd41598f&utm_source=cypress&utm_medium=referral&utm_campaign=202110_globe_en_all_integration-files&redirId=180683&redirId=VL144). This personality writes data structures and once the configuration is saved it generates cycfg_connectivity_wifi.c and cycfg_connectivity_wifi.h files based on the choices made in the personality.
* The above generated sources (cycfg_connectivity_wifi.h, cycfg_connectivity_wifi.c) are compiled and linked in the executable. The API in the generated source will be invoked at system initialization.
* The LPA configuration is applied from host PSOC6 MCU middleware s/w to IoT wifi-bt Firmware during initialization such as BT low power , ARPOL (ARP Offload) and some of the features such as PFOL(Packet Filter Offload) are applied when host WiFi connection is established with WiFi Access point. TKOL ( TCP Keep-alive offload ) is applied when an TCP connection is established with a remote TCP server.
- The generated source files (*cycfg_connectivity_wifi.h*, *cycfg_connectivity_wifi*.c*) are compiled and linked in the executable. The API in the generated source will be invoked at system initialization.

The LPA configuration is applied from the host PSoC™ 6 MCU middleware to IoT wifi-bt firmware during the initialization such as follows are applied when a host WiFi connection is established with the Wi-Fi AP:
- Bluetooth® low power
- ARP offload (ARPOL)

The following features are applied when a TCP connection is established with a remote TCP server:

- Packet filter offload (PFOL)
- TCP keepalive offload (TKOL)

## 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

For More Release specific information, refer to [RELEASE.md](./RELEASE.md)
- 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

For more release-specific information, see [RELEASE.md](./RELEASE.md)



## Requirements
- [ModusToolbox™ software](https://www.infineon.com/cms/en/design-support/tools/sdk/modustoolbox-software/) v3.1

- [ModusToolbox™ software](https://www.infineon.com/modustoolbox) v3.1
- Programming Language: C

## Supported Platforms
This library and it's features are supported on following Infineon platforms:

* [PSoC 6 Wi-Fi BT Prototyping Kit](https://www.infineon.com/cms/en/product/evaluation-boards/cy8cproto-062-4343w/) (CY8CPROTO-062-4343W)
* [PSoC 62S2 Wi-Fi BT Pioneer Kit](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ckit-062s2-43012/) (CY8CKIT-062S2-43012)
* [PSoC 6 Wi-Fi BT Pioneer Kit](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ckit-062-wifi-bt/) (CY8CKIT-062-WIFI-BT)
* [CY8CEVAL-062S2](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ceval-062s2/) + [Sterling LWB5Plus](https://www.mouser.com/new/laird-connectivity/laird-connectivity-sterling-lwb5plus) (CY8CEVAL-062S2-LAI-4373M2)
* [CY8CEVAL-062S2](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ceval-062s2/) + [1YN M.2 Module](https://www.embeddedartists.com/products/1yn-m-2-module) (CY8CEVAL-062S2-MUR-43439M2)
## Supported platforms

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

- [PSoC™ 6 Wi-Fi Bluetooth® Prototyping Kit](https://www.infineon.com/cms/en/product/evaluation-boards/cy8cproto-062-4343w/) (CY8CPROTO-062-4343W)

- [PSoC™ 62S2 Wi-Fi Bluetooth® Pioneer Kit](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ckit-062s2-43012/) (CY8CKIT-062S2-43012)

- [PSoC™ 6 Wi-Fi Bluetooth® Pioneer Kit](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ckit-062-wifi-bt/) (CY8CKIT-062-WIFI-BT)

- [CY8CEVAL-062S2](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ceval-062s2/) + [Sterling LWB5Plus](https://www.mouser.com/new/laird-connectivity/laird-connectivity-sterling-lwb5plus) (CY8CEVAL-062S2-LAI-4373M2)

- [CY8CEVAL-062S2](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ceval-062s2/) + [1YN M.2 module](https://www.embeddedartists.com/products/1yn-m-2-module) (CY8CEVAL-062S2-MUR-43439M2)

- [PSoC™ 62S2 evaluation kit (CY8CEVAL-062S2-CYW43022CUB)](https://www.infineon.com/cms/en/product/evaluation-boards/cy8ceval-062s2/)


## Limitations
Refer to the [Low Power Assistant Middleware Library Limitations](https://infineon.github.io/lpa/lpa_api_reference_manual/html/index.html).

See the [Low Power Assistant Middleware Library Limitations](https://infineon.github.io/lpa/lpa_api_reference_manual/html/index.html).

## Dependent libraries
This section provides the list of dependent libraries required for this middleware library.

* [wifi-core-freertos-lwip-mbedtls](https://github.com/Infineon/wifi-core-freertos-lwip-mbedtls): To use LPA library, 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-freertos-lwip-mbedtls](https://github.com/Infineon/wifi-core-freertos-lwip-mbedtls): To use the LPA library, 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.

## 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](https://infineon.github.io/lpa/lpa_api_reference_manual/html/index.html).

## Quick Start
The LPA could be configured by the ModusToolbox MCU, WiFi and BT personalities. Refer to the [Low Power Assistant Middleware Library Configuration Considerations](https://infineon.github.io/lpa/lpa_api_reference_manual/html/index.html).

##### FreeRTOS
Refer to [wifi-core-freertos-lwip-mbedtls README](https://github.com/Infineon/wifi-core-freertos-lwip-mbedtls/blob/master/README.md#quick-start) Quick start section for basic makefile changes required .
### FreeRTOS

MCU Deep Sleep Functionality is enabled by default in FreeRTOSConfig.h as below
See [wifi-core-freertos-lwip-mbedtls README](https://github.com/Infineon/wifi-core-freertos-lwip-mbedtls/blob/master/README.md#quick-start) 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>
Expand All @@ -67,31 +90,36 @@ extern void vApplicationSleep( uint32_t xExpectedIdleTime );
```

## Debugging
For Debugging purposes, the application may enable debug, log and error log messages by updating ol_log_level[] with LOG_OLA_LVL_DEBUG.

For Debugging, the application may enable debug, log, and error log messages by updating `ol_log_level[]` with `LOG_OLA_LVL_DEBUG`.

```
eg:
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:
* [LPA Middleware RELEASE.md](./RELEASE.md)
* [Low Power Assistant Middleware Library](https://infineon.github.io/lpa/lpa_api_reference_manual/html/index.html)
* [ModusToolbox Software Environment, Quick Start Guide, Documentation, and Videos](https://www.infineon.com/cms/en/design-support/tools/sdk/modustoolbox-software/)
* [LPA Middleware Code Example for FREERTOS](https://github.com/Infineon/mtb-example-anycloud-wlan-lowpower)
* [ModusToolbox Device Configurator Tool Guide](https://www.infineon.com/dgdl/Infineon-ModusToolbox_Device_Configurator_4.0_User_Guide-UserManual-v01_00-EN.pdf?fileId=8ac78c8c8386267f0183a960bd41598f&utm_source=cypress&utm_medium=referral&utm_campaign=202110_globe_en_all_integration-files&redirId=180683&redirId=VL144)
* [PSoC 6 Technical Reference Manual](https://www.infineon.com/dgdl/Infineon-PSoC_6_MCU_PSoC_63_with_BLE_Architecture_Technical_Reference_Manual-AdditionalTechnicalInformation-v11_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0f946fea01ca&utm_source=cypress&utm_medium=referral&utm_campaign=202110_globe_en_all_integration-technical_reference_manual&redirId=TRM148)
* [PSoC 63 with BLE Datasheet Programmable System-on-Chip datasheet](https://www.infineon.com/dgdl/Infineon-PSoC_6_MCU_PSoC_63_with_BLE_Datasheet_Programmable_System-on-Chip_(PSoC)-DataSheet-v16_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee4efe46c37&utm_source=cypress&utm_medium=referral&utm_campaign=202110_globe_en_all_integration-datasheet&redirId=VL4079)
- [LPA middleware RELEASE.md](./RELEASE.md)
- [Low Power Assistant middleware library](https://infineon.github.io/lpa/api_reference_manual/html/index.html)
- [ModusToolbox&trade; software environment, quick start guide, documentation, and videos](https://www.infineon.com/cms/en/design-support/tools/sdk/modustoolbox-software/?redirId=178597)
- [LPA middleware code example for FreeRTOS](https://github.com/Infineon/mtb-example-anycloud-wlan-lowpower)
- [ModusToolbox&trade; Device Configurator tool guide](https://www.infineon.com/dgdl/Infineon-ModusToolbox_Device_Configurator_4.10_User_Guide-UserManual-v01_00-EN.pdf?fileId=8ac78c8c88704c7a0188a18bc3c94e70&redirId=180683)
- [PSoC&trade; 6 technical reference manual](https://www.infineon.com/dgdl/Infineon-PSoC_6_MCU_PSoC_63_with_BLE_Architecture_Technical_Reference_Manual-AdditionalTechnicalInformation-v11_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0f946fea01ca&utm_source=cypress&utm_medium=referral&utm_campaign=202110_globe_en_all_integration-technical_reference_manual&redirId=TRM148)
- [PSoC&trade; 63 with Bluetooth&reg; datasheet](https://www.infineon.com/dgdl/Infineon-PSoC_6_MCU_PSoC_63_with_BLE_Datasheet_Programmable_System-on-Chip_(PSoC)-DataSheet-v16_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee4efe46c37&utm_source=cypress&utm_medium=referral&utm_campaign=202110_globe_en_all_integration-datasheet&redirId=VL4079)

------
-------

All other trademarks or registered trademarks referenced herein are the property of their respective owners.

The Bluetooth&reg; word mark and logos are registered trademarks owned by Bluetooth SIG, Inc., and any use of such marks by Infineon is under license.


-------------------------------------------------------------------------------

© 2021, Cypress Semiconductor Corporation (an Infineon company) or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
© 2023, Cypress Semiconductor Corporation (an Infineon company) or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
This software, associated documentation and materials ("Software") is owned by Cypress Semiconductor Corporation or one of its affiliates ("Cypress") and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Therefore, you may use this Software only as provided in the license agreement accompanying the software package from which you obtained this Software ("EULA"). If no EULA applies, then any reproduction, modification, translation, compilation, or representation of this Software is prohibited without the express written permission of Cypress.
Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes to the Software without notice. Cypress does not assume any liability arising out of the application or use of the Software or any product or circuit described in the Software. Cypress does not authorize its products for use in any products where a malfunction or failure of the Cypress product may reasonably be expected to result in significant property damage, injury or death ("High Risk Product"). By including Cypress's product in a High Risk Product, the manufacturer of such system or application assumes all risk of such use and in doing so agrees to indemnify Cypress against all liability.
Loading

0 comments on commit 99a354f

Please sign in to comment.