emUSB-C PD
Embedded SoftwareUSB-C Power Delivery protocol stack supporting Source, Sink, and Dual Role operation with dynamic negotiation up to 20 V / 3 A in under 5.1 KB ROM. Available in India from GSAS.
Roles
Source, Sink, Dual Role (DRP)
Power
Up to 20 V / 3 A negotiation
ROM (full)
5.1 KB
ROM (sink only)
3.8 KB
RAM
450 bytes
License
Royalty-free, one-time payment
Overview
About emUSB-C PD
SEGGER emUSB-C PD is a compact USB-C Power Delivery protocol stack for embedded systems that need to negotiate power delivery over USB Type-C connections. The library implements the full PD protocol as defined by USB-IF, covering Source, Sink, and Dual Role Player (DRP) configurations. With dynamic power supply negotiation up to 20 V / 3 A, emUSB-C PD enables devices to request or provide optimal voltage and current levels, essential for battery-powered products, USB-C chargers, docking stations, and any embedded system that uses USB-C as a power interface.
Minimal Footprint, Flexible Configuration
The stack is architected in two layers: a device-independent protocol layer and a hardware-specific driver layer. Each layer is further divided into a base module (handling CC pin sensing and the application API) and a PD module (managing power delivery packet communication). This separation lets developers tailor the build to their use case, a sink-only configuration requires just 3.8 KB of ROM and 450 bytes of RAM, while the full Source + Sink + DRP stack fits in 5.1 KB of ROM.
| Configuration | ROM | RAM |
|---|---|---|
| Full (Source + Sink + DRP) | 5.1 KB | 450 bytes |
| Sink only | 3.8 KB | 450 bytes |
| Source only | 3.3 KB | 450 bytes |
Integration with the SEGGER USB Stack
emUSB-C PD can be used in combination with emUSB-Host and emUSB-Device for designs that carry both power and data over the same USB-C connector. It can also operate standalone, without any USB data stack, for devices that use USB-C purely as a power source or battery charging interface. Features include dead battery signalling, power role swapping, device detection and identification, and variable supply voltage negotiation. Written in ISO/ANSI C and delivered as source code, emUSB-C PD is portable across compilers and targets with royalty-free, one-time-payment licensing.
Core Capabilities
- Full role coverage: Source, Sink, and Dual Role Player (DRP) in a single codebase, so the same library serves a charger, a chargeable device, or a port that must negotiate either way
- Layered architecture: a device-independent protocol layer separated from the hardware-specific driver layer, and each layer split into a base module (CC pin sensing, application API) and a PD module (power delivery packet handling)
- Configurable build size: sink-only, source-only, and full Source+Sink+DRP builds let a project link in only the roles it needs
- Dead battery support: correctly handles the case where a device has no usable charge at power-on and must still negotiate an initial power contract
- Power role swapping: supports renegotiating which side of a connection sources power mid-session, relevant for docking stations and USB-C hubs
Typical Applications
emUSB-C PD is deployed in USB-C wall chargers and power banks that must advertise and negotiate multiple voltage/current profiles, in battery-powered instruments and industrial handhelds that need to both charge from and, in some cases, power accessories through a single USB-C port, and in docking stations and hubs that pass through power delivery negotiated between a laptop and an external charger. Because the stack is agnostic to whether emUSB-Device or emUSB-Host is present, the same emUSB-C PD codebase can be reused across a product line that ranges from power-only accessories to full USB data-and-power designs, reducing the engineering effort of maintaining separate PD implementations for each variant.
Blog
SEGGER Insights
Choosing a SEGGER Flasher: Standalone vs Gang vs Secure vs Portable
Standalone, gang, secure, or portable, the SEGGER Flasher family covers four different production-programming problems, not one. Here is how Indian engineering and production teams should decide.
J-Trace PRO vs TRACE32: An Honest Comparison for India
SEGGER J-Trace PRO delivers much of the same core streaming-trace capability as Lauterbach TRACE32 for Arm Cortex-M/A/R and RISC-V targets, at a lower cost point. Here is where each platform is the stronger fit for Indian engineering teams.
J-Link PRO vs J-Link ULTRA: Which SEGGER Flagship Debug Probe Should You Buy?
J-Link PRO and J-Link ULTRA share SEGGER's fastest 4 MB/s download class, so the choice comes down to Ethernet. Here is the decision framework Indian engineering teams can apply in two minutes, with a full verified spec comparison.
Related products
More from SEGGER
All SEGGER products →
embOS RTOS
Safety-certified real-time operating system with zero-interrupt-latency, sub-1 KB ROM footprint, and royalty-free licensing across Classic, MPU, Ultra, and Safe editions. India pricing via GSAS.
View embOS RTOS →
emPower OS
Complete embedded operating system integrating RTOS, middleware, security, connectivity, and UI libraries into a single royalty-free platform. Available in India from GSAS.
View emPower OS →
emNet TCP/IP Stack
Dual IPv4/IPv6 TCP/IP stack with TLS 1.3 via emSSL, zero-copy API, and ~30 KB ROM footprint. Includes MQTT, HTTP server/client, FTP, SNMP, DHCP, and DNS. India pricing and local support from GSAS.
View emNet TCP/IP Stack →FAQ
Common questions about emUSB-C PD
What is SEGGER emUSB-C PD?
Is emUSB-C PD royalty-free?
Which SEGGER middleware for USB-C Power Delivery negotiation?
Can I buy SEGGER emUSB-C PD in India?
Can emUSB-C PD run without a USB data stack?
Interested in emUSB-C PD?
Get pricing, an evaluation unit, or a technical consultation from our application engineers.