The PDStack middleware implements state machines defined in the Universal Serial Bus Type-C Cable and Connector Specification and the Universal Serial Bus Power Delivery Specification. The middleware provides a set of Device Policy Manager (DPM) APIs through which the application can initialize, monitor, and configure the middleware operation.
The PDStack middleware operates on top of the USB PD driver included in the MTB PDL CAT2 (mtb-pdl-cat2) peripheral driver library (PDL).
Features:
Include cy_pdstack_common.h, cy_pdstack_dpm.h to get access to all functions and other declarations in this library. See the Quick start guide to start using the PDStack.
See the Supported software and tools section for compatibility information.
See the Changelog section for change history.
PDStack operates on top of the USB PD driver. The USB PD driver has some prerequisites for proper operation. See the "USB PD (USB Power Delivery)" section of the MTB PDL CAT2 (mtb-pdl-cat2) peripheral driver library API reference manual. In addition, see the Limitations and restrictions section for the different PDStack middleware restrictions and limitations.
The PDStack middleware is released in the form of pre-compiled libraries. The following library variants with a different feature set to help limit the memory footprint of the stack in applications are released.
PDStack middleware can be used in various development environments such as ModusToolbo(TM)), MBED, etc. See the Supported software and tools section.
These steps describe the simplest way of enabling the PDStack middleware in the application.
This section consists of instructions on how to configure, and use the PDStack middleware in a design.
This version of the PDStack middleware is validated for compatibility with the following software and tools:
Software and tools | Version |
---|---|
ModusToolbox(TM) software | 3.1 |
mtb-pdl-cat2 | 2.8.0 |
GCC compiler | 10.3.1 |
IAR compiler | 8.42.2 |
Arm(R) compiler 6 | 6.13 |
Version | Changes | Reason for change |
---|---|---|
3.20.1 | Corrected page header of API reference manual. | Defect fix. |
3.20 | Updated to USB PD Revision 3.1 Version 1.8. | Feature addition. |
Added a new library variant 'pmg1_pd3_drp_epr_cfg' that supports configurability of stack parameters through the EZ-PD™ Configuration Utility. | Feature addition. | |
PdStack has been updated to send Hard Reset if the PDO value in the EPR Request does not match the value of the PDO sent in the EPR_Source_Capabilities. | Defect fixes | |
3.10 | Updated to USB PD Revision 3.1 Version 1.7. | Feature addition. |
Added EPR AVS feature support in the EPR sink library. | Feature Addition. | |
Updated the handling of Get Source Info message for DRP. | Defect fixes. | |
3.0 | Added EZ-PD(TM) PMG1 DRP EPR library compliant to USB PD Revision 3.1. | New Library |
Moved software timer and utility functionality to separate PDUtils middleware library. | Feature addition | |
Updated PDStack to use 27 ms and 29 ms for the tSenderResponse timer while in PD 2.0 and PD3.x contracts respectively. Added API to update the tSenderResponse value from the application space. | PD specification updates. | |
EPR Keepalive process is incorrectly getting disabled during some pd transactions. This has been corrected. | Defect fixes. | |
2.0 | Added WLC1 sink library with support for USB Type-C sink operation and USB PD Revision 3.1 messaging.
| WLC1 device support |
1.20 | Added libraries for USB Type-C dual role and sink Extended Power Range (EPR) operation | New feature addition |
Updated the library to work with RTOS | New feature addition | |
Added APIs for changing source/sink pdo capabilities | Feature addition. | |
1.10 | Updated Type-C error recovery period to 250 ms. | PD compliance specification updates. |
Updated the size of the status extended message to 7 bytes. | PD compliance specification updates. | |
USB PD wakeup interrupt is incorrectly getting disabled as part of the software timer operation. This has been corrected. | Defect fixes. | |
API description updated. | Documentation update and clarification. | |
1.0 | Initial version |
For more information, see the following documents: