Usb - PD - R3 - 0 V1.1 20170112
Usb - PD - R3 - 0 V1.1 20170112
Revision: 3.0
Version: 1.1
Release date: 12 January 2017
Contributors
Charles Wang ACON, Advanced-Connectek, Inc.
Conrad Choy ACON, Advanced-Connectek, Inc.
Steve Sedio ACON, Advanced-Connectek, Inc.
Vicky Chuang ACON, Advanced-Connectek, Inc.
Joseph Scanlon Advanced Micro Devices
Caspar Lin Allion Labs, Inc.
Casper Lee Allion Labs, Inc.
Howard Chang Allion Labs, Inc.
Greg Stewart Analogix Semiconductor, Inc.
Mehran Badii Analogix Semiconductor, Inc.
Bill Cornelius Apple
Colin Whitby-Strevens Apple
Corey Axelowitz Apple
Corey Lange Apple
Dave Conroy Apple
David Sekowski Apple
Girault Jones Apple
James Orr Apple
Jason Chung Apple
Jennifer Tsai Apple
Karl Bowers Apple
Keith Porthouse Apple
Matt Mora Apple
Paul Baker Apple
Reese Schreiber Apple
Sameer Kelkar Apple
Sasha Tietz Apple
Scott Jackson Apple
Sree Raman Apple
William Ferry Apple
Zaki Moussaoui Apple
Bernard Shyu Bizlink Technology, Inc.
Eric Wu Bizlink Technology, Inc.
Morphy Hsieh Bizlink Technology, Inc.
Shawn Meng Bizlink Technology Inc.
Tiffany Hsiao Bizlink Technology, Inc.
Weichung Ooi Bizlink Technology, Inc.
Michal Staworko Cadence Design Systems, Inc.
Alessandro Ingrassia Canova Tech
All product names are trademarks, registered trademarks, or service marks of their respective owners.
Copyright © 2010-2017 Apple Inc, Hewlett-Packard Company, Intel Corporation, Microsoft Corporation, Renesas,
STMicroelectronics, and Texas Instruments
All rights reserved.
Editors....................................................................................................................... 2
Contributors .............................................................................................................. 2
Revision History........................................................................................................10
INTELLECTUAL PROPERTY DISCLAIMER ......................................................................11
Table of Contents .....................................................................................................12
List of Tables ............................................................................................................21
List of Figures ...........................................................................................................27
1. Introduction .......................................................................................................35
1.1 Overview ......................................................................................................................................................................................... 35
1.2 Purpose ............................................................................................................................................................................................ 36
1.3 Scope ................................................................................................................................................................................................. 36
1.4 Conventions ................................................................................................................................................................................... 36
1.4.1 Precedence................................................................................................................................................................................ 36
1.4.2 Keywords................................................................................................................................................................................... 36
1.4.3 Numbering ................................................................................................................................................................................ 38
1.5 Related Documents .................................................................................................................................................................... 38
1.6 Terms and Abbreviations........................................................................................................................................................ 39
1.7 Parameter Values ........................................................................................................................................................................ 45
1.8 Changes From Revision 2.0 .................................................................................................................................................... 46
1.9 Compatibility with Revision 2.0........................................................................................................................................... 46
2. Overview ...........................................................................................................47
2.1 Introduction................................................................................................................................................................................... 47
2.2 Section Overview ........................................................................................................................................................................ 48
2.3 Revision 2.0 Changes and Compatibility ......................................................................................................................... 49
2.3.1 Changes From Revision 2.0 .............................................................................................................................................. 49
2.3.2 Compatibility with Revision 2.0 ..................................................................................................................................... 49
2.4 USB Power Delivery Capable Devices ............................................................................................................................... 50
2.5 SOP* Communication ................................................................................................................................................................ 51
2.5.1 Introduction ............................................................................................................................................................................. 51
1.1 Overview
This specification defines how USB Devices can negotiate for more current and/or higher or lower voltages over the
USB cable (using the USB Type-C CC wire as the communications channel) than are defined in the [USB 2.0], [USB 3.1],
[USB Type-C 1.2] or [USBBC 1.2] specifications. It allows Devices with greater power requirements than can be met
with today’s specification to get the power they require to operate from VBUS and negotiate with external power
sources (e.g. Wall Warts). In addition, it allows a Source and Sink to swap power roles such that a Device could supply
power to the Host. For example, a display could supply power to a notebook to charge its battery.
The USB Power Delivery Specification is guided by the following principles:
Works seamlessly with legacy USB Devices
Compatible with existing spec-compliant USB cables
Minimizes potential damage from non-compliant cables (e.g. ‘Y’ cables etc.)
Optimized for low-cost implementations
1.2 Purpose
The USB Power Delivery specification defines a power delivery system covering all elements of a USB system
including: Hosts, Devices, Hubs, Chargers and cable assemblies. This specification describes the architecture,
protocols, power supply behavior, connectors and cabling necessary for managing power delivery over USB at up to
100W. This specification is intended to be fully compatible and extend the existing USB infrastructure. It is intended
that this specification will allow system OEMs, power supply and peripheral developers adequate flexibility for
product versatility and market differentiation without losing backwards compatibility.
USB Power Delivery is designed to operate independently of the existing USB bus defined mechanisms used to
negotiate power which are:
[USB 2.0], [USB 3.1] in band requests for high power interfaces.
[USBBC 1.2] mechanisms for supplying higher power (not mandated by this specification).
[USB Type-C 1.2] mechanisms for supplying higher power
Initial operating conditions remain the USB Default Operation as defined in [USB 2.0], [USB 3.1], [USB Type-C 1.2] or
[USBBC 1.2].
The DFP sources vSafe5V over VBUS.
The UFP consumes power from VBUS.
1.3 Scope
This specification is intended as an extension to the existing [USB 2.0], [USB 3.1], [USB Type-C 1.2] and [USBBC 1.2]
specifications. It addresses only the elements required to implement USB Power Delivery. It is targeted at power
supply vendors, manufacturers of [USB 2.0], [USB 3.1], [USB Type-C 1.2] and [USBBC 1.2] Platforms, Devices and
cable assemblies.
Normative information is provided to allow interoperability of components designed to this specification.
Informative information, when provided, illustrates possible design implementation.
1.4 Conventions
1.4.1 Precedence
If there is a conflict between text, figures, and tables, the precedence Shall be tables, figures, and then text.
1.4.2 Keywords
The following keywords differentiate between the levels of requirements and options.
1.4.2.3 Discarded
Discard, Discards and Discarded are equivalent keywords indicating that a Packet when received Shall be thrown
away by the PHY Layer and not passed to the Protocol Layer for processing. No GoodCRC Message Shall be sent in
response to the Packet.
1.4.2.4 Ignored
Ignore, Ignores and Ignored are equivalent keywords indicating Messages or Message fields which, when received,
Shall result in no special action by the receiver. An Ignored Message Shall only result in returning a GoodCRC
Message to acknowledge Message receipt. A Message with an Ignored field Shall be processed normally except for
any actions relating to the Ignored field.
1.4.2.5 Invalid
Invalid is a keyword when used in relation to a Packet indicates that the Packet’s usage or fields fall outside of the
defined specification usage. When Invalid is used in relation to an Explicit Contract it indicates that a previously
established Explicit Contract which can no longer be maintained by the Source. When Invalid is used in relation to
individual K-codes or K-code sequences indicates that the received Signaling falls outside of the defined specification.
1.4.2.6 May
May is a keyword that indicates a choice with no implied preference.
1.4.2.8 N/A
N/A is a keyword that indicates that a field or value is not applicable and has no defined value and Shall Not be
checked or used by the recipient.
1.4.2.10 Reserved
Reserved is a keyword indicating reserved bits, bytes, words, fields, and code values that are set-aside for future
standardization. Their use and interpretation May be specified by future extensions to this specification and Shall
Not be utilized or adapted by vendor implementation. A Reserved bit, byte, word, or field Shall be set to zero by the
sender and Shall be Ignored by the receiver. Reserved field values Shall Not be sent by the sender and Shall be
Ignored by the receiver.
1.4.2.11 Shall/Normative
Shall and Normative are equivalent keywords indicating a mandatory requirement. Designers are mandated to
implement all such requirements to ensure interoperability with other compliant Devices.
1.4.2.13 Should
Should is a keyword indicating flexibility of choice with a preferred alternative; equivalent to the phrase “it is
recommended that…”.
1.4.2.1 Valid
Valid is a keyword that is the inverse of Invalid indicating either a Packet, Signaling that fall within the defined
specification or an Explicit Contract that can be maintained by the Source.
1.4.3 Numbering
Numbers that are immediately followed by a lowercase "b" (e.g., 01b) are binary values. Numbers that are
immediately followed by an uppercase "B" are byte values. Numbers that are immediately followed by a lowercase
"h" (e.g., 3Ah) or are preceded by “0x” (e.g. 0xFF00) are hexadecimal values. Numbers not immediately followed by
either a "b", “B”, or "h" are decimal values.
Term Description
Active Cable A cable with a USB Plug on each end at least one of which is a Cable Plug supporting SOP’,
that also incorporates data bus signal conditioning circuits. The cable supports the
Structured VDM Discover Identity Command to determine its characteristics in addition to
other Structured VDM Commands (Electronically Marked Cable see [USB Type-C 1.2]).
Active Mode A Mode which has been entered and not exited.
Alternate Mode As defined in [USB Type-C 1.2]. Equivalent to Mode in the PD Specification.
Alternate Mode Adapter A PDUSB Device which supports Alternate Modes as defined in [USB Type-C 1.2]. Note that
(AMA) since an AMA is a PDUSB Device it has a single UFP that is only addressable by SOP Packets.
Alternate Mode Controller A DFP that supports connection to AMAs as defined in [USB Type-C 1.2]. A DFP that is an
(AMC) AMC can also be a PDUSB Host.
Augmented Power Data Data Object used to expose a Source Port’s power capabilities or a Sink’s power requirements
Object (APDO) as part of a Source_Capabilities or Sink_Capabilities Message respectively. Programmable
Power Supply Data Object is defined.
Atomic Message Sequence A fixed sequence of Messages as defined in Section 8.3.2 typically starting and ending in one
(AMS) of the following states: PE_SRC_Ready, PE_SNK_Ready or PE_CBL_Ready. An AMS can be
Interruptible or Non-interruptible.
Attach Mechanical joining of the Port Pair by a cable.
Attached USB Power Delivery ports which are mechanically joined with USB cable.
Battery A power storage device residing behind a Port that can either be a source or sink of power.
Battery Supply A power supply that directly applies the output of a Battery to VBUS. This is exposed by the
Battery Supply PDO (see Section 6.4.1.2.4)
Binary Frequency Shift A Signaling Scheme now Deprecated in this specification. BFSK used a pair of discrete
Keying (BFSK) frequencies to transmit binary (0s and 1s) information over VBUS. See [USBPD 2.0] for
further details.
Biphase Mark Coding Modification of Manchester coding where each zero has one transition and a one has two
(BMC) transitions (see [IEC 60958-1]).
BIST Built In Self-Test – Power Delivery testing mechanism for the PHY Layer.
BIST Data Object (BDO) Data Object used by BIST Messages.
BIST Mode A BIST receiver or transmitter test mode enabled by a BIST Message.
Cable Plug Term used to describe a PD Capable element in a Multi-Drop system addressed by SOP’/SOP’’
Packets. Logically the Cable Plug is associated with a USB plug at one end of the cable. In a
practical implementation the electronics might reside anywhere in the cable.
Cable Reset This is initiated by Cable Reset Signaling from the DFP. It restores the Cable Plugs to their
default, power up condition and resets the PD communications engine to its default state. It
does not reset the Port Partners but does restore VCONN to its Attachment state.
Chunk A MaxExtendedMsgChunkLen (26 byte) or less portion of a Data Block. Data Blocks can be
sent either as a single Message or as a series of Chunks.
Chunking The process of breaking up a Data Block larger than MaxExtendedMsgLegacyLen (26-bytes)
into two of more Chunks.
Cold Socket A Port that does not apply vSafe5V on VBUS until a Sink is Attached.
2.1 Introduction
In USB Power Delivery, pairs of directly Attached ports negotiate voltage, current and/or direction of power flow over
the USB cable, using the USB Type-C connector’s CC wire as the communications channel. The mechanisms used,
operate independently of other USB methods used to negotiate power.
USB Power Delivery also acts as a side-band channel enabling support for Standard or Vendor defined Modal
Operation. Modes are associated with a Standard or Vendor ID (SVID). Power Delivery Structured VDM Messages can
be used to discover supported SVIDs and Modes and then to enter and exit Modes as required. Multiple Active Modes
can also be in operation at the same time.
Any Contract negotiated using this specification, supersedes any and all previous power contracts established
whether from standard [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] mechanisms. While in Power Delivery
Mode there will be a Contract in place (either Explicit or Implicit) determining the power level available and the
direction of that power. The Port Pair remains in Power Delivery Mode until the Port Pair is Detached, there is a Hard
Reset or the Source removes power (except during a Power Role Swap or Fast Role Swap when the initial Source
removes power in order to for the new Source to apply power).
An Explicit Contract is negotiated by the process of the Source sending a set of Capabilities, from which the Sink is
required to request a particular capability and then the Source accepting this request.
An Implicit Contract is the specified level of power allowed in particular states (i.e. during and after a Power Role
Swap or Fast Role Swap). Implicit Contracts are temporary; Port Pairs are required to immediately negotiate an
Explicit Contract.
Each Provider has a Local Policy, governing power allocation to its Ports. Sinks also have their own Local Policy
governing how they draw power. A System Policy can be enacted over USB that allows modification to these local
policies and hence management of overall power allocation in the system.
When PD Capable devices are Attached to each other, the DFPs and UFPs initially default to standard USB Default
Operation. The DFP supplies vSafe5V and the UFP draws current in accordance with the rules defined by [USB 2.0],
[USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] specifications. After Power Delivery negotiation has taken place power
can be supplied at higher, or lower, voltages and higher currents than defined in these specifications. It is also
possible to perform a Power Role Swap or Fast Role Swap to exchange the power supply roles such that the DFP
receives power and the UFP supplies power, to perform a Data Role Swap such that the DFP becomes the UFP and
vice-versa and to perform a VCONN Swap to change the end supplying VCONN to the cable.
Prior to an Explicit Contract the Source can discover the capabilities of the Attached cable assembly. This is important
for [USB Type-C 1.2] where 5A cabling is marked as well as other details of the cable assembly such as the supported
speed. Cable discovery occurs on initial Attachment of a Port Pair, before an Explicit Contract has been established
where the DFP is the Source. It is also possible to carry out cable discovery after a Power Role Swap or Fast Role Swap
prior to establishing an Explicit Contract, where the UFP is the Source and an Implicit Contract is in place.
Once an Explicit Contract is in place only the DFP is permitted to communicate with the Attached cable assembly. This
communication can consist of discovering capabilities but can also include discover of SVIDs, Modes and the
entering/exiting of Modes supported by the cable assembly.
Section 1 Introduction, conventions used in the document, list of terms and abbreviations, references and details
of parameter usage.
Section 2 Overview of the document including a description of the operation of PD and the architecture.
Section 3 Mechanical and electrical characteristics of the cables and connectors used by PD. Section
Deprecated. See [USBPD 2.0] for legacy PD connector specification.
Section 4 Electrical requirements for Dead Battery operation and cable detection.
Section 6 Protocol Layer requirements including the Messages, timers, counters and state operation.
Optional Optional
Power input Feature
Power input
Each USB Power Delivery capable device is assumed to be made up of at least one Port. Providers are assumed to
have a Source and Consumers a Sink. Each device contains one, or more, of the following components:
UFPs that:
o Sink power.
o Optionally source power (a Dual-Role Power Device).
o Optionally communicate via USB.
o Communicate using SOP Packets.
o Optionally Communicate using SOP* Packets.
DFPs that:
o Source power.
o Optionally Sink power (a Dual-Role Power Device).
o Optionally communicate via USB.
o Communicate using SOP Packets.
o Optionally Communicate using SOP* Packets.
A Source that can be:
o An external power source e.g. AC.
o Power Storage (e.g. Battery).
o Derived from another Port (e.g. bus-powered Hub).
Figure 2-2 Example SOP’ Communication between VCONN Source and Cable Plug(s)
Cable Cable
VCONN Source Plug1 Plug1
VCONN Electronically Marked Cable
(DFP/UFP) (SOP’) (SOP’’)
SOP’
signaling
SOP’’
signaling
SOP signaling
Provider Consumer
Device Policy Device Policy
Manager Manager
Protocol Protocol
CC
Additionally USB Power Delivery devices which can operate as USB devices can communicate over USB (see Figure
2-4). An Optional System Policy Manager (see Chapter 9) that resides in the USB Host communicates with the PD
Device over USB, via the root Port and potentially over a tree of USB Hubs. The Device Policy Manager interacts with
the USB interface in each device in order to provide and update PD related information in the USB domain. Note that a
PD device is not required to have a USB device interface.
USB Host
System Policy
Manager
PD USB
Device
USB Interface
(optional)
Device Policy
Manager
Policy Engine
Protocol
Physical Layer
CC
Figure 2-5 shows the logical blocks between two Attached PD ports. In addition to the communication stack
described above there are also:
For a Provider or Dual-Role Power Device: one or more Sources providing power to one or more ports.
For a Consumer or Dual-Role Power Device: a Sink consuming power.
A USB-C Port Control module (see Section4.4) that detects cable Attach/Detach as defined in [USB Type-C 1.2].
USB Power Delivery uses standard cabling as defined in [USB Type-C 1.2].
The Device Policy Manager talks to the communication stack, Source/Sink and the USB-C Port Control block in order
to manage the resources in the Provider or Consumer.
Figure 2-5 illustrates a Provider and a Consumer. Dual-Role Power Devices can be constructed by combining the
elements of both Provider and Consumer into a single device. Providers can also contain multiple Source Ports each
with their own communications stack and USB-C Port Control.
Provider Consumer
BMC BMC
VBUS
CC
2.7.1 Policy
There are two possible levels of Policy:
1) System Policy applied system wide by the System Policy Manager across multiple Providers or Consumers.
2) Local Policy enforced on a Provider or Consumer by the Device Policy Manager.
Policy comprises several logical blocks:
System Policy Manager (system wide).
Device Policy Manager (one per Provider or Consumer).
Policy Engine (one per Source or Sink Port).
2.7.4.2 Sink
Consumers are assumed to have one Sink connected to a Port. This Sink is controlled by Local Policy. Sinks start up in
USB Default Operation where the Port can operate at vSafe5V with USB default specified current levels and return to
this state on Detach or after a Hard Reset.
2.7.5 DFP/UFP
2.7.5.1 Downstream Facing Port (DFP)
The Downstream Facing Port or DFP is equivalent in the USB topology to the USB A-Port. The DFP will also
correspond to the USB Host but only if USB Communication is supported while acting as a DFP. Products such as Wall
Warts can be a DFP while not having USB Communication capability. The DFP also acts as the bus master when
controlling alternate mode operation.
A list of the ordered sets used by USB Power Delivery can be seen in Table 5-2. SOP* is a generic term used in place of
SOP/SOP’/SOP’’.
The receiver Shall search for all four K-codes and when it finds either three out of four or all four in the correct place,
it May interpret it as a Valid ordered set (see Table 5-3).
Unencoded Encoded
Byte 8-bits 10-bits
Word 16-bits 20- bits
DWord 32-bits 40-bits
LEGEND:
Training sequence provided by the Provided by the Physical Provided by the Protocol
Physical layer, not encoded with 4b5b layer, encoded with 4b5b layer, encoded with 4b5b
5.6.1.1 Preamble
The Preamble is used to achieve lock in the receiver by presenting an alternating series of "0s" and "1s", so the
average frequency is the carrier frequency. Unlike the rest of the packet, the Preamble Shall Not be 4b/5b encoded.
The Preamble Shall consist of a 64-bit sequence of alternating 0s and 1s. The Preamble Shall start with a "0" and
Shall end with a "1".
A Power Delivery Capable Source or Sink Shall be able to detect and communicate with packets using SOP. If a Valid
SOP is not detected (see Table 5-3) then the whole transmission Shall be Discarded.
Sending and receiving of SOP Packets Shall be limited to PD Capable Ports on PDUSB Hosts and PDUSB Devices. Cable
Plugs Shall neither send nor receive SOP Packets. Note that PDUSB Devices, even if they have the physical form of a
cable (e.g. AMAs), are still required to respond to SOP Packets.
A Cable Plug capable of SOP’ Communications Shall only detect and communicate with packets starting with SOP’.
A Port needing to communicate with a Cable Plug capable of SOP’ Communications, Attached between a Port Pair will
be able to communicate using both packets starting with SOP’ to communicate with the Cable Plug and starting with
SOP to communicate with its Port Partner.
For a Cable Plug supporting SOP’ Communications, if a Valid SOP’ is not detected (see Table 5-3) then the whole
transmission Shall be Discarded. For a Port supporting SOP’ Communications if a Valid SOP or SOP’ is not detected
(see Table 5-3) then the whole transmission Shall be Discarded. When there is no Explicit Contract or an Implicit
Contract in place a Sink Shall Not send SOP’ Packets and Shall Discard all packets starting with SOP’.
A Cable Plug capable of SOP’’ Communication, Shall have a SOP’ Communication capability in the other Cable Plug. No
cable Shall only support SOP’’ Communication. A Cable Plug to which SOP’’ Communication is assigned Shall only
detect and communicate with packets starting with SOP’’ and Shall Discard any other packets.
A Port needing to communicate with such a Cable Plug, Attached between a Port Pair will be able to communicate
using packets starting with SOP’ and SOP’’ to communicate with the Cable Plugs and packets starting with SOP to
communicate with its Port Partner. A Port which supports SOP’’ Communication Shall also support SOP’
Communication and Shall co-ordinate SOP* Communication so as to avoid collisions.
For the Cable Plug supporting SOP’’ Communication, if a Valid SOP’’ is not detected (see Table 5-3) then the whole
transmission Shall be Discarded. For the Port if a Valid SOP* is not detected (see Table 5-3) then the whole
transmission Shall be Discarded.
5.6.1.4 CRC
The CRC Shall be inserted just after the payload. It is described in Section 5.6.2.
5.6.2 CRC
The Message Header and data Shall be protected by a 32-bit CRC.
CRC-32 protects the data integrity of the data payload. CRC-32 is defined as follows:
The CRC-32 polynomial Shall be = 04C1 1DB7h.
The CRC-32 Initial value Shall be = FFFF FFFFh.
CRC-32 Shall be calculated for all bytes of the payload not inclusive of any packet framing symbols (i.e. excludes
the Preamble, SOP*, EOP).
CRC-32 calculation Shall begin at byte 0 bit 0 and continue to bit 7 of each of the bytes of the packet.
The remainder of CRC-32 Shall be complemented.
The residual of CRC-32 Shall be C704 DD7Bh.
Note: This inversion of the CRC-32 remainder adds an offset of FFFF FFFFh that will create a constant CRC-32
residual of C704 DD7Bh at the receiver side.
Note: The CRC implementation is identical to the one used in [USB 3.1].
A device Shall perform a Hard Reset when it receives Hard Reset Signaling. After receiving the Hard Reset Signaling,
the device Shall reset as described in Section 6.8.2. If a Valid Hard Reset is not detected (see Table 5-3) then the
whole transmission Shall be Discarded.
A Cable Plug Shall perform a Hard Reset when it detects Hard Reset Signaling being sent between the Port Partners.
After receiving the Hard Reset Signaling, the device Shall reset as described in Section 6.8.2.
The procedure for sending Hard Reset Signaling Shall be as follows:
1. If the PHY Layer is currently sending a Message, the Message Shall be interrupted by sending an EOP K-code and
the rest of the Message Discarded.
2. If CC is not idle, wait for it to become idle (see Section 5.8.6.1).
3. Wait tInterFrameGap.
4. If CC is still idle send the Preamble followed by the 4 K-codes for Hard Reset Signaling.
5. Disable the channel (i.e. stop sending and receiving), reset the PHY Layer and inform the Protocol Layer that the
PHY Layer has been reset.
6. Re-enable the channel when requested by the Protocol Layer.
Figure 5-5 shows the line format of Hard Reset Signaling which is a Preamble followed by the Hard Reset Ordered
Set.
LEGEND:
Preamble provided by the Physical layer, Provided by the Physical
not encoded with 4b5b layer, encoded with 4b5b
Cable Reset Signaling Shall only be sent by the DFP. The Cable Reset Ordered Set is used to reset the Cable Plugs
without the need to Hard Reset the Port Partners. The state of the Cable Plug after the Cable Reset Signaling Shall be
equivalent to power cycling the Cable Plug.
Figure 5-6 shows the line format of Cable Reset Signaling which is a Preamble followed by the Cable Reset Ordered
Set.
LEGEND:
Preamble provided by the Physical layer, Provided by the Physical
not encoded with 4b5b layer, encoded with 4b5b
CRC
CRC
The USB PD baseband signal Shall be driven on the CC wire with a tristate driver that Shall cause a vSwing swing on
CC. The tristate driver is slew rate limited (see min rise/fall time in Section 5.8.5) to limit coupling to D+/D- and to
other signal lines in the USB Type-C fully featured cables (see [USB Type-C 1.2]). This slew rate limiting can be
performed either with driver design or an RC filter on the driver output.
When sending the Preamble, the transmitter Shall start by transmitting a low level. The receiver Shall tolerate the
loss of the first edge. The transmitter May vary the start of the Preamble by tStartDrive min (see Figure 5-10).
Figure 5-11 Transmitting or Receiving BMC Encoded Frame Terminated by Zero with High-to-Low Last Transition
Figure 5-12 Transmitting or Receiving BMC Encoded Frame Terminated by One with High-to-Low Last Transition
If the trailing edge results in the transmitter driving CC high (i.e. the final half-UI of the frame is low), then the
transmitter:
1. Shall continue to drive CC high for 1 UI.
2. Then Shall drive CC low for tHoldLowBMC.
3. Then Shall continue to drive CC low for tEndDriveBMC measured from the final edge of the final bit of the Frame.
4. Then Shall release CC to high impedance.
Figure 5-13 illustrates the ending of a BMC encoded Frame that ends with an encoded zero for which the final bit of
the Frame is terminated by a low to high transition. Figure 5-14 illustrates the ending of a BMC encoded Frame that
ends with an encoded one for which the final bit of the Frame is terminated by a low to high transition. Both figures
also illustrate the tInterFrameGap timing requirement before the start of the next Frame when the Port has either
been transmitting or receiving the previous Frame (see Section 5.8.5.4).
Figure 5-14 Transmitting or Receiving BMC Encoded Frame Terminated by One with Low to High Last Transition
Note: There is no requirement to maintain a timing phase relationship between back-to-back packets.
Y2Rx Lower Bound of Inner Mask Y3Rx – 0.205 when sourcing power1
or sinking power1 V
Y3Rx – 0.33 when power neutral1
Y3Rx Center line of Inner Mask 0.6875 Sourcing Power1 V
0.5625 Power Neutral1
0.4375 Sinking Power1
Y4Rx Upper bound of Inner mask Y3Rx + 0.205 when sourcing power1 or sinking power1 V
Y3Rx + 0.33 when power neutral1
Y5Rx Upper bound of the Outer mask 1.5325 V
Note 1: The position of the center line of the Inner Mask is dependent on whether the receiver is Sourcing or Sinking power or
is Power Neutral (see earlier in this section).
Transmitter Load
Model Output
Cable Model Receiver
Rp Load Model
rOutput Connector La
cCablePlug_CC
cCablePlug_CC
cShunt ca ca Rd cReceiver
2 2
Transmitter Load
Model Output
Cable Model Receiver
Rp Load Model
rOutput Connector La
cCablePlug_CC
cCablePlug_CC
Rd cShunt ca ca cReceiver
2 2
The transmitter system components rOutput and cShunt are illustrated for informative purposes, and do not form part
of the transmitter load model. See Section 5.8.5 for a description of the transmitter system design.
The value of the modeled cable inductance, La, (in nH) Shall be calculated from the following formula:
𝐿𝑎 = 𝑡𝐶𝑎𝑏𝑙𝑒𝐷𝑒𝑙𝑎𝑦_𝐶𝐶𝑚𝑎𝑥 ∗ 𝑧𝐶𝑎𝑏𝑙𝑒_𝐶𝐶𝑚𝑖𝑛
tCableDelay_CC is the modeled signal propagation delay through the cable, and zCable_CC is the modeled cable
impedance.
The modeled cable inductance is 640 nH for a cable with zCable_CCmin = 32 Ω and tCableDelay_CCmax = 20 nS.
The value of the modeled cable capacitance, Ca, (in pF) Shall be calculated from the following formula:
𝑡𝐶𝑎𝑏𝑙𝑒𝐷𝑒𝑙𝑎𝑦_𝐶𝐶𝑚𝑎𝑥
𝐶𝑎 =
𝑧𝐶𝑎𝑏𝑙𝑒_𝐶𝐶𝑚𝑖𝑛
The modeled cable capacitance is Ca = 625 pF for a cable with zCable_CCmin = 32 Ω and tCableDelay_CCmax = 20 nS.
Therefore, Ca/2 = 312.5 pF.
cCablePlug_CC models the capacitance of the plug at each end of the cable. cReceiver models the capacitance of the
receiver. The maximum values Shall be used in each case.
Note: the transmitter load model assumes that there are no other return currents on the ground path.
rOutput
cShunt zDriver
The transmitter Shall have the same pBitRate for all packet types. The BIST Carrier Mode and Bit Stream signals are
continuous signals without a payload. When checking pBitRate any set of 1044 bits (20 bit SOP followed by 1024
PRBS bits) within a continuous signal May be considered as the part of the packet following the Preamble and the 32
preceding bits considered to be the last 32 bits of the Preamble used to compute refBitRate .
tInterFrameGap
tEndDriveBMC tStartDrive
The transmitter Shall drive the bus for no longer than tEndDriveBMC after transmitting the final bit of the Frame.
5.8.6.2 Multi-Drop
The BMC Signaling Scheme is suitable for use in Multi-Drop configurations containing one or two BMC Multi-Drop
transceivers connected to the CC wire, for example where one or both ends of a cable contains a Multi-Drop
transceiver. In this specification the location of the Multi-Drop transceiver is referred to as the Cable Plug.
Figure 5-27 below illustrates a typical Multi Drop configuration with two DRPs.
The Multi-Drop transceiver Shall obey all the electrical characteristics specified in this section except for those
relating to capacitance. The maximum capacitance allowed for the Multi-Drop node when not driving the line is
cCablePlug_CC defined in [USB Type-C 1.2] . There are no constraints as to the distance of the Multi-Drop transceiver
from the end of the plug. The Multi-Drop transceiver(s) May be located anywhere along the cable including the plugs.
The Multi-Drop transceiver suffers less from ground offset compared to the transceivers in the host or device and
contributes no significant reflections.
It is possible to have a configuration at Attach where one Port is able to be a Vconn Source and the other Port is not
able to be a Vconn Source, such that there is no switch in the second Port. An example of a DFP with a switch Attached
to a UFP without a switch is outlined in Figure 5-28. The capacitance on the CC line for a Port not able to be a VCONN
Source Shall still be within cReceiver except when transmitting.
... CRC
EOP (End Of
Packet)
LEGEND:
6.2 Messages
This specification defines three types of Messages:
Control Messages that are short and used to manage the Message flow between Port Partners or to exchange
Messages that require no additional data. Control Messages are 16 bits in length.
Data Messages that are used to exchange information between a pair of Port Partners. Data Messages range from
48 to 240 bits in length.
o There are three types of Data Messages:
Those used to expose capabilities and negotiate power
Those used for the BIST
Those that are Vendor Defined
Extended Messages that are used to exchange information between a pair of Port Partners. Extended Messages
are up to MaxExtendedMsgLen bytes.
o There are several types of Extended Messages:
Those used for Source and Battery information
Those used for Security
Those used for Firmware Update
Those that are vendor defined
Figure 6-1 USB Power Delivery Packet Format including Control Message Payload
SOP* (Start Message Header EOP (End Of
Preamble CRC
Of Packet) (16 bit) Packet)
Legend:
Figure 6-2 USB Power Delivery Packet Format including Data Message Payload
SOP* (Start Message Header EOP (End Of
Preamble 0..7 Data Object(s) CRC
Of Packet) (16 bit) Packet)
Legend:
Figure 6-3 illustrates an Extended Message as part of a Packet showing the parts are provided by the Protocol and
PHY Layers.
Figure 6-3 USB Power Delivery Packet Format including an Extended Message Header and Payload
SOP* (Start Message Header Extended Message Header EOP (End Of
Preamble Data (0..260 bytes) CRC
Of Packet) (16 bit) (16 bit) Packet)
Legend:
6.2.1.1.1 Extended
The 1-bit Extended field Shall be set to zero to indicate a Control Message or Data Message and set to one to indicate
an Extended Message.
The Extended field Shall apply to all SOP* Packet types.
6.2.1.1.3 MessageID
The 3-bit MessageID field is the value generated by a rolling counter maintained by the originator of the Message.
The MessageIDCounter Shall be initialized to zero at power-on as a result of a Soft Reset, or a Hard Reset. The
MessageIDCounter Shall be incremented when a Message is successfully received as indicated by receipt of a
GoodCRC Message. Note: the usage of MessageID during testing with BIST Messages is defined in
[USBPDCompliance].
The MessageID field Shall apply to all SOP* Packet types.
6.2.1.2.1 Chunked
The Port Partners Shall use the Unchunked Extended Messages Supported fields in the Source_Capabilities Message
and the Request Message to determine whether to send Messages of Data Size > MaxExtendedMsgLegacyLen bytes in
a single Unchunked Extended Message (see Section 6.4.1.2.2.6 and Section 6.4.2.6).
When either Port Partner only supports Chunked Extended Messages:
1. The Chunked bit in every Extended Message Shall be set to one
2. Every Extended Message of Data Size > MaxExtendedMsgLegacyLen Shall be transmitted between the Port
Partners in Chunks
3. The Number of Data Objects in the Message Header Shall indicate the number of Data Objects in the Message
padded to the 4-byte boundary including the Extended Header as part of the first Data Object.
4. Point 1, Point 2 and Point 3 above Shall apply until the Port Pair is Detached, there is a Hard Reset or the Source
removes power (except during a Power Role Swap or Fast Role Swap when the initial Source removes power in
order to for the new Source to apply power).
When both Port Partners support Unchunked Extended Messages:
1. The Chunked bit in every Extended Message Shall be set to zero.
2. Every Extended Message Shall be transmitted between the Port Partners Unchunked
3. The Number of Data Objects in the Message Header is Reserved.
4. Point 1, Point 2 and Point 3 above Shall apply until the Port Pair is Detached, there is a Hard Reset or the Source
removes power (except during a Power Role Swap or Fast Role Swap when the initial Source removes power in
order to for the new Source to apply power).
When sending Extended Messages to the Cable Plug the VCONN Source Shall only send Chunked Messages. Cable Plugs
Shall always send Extended Messages of Data Size > MaxExtendedMsgLegacyLen Chunked and Shall set the
Chunked bit in every Extended Message to one.
When Extended Messages are supported Chunking Shall be supported.
Page 100 USB Power Delivery Specification Revision 3.0, Version 1.1
In a request for data the Chunk Number field indicates the number of the Chunk being requested. The requestor
Shall only set this field to one of the following values:
Zero to request the first Chunk in the series
The number of the last received Chunk in the series
The number of the next Chunk in the series (the next Chunk after the last received Chunk)
In the requested Data Block the Chunk Number field indicates the number of the Chunk being returned. The Chunk
number for each Chunk in the series Shall start at zero and Shall increment for each Chunk by one up to a maximum
of 9 corresponding to 10 Chunks in total.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 101
Table 6-4 Use of Unchunked Message Supported bit
GoodCRC
esponse
Security_R ked = 0)
= 30 Chun
,
(Data Size
GoodCRC
Figure 6-5 details the Security_Request Message shown in Figure 6-4. The figure shows the byte ordering on the bus
as well as the fact that there is no padding in this case. The Number of Data Objects field has a value of 0 since it is
Reserved when the Chunked bit is zero. The Data Size field indicates the length of the Extended Message when the
Chunked bit is set to 0, which in this case is 7 bytes.
Figure 6-5 Example byte transmission for Security_Request Message of Data Size 7 (Chunked bit is set to 0)
Figure 6-6 details the Security_Response Message shown in Figure 6-4. The figure shows the byte ordering on the
bus as well as the fact that there is no padding in this case. The Number of Data Objects field has a value of 0 since it
is Reserved when the Chunked bit is zero. The Data Size field indicates the length of the Extended Message when the
Chunked bit is set to 0, which in this case is 30 bytes.
Page 102 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 6-6 Example byte transmission for Security_Response Message of Data Size 7 (Chunked bit is set to 0)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 103
Figure 6-7 Example Security_Request sequence Chunked (Chunked bit = 1)
GoodCRC
Security_Response
esponse
Security_R bjects = 7,
r of D ataO
(Numbe un k Number
= 0,
1, Ch
Chunked = = 0, D ata Size =
30)
un k
Request Ch
GoodCRC
Security_R
espons
(Number of e “Chunk request”
Chunked = Data Objec
1, ts = 1,
Request Ch Chunk Number = 1,
unk = 1, D
ata Size =
0)
GoodCRC
esponse
Security_R bjects = 2,
of D ataO
(Number umber = 1,
d = 1, Chunk N )
Ch un ke
0, D ata Size = 30
unk =
Request Ch
GoodCRC
Figure 6-8 shows the Security_Request Message shown in Figure 6-7 in more detail including the byte ordering on the
bus and padding. Three bytes of padding have been added to the Message so that the total number of bytes is a
multiple of 32-bits, corresponding to 3 Data Objects. The Number of Data Objects field is set to 3 to indicate the
length of this Chunk. The Chunk Number is set to zero and the Data Size field is set to 7 to indicate the length of the
whole Extended Message.
Page 104 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 6-8 Example Security_Request Message of Data Size 7 (Chunked bit set to 1)
Extended Message
Message Header
Header
(16 bit)
Message Type =
(16 bit)
Chunked = 1 Data (7 bytes) Padding (3 bytes)
Security_Request
Number of Data Chunk Number = 0
Request Chunk = 0
Objects = 3
Data Size = 7
Figure 6-9 shows Chunk Number zero of the Security_Response Message shown in Figure 6-7 in more detail
including the byte ordering on the bus and padding. No padding is need for this Chunk since the full 26-byte payload
plus 2-byte Extended Message Header is a multiple of 32-bits, corresponding to 7 Data Objects. The Number of Data
Objects field is set to 7 to indicate the length of this Chunk and the Data Size field is set to 30 to indicate the length of
the whole Extended Message.
Figure 6-9 Example Chunk 0 of Security_Response Message of Data Size 30 (Chunked bit set to 1)
Extended Message
Message Header
Header
(16 bit)
Message Type =
(16 bit)
Chunked = 1 Data (26 bytes)
Security_Response
Number of Data Chunk Number = 0
Request Chunk = 0
Objects = 7
Data Size = 30
Figure 6-10 shows an example of the Message format, byte ordering and padding for the Security_Response Message
Chunk request for Chunk Number one shown in Figure 6-7. In the Chunk request the Number of Data Objects field in
the Message is set to 1 to indicate that the payload is 32 bits equivalent to 1 data object. Since the Chunked bit is set
to 1 the Chunk request/Chunk response mechanism is used. The Message is a Chunk request so the Request Chunk
bit is set to one, and in this case Chunk one is being requested so Chunk Number is set to one. Data Size is set to 0
indicating the length of the Data Block being transferred. Two bytes of padding are added to ensure that the payload
is a multiple of 32 bits.
Figure 6-10 Example byte transmission for a Security_Request Message Chunk request (Chunked bit is set to 1)
Extended Message
Message Header
Header
(16 bit)
Message Type =
(16 bit)
Chunked = 1 Padding (2 bytes)
Security_Response
Number of Data Chunk Number = 1
Request Chunk = 1
Objects = 1
Data Size = 0
Data Object 0
Figure 6-11 shows Chunk Number one of the Security_Response Message shown in Figure 6-7 in more detail
including the byte ordering on the bus and padding. Two bytes of padding are added to ensure that the payload is a
multiple of 32 bits, corresponding to 2 Data Objects. The Number of Data Objects field is set to 2 to indicate the
length of this Chunk and the Data Size field is set to 30 to indicate the length of the whole Extended Message.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 105
Figure 6-11 Example Chunk 1 of Security_Response Message of Data Size 30 (Chunked bit set to 1)
Extended Message
Message Header
Header
(16 bit)
Message Type =
(16 bit)
Chunked = 1 Data (4 bytes) Padding (2 bytes)
Security_Request
Number of Data Chunk Number = 1
Request Chunk = 0
Objects = 2
Data Size = 30
Page 106 USB Power Delivery Specification Revision 3.0, Version 1.1
Bits Message Type Sent by Description Valid Start
4…0 of Packet
1 0011 FR_Swap Sink1 See Section 6.3.17 SOP only
1 0100
Get_PPS_Status Sink See Section 6.3.18 SOP only
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 107
It Shall be sent by the recipient of the DR_Swap Message to signal that it is willing to do a Data Role Swap and has
begun the Data Role Swap sequence.
It Shall be sent by the recipient of the VCONN_Swap Message to signal that it is willing to do a VCONN Swap and
has begun the VCONN Swap sequence.
It Shall be sent by the recipient of the FR_Swap Message to indicate that it has begun the Fast Role Swap
sequence.
It Shall be sent by the recipient of the Soft_Reset Message to indicate that it has completed its Soft Reset.
The Accept Message Shall be sent within tReceiverResponse of the receipt of the last bit of the Message (see Section
6.6.2).
Page 108 USB Power Delivery Specification Revision 3.0, Version 1.1
6.3.9 DR_Swap Message
The DR_Swap Message is used to exchange DFP and UFP operation between Port Partners while maintaining the
direction of power flow over VBUS. The DR_Swap process can be used by Port Partners whether or not they support
USB Communications capability. A DFP that supports USB Communication Capability starts as the USB Host on
Attachment. A UFP that supports USB Communication Capability starts as the USB Device on Attachment.
[USB Type-C 1.2] DRPs Shall have the capability to perform a Data Role Swap from the PE_SRC_Ready or
PE_SNK_Ready states. DFPs and UFPs May have the capability to perform a Data Role Swap from the PE_SRC_Ready
or PE_SNK_Ready states. A Data Role Swap Shall be regarded in the same way as a cable Detach/re-Attach in relation
to any USB communication which is ongoing between the Port Partners. If there are any Active Modes between the
Port Partners when a DR_Swap Message is a received then a Hard Reset Shall be performed (see Section 6.4.4.3.4). If
the Cable Plug has any Active Modes then the DFP Shall Not issue a DR_Swap Message and Shall cause all Active
Modes in the Cable Plug to be exited before accepting a DR Swap request.
The Source of VBUS and VCONN Source Shall remain unchanged as well as the Rp/Rd resistors on the CC wire during the
Data Role Swap process.
The DR_Swap Message May be sent by either Port Partner. The recipient of the DR_Swap Message Shall respond by
sending an Accept Message, Reject Message or Wait Message.
If an Accept Message is sent, the Source and Sink Shall exchange operational roles.
If a Reject Message is sent, the requester is informed that the recipient is unable, or unwilling, to do a Data Role
Swap and no action Shall be taken.
If a Wait Message is sent, the requester is informed that a Data Role Swap might be possible in the future but that
no immediate action Shall be taken.
Before a Data Role Swap the initial DFP Shall have its Port Data Role bit set to DFP, and the initial UFP Shall have its
Port Data Role bit set to UFP.
After a successful Data Role Swap the DFP/Host Shall become the UFP/Device and vice-versa; the new DFP Shall have
its Port Data Role bit set to DFP, and the new UFP Shall have its Port Data Role bit set to UFP. Where USB
Communication is supported by both Port Partners a USB data connection Should be established according to the new
data roles.
If the Data Role Swap, after having been accepted by the Port Partner, is subsequently not successful, in order to
attempt a re-establishment of the connection on the CC Wire, USB Type-C Error Recovery actions, such as disconnect,
as defined in [USB Type-C 1.2] will be necessary.
See Section 8.3.2.6, Section 8.3.3.16.1 and Section 8.3.3.16.2 for further details.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 109
Contract has been established. This ensures that only the Cable Plug responds with a GoodCRC Message to the
Discover Identity Command.
The Source Shall have Rp asserted on the CC wire and the Sink Shall have Rd asserted on the CC wire as defined in
[USB Type-C 1.2]. When performing a Power Role Swap from Source to Sink, the Port Shall change its CC Wire
resistor from Rp to Rd. When performing a Power Role Swap from Sink to Source, the Port Shall change its CC Wire
resistor from Rd to Rp. The DFP (Host), UFP (Device) roles and VCONN Source Shall remain unchanged during the
Power Role Swap process.
Note: during the Power Role Swap process the initial Sink does not disconnect even though V BUS drops below vSafe5V.
For more information regarding the Power Role Swap, refer to Section 7.3.9 and Section 7.3.10 in the Power Supply
chapter, Section 8.3.2.6, Section 8.3.3.16.3 and Section 8.3.3.16.4 in the Device Policy chapter and Section 9.1.2 for VBUS
mapping to USB states.
Page 110 USB Power Delivery Specification Revision 3.0, Version 1.1
It Shall be sent by the recipient of a VCONN_Swap Message that is not presently the VCONN Source to indicate it is
unable to do a VCONN Swap at this time.
The Wait Message Shall be sent within tReceiverResponse of the receipt of the last bit of the Message (see Section
6.6.2).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 111
A Soft_Reset Message is used to recover from Protocol Layer errors; putting the Message counters to a known state in
order to regain Message synchronization. The Soft_Reset Message has no effect on the Source or Sink; that is the
previously negotiated direction. Voltage and current remain unchanged. Modal Operation is unaffected by Soft Reset.
However after a Soft Reset has completed, an Explicit Contract negotiation occurs, in order to re-establish PD
Communication and to bring state operation for both Port Partners back to either the PE_SNK_Ready or
PE_SRC_Ready states as appropriate (see Section 8.3.3.4).
A Soft_Reset Message May be sent by either the Source or Sink when there is a Message synchronization error. If the
error is not corrected by the Soft Reset, Hard Reset Signaling Shall be issued (see Section 6.8).
A Soft_Reset Message Shall be targeted at a specific entity depending on the type of SOP* Packet used. Soft_Reset
Messages sent using SOP Packets Shall Soft Reset the Port Partner only. Soft_Reset Messages sent using SOP’/SOP’’
Packets Shall Soft Reset the corresponding Cable Plug only.
After a VCONN Swap the VCONN Source needs to reset the Cable Plug’s Protocol Layer in order to ensure MessageID
synchronization. If after a VCONN Swap the VCONN Source wants to communicate with a Cable Plug using SOP’ Packets
it Shall issue a Soft_Reset Message using a SOP’ Packet in order to reset the Cable Plug’s Protocol Layer. If the VCONN
Source wants to communicate with a Cable Plug using SOP’’ Packets it Shall issue a Soft_Reset Message using a SOP’’
Packet in order to reset the Cable Plug’s Protocol Layer.
Page 112 USB Power Delivery Specification Revision 3.0, Version 1.1
During the Fast Role Swap AMS the new Source Shall change its CC Wire resistor from Rd to Rp and the new Sink
Shall change its CC Wire resistor from Rp to Rd. The DFP (Host), UFP (Device) roles and VCONN Source Shall remain
unchanged during the Fast Role Swap process.
The initial Source Should avoid being the VCONN source (by using the VCONN Swap process) whenever not actively
communicating with the cable, since it is difficult for the initial Source to maintain VCONN power during the Fast Role
Swap process.
Note: a Fast Role Swap is a “best effort” solution to a situation where a PDUSB Device has lost its external power. This
process can occur at any time, even during a Non-interruptible AMS in which case error handling such as Hard Reset
or [USB Type-C 1.2] Error Recovery will be triggered.
Note: during the Fast Role Swap process the initial Sink does not disconnect even though V BUS drops below vSafe5V.
For more information regarding the Fast Role Swap process, refer to Section 7.1.13 and Section 7.2.9.2 in the Power
Supply chapter, Section 8.3.3.16.5 and Section 8.3.3.16.6 in the Device Policy chapter and Section 9.1.2 for VBUS
mapping to USB states.
6.3.18 Get_PPS_Status
The Get_PPS_Status Message is sent by the Sink to request additional information about a Source’s status. The Port
Shall respond by returning a PPS_Status Message (see Section 6.5.10).
6.3.19 Get_Country_Codes
The Get_Country_Codes Message is sent by a Port to request the alpha-2 country codes its Port Partner supports as
defined in [ISO 3166]. The Port Partner Shall respond by returning a Country_Codes Message (see Section 6.5.11).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 113
Bits 4…0 Type Sent by Description Valid Start
of Packet
0 0100 Sink_Capabilities Sink or Dual-Role See Section 6.4.1.3 SOP only
Power
Header
Object1 Object2
No. of Data Objects = 2
In Figure 6-12, the Number of Data Objects field is 2: vSafe5V plus one other voltage.
Power Data Objects (PDO) and Augmented Power Data Objects (APDO) are identified by the Message Header’s Type
field. They are used to form Source_Capabilities Messages and Sink_Capabilities Messages.
There are three types of Power Data Objects. They contain additional information beyond that encoded in the
Message Header to identify each of the three types of Power Data Objects:
Fixed Supply is the most commonly used to expose well-regulated fixed voltage power supplies.
Variable power supply is used to expose very poorly regulated power supplies.
Battery is used to expose batteries than can be directly connected to VBUS.
There is one type of Augmented Power Data Object:
Programmable Power Supply is used to expose a power supply whose output voltage can be programmatically
adjusted over the advertised voltage range.
Power Data Objects are also used to expose additional capabilities that May be utilized; such as in the case of a Power
Role Swap.
A list of one or more Power Data Objects Shall be sent by the Source in order to convey its capabilities. The Sink May
then request one of these capabilities by returning a Request Data Object that contains an index to a Power Data
Object, in order to negotiate a mutually agreeable Contract.
Page 114 USB Power Delivery Specification Revision 3.0, Version 1.1
Where Maximum and Minimum Voltage and Current values are given in PDOs these Shall be taken to be absolute
values.
The Source and Sink Shall Not negotiate a power level that would allow the current to exceed the maximum current
supported by their receptacles or the Attached plug (see [USB Type-C 1.2]). The Source Shall limit its offered
capabilities to the maximum current supported by its receptacle and Attached plug. A Sink Shall only make a request
from any of the capabilities offered by the Source. For further details see Section 4.4.
Sources expose their power capabilities by sending a Source_Capabilities Message. Sinks expose their power
requirements by sending a Sink_Capabilities Message. Both are composed of a number of 32-bit Power Data Objects
(see Table 6-7).
Bit(s) Description
B31…30 Value Parameter
00b Fixed supply (Vmin = Vmax)
01b Battery
10b Variable Supply (non-Battery)
11b Augmented Power Data Object (APDO)
B29…0 Specific Power Capabilities are described by the PDOs in the following sections.
The Augmented Power Data Object (APDO) is defined to allow support for more than the four PDO types by extending
the Power Data Object field from 2 to 4 bits when the B31…B30 are 11b. The generic APDO structure is shown in
Table 6-8.
Bit(s) Description
B31…30 11b – Augmented Power Datat Object (APDO)
B29…28 00b – Programmable Power Supply
01b-11b - Reserved
B27…0 Specific Power Capabilities are described by the APDOs in the following sections.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 115
6.4.1.1.3 Use by Dual-Role Power devices
Dual-Role Power devices send a Source_Capabilities Message (see Section 6.4.1) as part of advertising Port
capabilities when operating in Source role. Dual-Role Power devices send a Source_Capabilities Message (see Section
6.4.1) in response to a Get_Source_Cap Message regardless of their present operating role. Similarly Dual-Role Power
devices send a Sink_Capabilities Message (see Section 6.4.1.3) in response to a Get_Sink_Cap Message regardless of
their present operating role.
Page 116 USB Power Delivery Specification Revision 3.0, Version 1.1
requested by a Sink, the Source Shall return a Wait Message while it retrieves this power using a GotoMin Message.
Once the additional power has been retrieved the Source Shall send a new Source_Capabilities Message in order to
trigger a new request from the Sink requesting the Power Reserve.
The Power Reserve May be de-allocated by the Source at any time, but the de-allocation Shall be indicated to the Sink
or Sinks using the Power Reserve by sending a new Source_Capabilities Message.
Bit(s) Description
B31…30 Fixed supply
B29 Dual-Role Power
B28 USB Suspend Supported
B27 Unconstrained Power
B26 USB Communications Capable
B25 Dual-Role Data
B24 Unchunked Extended Messages Supported
B23…22 Reserved – Shall be set to zero.
B21…20 Peak Current
B19…10 Voltage in 50mV units
B9…0 Maximum Current in 10mA units
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 117
If the USB Suspend Supported flag is cleared, then the Sink Shall Not apply the [USB 2.0] or [USB 3.1] rules for
suspend and May continue to draw the negotiated power. Note that when USB is suspended, the USB device state
is also suspended.
Sinks May indicate to the Source that they would prefer to have the USB Suspend Supported flag cleared by setting the
No USB Suspend flag in a Request Message (see Section 6.4.2.5).
Page 118 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-10 Fixed Power Source Peak Current Capability
Bit(s) Description
B31…30 Variable Supply (non-Battery)
B29…20 Maximum Voltage in 50mV units
B19…10 Minimum Voltage in 50mV units
B9…0 Maximum Current in 10mA units
Bit(s) Description
B31…30 Battery
B29…20 Maximum Voltage in 50mV units
B19…10 Minimum Voltage in 50mV units
B9…0 Maximum Allowable Power in 250mW units
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 119
6.4.1.2.5 Programmable Power Supply Augmented Power Data Object
Table 6-13 below describes a Programmable Power Supply (1100b) APDO for a Source. See Section 7.1.3 for the
electrical requirements of the power supply. This APDO is used primarily for Sink Directed Charge of a Battery in the
Sink. When applying a current to the Battery greater than the cable supports, a high efficiency fixed scaler May be
used in the Sink to reduce the cable current.
The voltage fields define the output voltage range over which the power supply Shall be adjustable in 20mV steps.
The Maximum Current field contains the current the Programmable Power Supply Shall be capable of delivering over
the advertised voltage range.
Bit(s) Description
B31…30 11b – Augmented Power Data Object (APDO)
B29…28 00b – Programmable Power Supply
01b…11b - Reserved, Shall Not be used
B27…25 Reserved – Shall be set to zero
B24…17 Maximum Voltage in 100mV increments
B16 Reserved – Shall be set to zero
B15…8 Minimum Voltage in 100mV increments
B7 Reserved – Shall be set to zero
B6…0 Maximum Current in 50mA increments
Page 120 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-14 Fixed Supply PDO - Sink
Bit(s) Description
B31…30 Fixed supply
B29 Dual-Role Power
B28 Higher Capability
B27 Unconstrained Power
B26 USB Communications Capable
B25 Dual-Role Data
B24…23 Fast Role Swap required USB Type-C Current (see also [USB Type-C 1.2]):
Value Description
00b Fast Swap not supported (default)
01b Default USB Power
10b 1.5A @ 5V
11b 3.0A @ 5V
B22…20 Reserved – Shall be set to zero.
B19…10 Voltage in 50mV units
B9…0 Operational Current in 10mA units
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 121
Sink_Capabilities Message Shall also be set to one. If the Dual-Role Data bit is set to zero in the Source_Capabilities
Message the Dual-Role Data bit in the Sink_Capabilities Message Shall also be set to zero.
Bit(s) Description
B31…30 Variable Supply (non-Battery)
B29…20 Maximum Voltage in 50mV units
B19…10 Minimum Voltage in 50mV units
B9…0 Operational Current in 10mA units
Bit(s) Description
B31…30 Battery
B29…20 Maximum Voltage in 50mV units
B19…10 Minimum Voltage in 50mV units
B9…0 Operational Power in 250mW units
Page 122 USB Power Delivery Specification Revision 3.0, Version 1.1
The Maximum and Minimum Voltage fields Shall be set to the output voltage range that the Sink requires to operate.
The Operational Current field Shall be set to the maximum current the Sink requires over the voltage range. The
Operating Current is defined as the maximum amount of current the device needs to fully support its function (e.g.,
Sink Directed Charge).
Bit(s) Description
B31…30 11b – Augmented Power Data Object (APDO)
B29…28 00b – Programmable Power Supply
B27…25 Reserved – Shall be set to zero
B24…17 Maximum Voltage in 100mV increments
B16 Reserved – Shall be set to zero
B15…8 Minimum Voltage in 100mV increments
B7 Reserved – Shall be set to zero
B6…0 Maximum Current in 50mA increments
Bits Description
B31 Reserved – Shall be set to zero
B30…28 Object position (000b is Reserved and Shall Not be used)
B27 GiveBack flag = 0
B26 Capability Mismatch
B25 USB Communications Capable
B24 No USB Suspend
B23 Unchunked Extended Messages Supported
B22…20 Reserved - Shall be set to zero.
B19…10 Operating current in 10mA units
B9…0 Maximum Operating Current 10mA units
Table 6-19 Fixed and Variable Request Data Object with GiveBack Support
Bits Description
B31 Reserved – Shall be set to zero
B30…28 Object position (000b is Reserved and Shall Not be used)
B27 GiveBack flag =1
B26 Capability Mismatch
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 123
Bits Description
B25 USB Communications Capable
B24 No USB Suspend
B23 Unchunked Extended Messages Supported
B22…20 Reserved - Shall be set to zero.
B19…10 Operating Current in 10mA units
B9…0 Minimum Operating Current 10mA units
Bits Description
B31 Reserved – Shall be set to zero
B30…28 Object position (000b is Reserved and Shall Not be used)
B27 GiveBackFlag = 0
B26 Capability Mismatch
B25 USB Communications Capable
B24 No USB Suspend
B23 Unchunked Extended Messages Supported
B22…20 Reserved - Shall be set to zero.
B19…10 Operating Power in 250mW units
B9…0 Maximum Operating Power in 250mW units
Page 124 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-21 Battery Request Data Object with GiveBack Support
Bits Description
B31 Reserved – Shall be set to zero
B30…28 Object position (000b is Reserved and Shall Not be used)
B27 GiveBackFlag = 1
B26 Capability Mismatch
B25 USB Communications Capable
B24 No USB Suspend
B23 Unchunked Extended Messages Supported
B22…20 Reserved - Shall be set to zero.
B19…10 Operating Power in 250mW units
B9…0 Minimum Operating Power in 250mW units
Bits Description
B31 Reserved – Shall be set to zero
B30…28 Object position (000b is Reserved and Shall Not be used)
B27 Reserved – Shall be set to zero
B26 Capability Mismatch
B25 USB Communications Capable
B24 No USB Suspend
B23 Unchunked Extended Messages Supported
B22…20 Reserved - Shall be set to zero.
B19…9 Output Voltage in 20mV units
B8…7 Reserved - Shall be set to zero.
B6…0 Operating Current 50mA units
Page 126 USB Power Delivery Specification Revision 3.0, Version 1.1
6.4.2.8 Maximum Operating Current
The Maximum Operating Current field in the Request Message Shall be set to the highest current the Sink will ever
require. The difference between the Operating Current and Maximum Operating Current fields (when the GiveBack
Flag is cleared) is used by the Device Policy Manager in the Source to calculate the size of the Power Reserve to be
maintained (see Section 8.2.5.1). The Operating Current value Shall be less than or equal to the Maximum Operating
Current value.
When the Capabilities Mismatch bit is set to zero the requested Maximum Operating Current Shall be less than or
equal to the current in the offered Source Capabilities since the Source will need to reserve this power for future use.
The Maximum Operating Current field Shall continue to be set to the highest current needed in order to maintain the
allocation of the Power Reserve. If Maximum Operating Current is requested when the Power Reserve is being used
by a GotoMin capable device then the resulting Message will be a Wait Message to enable the Source to reclaim the
additional current (see Section 6.3.12.1 and Section 8.2.5.1).
When the Capabilities Mismatch bit is set to one the requested Maximum Operating Current May be greater than the
current in the offered Source Capabilities since the Source will need this information to ascertain the Sink’s actual
needs.
See Section 6.4.2.3 for more details of the usage of the Capabilities Mismatch bit.
This field Shall apply to the Fixed and Variable RDO.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 127
6.4.2.12 Minimum Operating Power
The Minimum Operating Power field in the Request Message Shall be set to the lowest current the Sink requires to
maintain operation. When combined with the Operating Power, it gives a Source with a power supply shared amongst
multiple ports information about how much power it can temporarily get back so it can to intelligently distribute
power.
This field Shall apply to the Battery RDO.
Header
BIST Data Object
No. of Data Objects = 1 or 7
All ports Shall be able to be a Unit Under Test (UUT) only when operating at vSafe5V. All of the following BIST Modes
Shall be supported:
Process reception of a BIST Carrier Mode BIST Data Object that Shall result in the generation of the appropriate
carrier signal.
Process reception of a BIST Test Data BIST Data Object that Shall result in the Message being Ignored.
It is Optional for a Port to take on the role of a Tester.
When a Port receives a BIST Message BIST Data Object for a BIST Mode when Power Role swapped or not operating at
vSafe5V, the BIST Message Shall be Ignored.
When a Port receives a BIST Message BIST Data Object for a BIST Mode it does not support the BIST Message Shall be
Ignored.
When a Port or Cable Plug receives a BIST Message BIST Data Object for a Continuous BIST Mode that it supports, the
Port or Cable Plug enters the requested BIST Mode and Shall remain in that BIST Mode for tBISTContMode and then
Shall return to normal operation (see Section 6.6.7.2).
The usage model of the PHY Layer BIST modes generally assumes that some controlling agent will request a test of its
Port Partner. A UUT Port minimally has to process a request to enter test mode and return error counters. A Tester
Port Shall have a means to place the UUT Port into receiver test mode and retrieve the error counters from the UUT.
A Port, that is not part of a Tester, is not expected to be the initiator of a receiver test operation, but is not precluded
from doing so.
In Section 8.3.2.14 there is a sequence description of the test sequences used for compliance testing.
The fields in the BIST Data Object are defined in the Table 6-23.
Page 128 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-23 BIST Data Object
0101b BIST Carrier Mode Request Transmitter to enter BIST Section 6.4.3.1
Carrier Mode
0110b…0111b Shall Not be used Section 1.4.2.10
Reserved
1000b BIST Test Data Sends a Test Data Frame. Section 6.4.3.2
1001b…1111b Shall Not be used Section 1.4.2.10
Reserved
Header
VDM Header 0-6 VDOs
No. of Data Objects = 1-7
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 129
The VDM Header Shall be the first 4-byte object in a Vendor Defined Message. The VDM Header provides command
space to allow vendors to customize Messages for their own purposes. Additionally vendors May make use of the
Commands in a Structured VDM.
The fields in the VDM Header for an Unstructured VDM, when the VDM Type Bit is set to zero, Shall be as defined in
Table 6-24. The fields in the VDM Header for a Structured VDM, when the VDM Type Bit is set to one Shall be as
defined in Table 6-25.
Both Unstructured and Structured VDMs Shall only be sent and received after an Explicit Contract has been
established. The only exception to this is the Discover Identity Command which May be sent by Source when no
Contract or an Implicit Contract (in place after a Power Role Swap or Fast Role Swap) is in place in order to discover
Cable capabilities (see Section 8.3.3.22.3). A VDM Message sequence Shall Not interrupt any other PD Message
Sequence. A VDM Message sequence Shall be interruptible by any other PD Message Sequence.
Page 130 USB Power Delivery Specification Revision 3.0, Version 1.1
Structured VDMs Shall only be used when an Explicit Contract is in place with the following exception:
o Prior to establishing an Explicit Contract a Source May issue Discover Identity Messages, to a Cable Plug
using SOP’ Packets, as an Initiator (see Section 8.3.3.22.3).
Either Port May be an Initiator of Structured VDMs except for the Enter Mode and Exit Mode Commands which
Shall only be initiated by the DFP.
A Cable Plug Shall only be a Responder to Structured VDMs.
Enter Mode and Exit Mode Commands Shall only be responded to by a UFP or Cable Plug.
Structured VDMs Shall Not be initiated or responded to under any other circumstances.
When a DFP or UFP does not support Structured VDMs any Structured VDMs received Shall return a
Not_Supported Message.
When a Cable Plug does not support Structured VDMs any Structured VDMs received Shall be Ignored.
A DFP, UFP or Cable Plug which supports Structured VDMs and receiving a Structured VDM for a SVID that it does
not recognize Shall reply with a NAK Command.
A Structured VDM Command sequence Shall be interruptible e.g. due to the need for a power related AMS.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 131
Bit(s) Field Description
Note 1: In the case where a SID is used the modes are defined by a standard. When a VID is used the modes are defined by the
Vendor.
Table 6-26 shows the Commands, which SVID to use with each Command and the SOP* values which Shall be used.
Discover SVIDs Shall only use the PD SID. Shall only use SOP/SOP’.
Discover Modes Valid with any SVID. Shall only use SOP/SOP’.
6.4.4.2.1 SVID
The SVID field Shall contain either a 16-bit USB Standard ID value (SID) or the 16-bit assigned to the vendor by the
USB-IF (VID). No other value Shall be present in this field.
Table 6-27 lists specific SVID values referenced by this specification.
Page 132 USB Power Delivery Specification Revision 3.0, Version 1.1
Shall be defined by the vendor. If the SVID is a SID, the content Shall be defined by the Standard. The VDO’s content
May be as simple as a numeric value or as complex as bit mapped description of capabilities of the Mode. In all cases,
the Responder is responsible for deciphering the contents to know whether or not it supports the Mode at the Object
Position.
This field Shall be set to zero in the Request or Response (REQ, ACK, NAK or BUSY) when not required by the
specification of the individual Command.
6.4.4.2.6 Command
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 133
A Structured VDM Attention Command consists of a Command request but no Command response. A Structured VDM
Attention Command is deemed to be completed when the GoodCRC Message has been successfully received by the
Initiator in reply to its Attention Command request.
If Structured VDMs are supported, but the Structured VDM Attention Command request is not recognized it Shall be
Ignored (see Table 6-28).
Page 134 USB Power Delivery Specification Revision 3.0, Version 1.1
A PD-Capable Cable Plug Shall return a Discover Identity Command ACK in response to a Discover Identity
Command request sent to SOP’.
A PD-Capable UFP that supports Modal Operation Shall return a Discover Identity Command ACK in response to a
Discover Identity Command request sent to SOP.
The SVID in the Discover Identity Command request Shall be set to the PD SID (see Table 6-27).
The Number of Data Objects field in the Message Header in the Discover Identity Command request Shall be set to 1
since the Discover Identity Command request Shall Not contain any VDOs.
The Discover Identity Command ACK sent back by the Responder Shall contain an ID Header VDO, a Cert Stat VDO, a
Product VDO and the Product Type VDOs defined by the Product Type as shown in Figure 6-15. This specification
defines the following Product Type VDOs:
Cable VDO (see Section 6.4.4.3.1.4).
Alternate Mode Adapter VDO (see Section 6.4.4.3.1.5).
No VDOs other than those defined in this specification Shall be sent as part of the Discover Identity Command
response. Where there is no Product Type VDO defined for a specific Product Type, no VDOs Shall be sent as part of
the Discover Identity Command response. Any additional VDOs received by the initiator Shall be Ignored.
1 Only Data objects defined in this specification can be sent as part of the Discover Identity Command.
2 The following sections define the number and content of the VDOs for each Product Type.
The Number of Data Objects field in the Message Header in the Discover Identity Command NAK and BUSY
responses Shall be set to 1 since they Shall Not contain any VDOs.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 135
Bit(s) Description Reference
011b – Passive Cable
100b – Active Cable
101b…111b – Reserved, Shall Not be used.
B26 Modal Operation Supported: Section 6.4.4.3.1.1.4
Shall be set to one if the product supports Modal Operation.
Shall be set to zero otherwise
B25…23 Product Type (DFP):
000b – Undefined
001b – PDUSB Hub
010b – PDUSB Host
011b – Power Brick
100b - Alternate Mode Controller (AMC)
101b…111b – Reserved, Shall Not be used.
B22…16 Reserved. Shall be set to zero.
B15…0 16-bit unsigned integer. USB Vendor ID [USB 2.0]/[USB 3.1]
Page 136 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-31 Product Types (Cable Plug)
6.4.4.3.1.1.7 Vendor ID
Manufacturers Shall set the Vendor ID field to the value of the Vendor ID assigned to them by USB-IF. For USB
Devices or Hubs which support USB communications the Vendor ID field Shall be identical to the Vendor ID field
defined in the product’s USB Device Descriptor (see [USB 2.0] and [USB 3.1]).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 137
Table 6-34 Product VDO
Manufacturers Should set the USB Product ID field to a unique value identifying the product and Should set the
bcdDevice field to a version number relevant to the release version of the product.
Page 138 USB Power Delivery Specification Revision 3.0, Version 1.1
Bit(s) Field Description
B10…9 Maximum VBUS Voltage Maximum Cable VBUS Voltage:
00b – 20V
01b – 30V
10b – 40V
11b – 50V
B8…7 Reserved Shall be set to zero.
B6…5 VBUS Current Handling Capability 00b = Reserved, Shall Not be used.
01b = 3A
10b = 5A
11b = Reserved, Shall Not be used.
B4…3 Reserved Shall be set to zero.
B2…0 USB SuperSpeed Signaling 000b = USB 2.0 only, no SuperSpeed support
Support 001b = [USB 3.1] Gen1
010b = [USB 3.1] Gen1 and Gen2
011b…111b = Reserved, Shall Not be used
See [USB Type-C 1.2] for definitions.
The HW Version field (B31…28) contains a HW Version assigned by the VID owner.
The FW Version field (B27…24) contains a FW Version assigned by the VID owner.
The VDO Version field (B23…20) contains a VDO version for this VDM version number. This field indicates the
expected content for this VDO.
The Connector Type field (B19…18) Shall contain a value corresponding to the connector type on the opposite end
from the USB Type-C connector.
The Cable Latency field (B16…13) Shall contain a value corresponding to the signal latency through the cable which
can be used as an approximation for its length.
The Cable Termination Type field (B12…11) Shall contain a value indicating whether the Passive Cable needs VCONN
only initially in order to support the Discover Identity Command, after which it can be removed, or the Passive Cable
needs VCONN to be continuously applied in order to power some feature of the Cable Plug.
The Maximum VBUS Voltage field (B10…9) Shall contain the maximum voltage that Shall be negotiated using a Fixed
Supply over the cable as part of an Explicit Contract where the maximum voltage that Shall be applied to the cable is
vSrcNew max + vSrcValid max. For example when the Maximum VBUS Voltage field is 20V, a Fixed Supply of 20V can
be negotiated as part of an Explicit Contract where the absolute maximum voltage that can be applied to the cable is
21.5V.
The VBUS Current Handling Capability field (B6…5) Shall indicate whether the cable is capable of carrying 3A or 5A.
The USB SuperSpeed Signaling Support field (B2…0) Shall indicate whether the cable supports only [USB 2.0] , or in
addition Supports [USB 3.1] Gen1, or Gen1 and Gen2.
6.4.4.3.1.4.2 Active Cable VDO
An Active Cable has a USB Plug on each end at least one of which is a Cable Plug supporting SOP’ Communication. An
Active Cable Shall incorporate data bus signal conditioning circuits and May have a concept of Super Speed
Directionality on its Super Speed wires. An Active Cable May include a VBUS wire. An Active Cable Shall respond to
SOP’ Communication and May respond to SOP’’ Communication. Active Cables Shall support the Structured VDM
Discover Identity Command and Shall return the Active Cable VDO in a Discover Identity Command ACK as shown in
Table 6-36.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 139
Table 6-36 Active Cable VDO
00b – 20V
01b – 30V
10b – 40V
11b – 50V
B8…7 Reserved Shall be set to zero.
B6…5 VBUS Current Handling When VBUS Through Cable is “No”, Reserved, Shall Not be used.
Capability
When VBUS Though Cable is “Yes”:
Page 140 USB Power Delivery Specification Revision 3.0, Version 1.1
Bit(s) Field Description
B2…0 USB SuperSpeed Signaling 000b = [USB 2.0] only
Support 001b = [USB 3.1] Gen1
010b = [USB 3.1] Gen1 and Gen2
011b…111b = Reserved, Shall Not be used
The HW Version field (B31…28) contains a HW Version assigned by the VID owner.
The FW Version field (B27…24) contains a FW Version assigned by the VID owner.
The VDO Version field (B23…20) contains a VDO version for this VDM version number. This field indicates the
expected content for this VDO.
The Connector Type field (B19…18) Shall contain a value corresponding to the connector type on the opposite end
from the USB Type-C connector.
The Cable Latency field (B16…13) Shall contain a value corresponding to the signal latency through the cable which
can be used as an approximation for its length.
The Cable Termination Type field (B12…11) Shall contain a value corresponding to whether the Active Cable has one
or two Cable Plugs requiring power from VCONN.
The Maximum VBUS Voltage field (B10…9) Shall contain the maximum voltage that Shall be negotiated using a Fixed
Supply over the cable as part of an Explicit Contract where the maximum voltage that Shall be applied to the cable is
vSrcNew max + vSrcValid max. For example when the Maximum VBUS Voltage field is 20V, a Fixed Supply of 20V can
be negotiated as part of an Explicit Contract where the absolute maximum voltage that can be applied to the cable is
21.5V.
The VBUS Current Handling Capability field (B6…5) Shall indicate whether the cable is capable of carrying 3A or 5A.
The VBUS Current Handling Capability Shall only be Valid when the VBUS Through Cable field indicates an end to end
VBUS wire.
The VBUS Through Cable field (B4) Shall indicate whether the cable contains an end to end VBUS wire.
The SOP’’ Controller Present field (B3) Shall indicate whether one of the Cable Plugs is capable of SOP’’
Communication in addition to the Normative SOP’ Communication.
The USB SuperSpeed Signaling Support field (B2…0) Shall indicate whether the cable supports only [USB 2.0] , or in
addition Supports [USB 3.1] Gen1, or Gen1 and Gen2.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 141
Table 6-37 AMA VDO
When the VCONN required field is set to “No” Reserved, Shall be set to zero.
B4 VCONN required 0 = No
1 = Yes
B3 VBUS required 0 = No
1 = Yes
B2…0 USB SuperSpeed Signaling 000b = [USB 2.0] only
Support 001b = [USB 3.1] Gen1 and USB 2.0
010b = [USB 3.1] Gen1, Gen2 and USB 2.0
011b = [USB 2.0] billboard only
100b…111b = Reserved, Shall Not be used
The HW Version field (B31…28) contains a HW Version assigned by the VID owner.
The FW Version field (B27…24) contains a FW Version assigned by the VID owner.
The VDO Version field (B23…20) contains a VDO version for this VDM version number. This field indicates the
expected content for this VDO.
When the VCONN required field indicates that VCONN is required the VCONN power field Shall indicate how much power
the AMA needs in order to fully operate.
The VCONN required field Shall indicate whether VCONN is needed for the AMA to operate.
The VBUS required field Shall indicate whether VBUS is needed for the AMA to operate.
The USB SuperSpeed Signaling Support field (B2…0) Shall indicate whether the cable supports only [USB 2.0] , or in
addition Supports [USB 3.1] Gen1, or Gen1 and Gen2 or [USB 2.0] billboard only.
Page 142 USB Power Delivery Specification Revision 3.0, Version 1.1
The Discover SVIDs Command ACK sent back by the Responder Shall contain one or more SVIDs. The SVIDs are
returned 2 per VDO (see Table 6-38). If there are an odd number of supported SVIDs, the Discover SVIDs Command is
returned ending with a SVID value of 0x0000 in the last part of the last VDO. If there are an even number of supported
SVIDs, the Discover SVIDs Command is returned ending with an additional VDO containing two SVIDs with values of
0x0000. A Responder Shall only return SVIDs for which a Discover Modes Command request for that SVID will return
at least one Mode.
A Responder that does not support any SVIDs Shall return a NAK.
The Number of Data Objects field in the Message Header in the Discover SVIDs Command NAK and BUSY responses
Shall be set to 1 since they Shall Not contain any VDOs.
If the Responder supports 12 or more SVIDs then the Discover SVIDs Command Shall be executed multiple times
until a Discover SVIDs VDO is returned ending either with a SVID value of 0x0000 in the last part of the last VDO or
with a VDO containing two SVIDs with values of 0x0000. Each Discover SVID ACK Message, other than the one
containing the terminating 0x0000 SVID, Shall convey 12 SVIDs. The Responder Shall restart the list of SVIDs each
time a Discover Identity Command request is received from the Initiator.
Note: that since a Cable Plug does not retry Messages if the GoodCRC Message from the Initiator becomes corrupted
the Cable Plug will consider the Discover SVIDs Command ACK unsent and will send the same list of SVIDs again.
Figure 6-16 shows an example response to the Discover SVIDs Command request with two VDOs containing three
SVIDs. Figure 6-17 shows an example response with two VDOs containing four SVIDs followed by an empty VDO to
terminate the response. Figure 6-18 shows an example response with six VDOs containing twelve SVIDs followed by
an additional request that returns an empty VDO indicating there are no more SVIDs to return.
VDO 1 VDO 2
Header
VDM Header
No. of Data Objects = 3 SVID 0 SVID 1 SVID 2 0x0000
(B31..16) (B15..0) (B31..16) (B15..0)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 143
Figure 6-18 Example Discover SVIDs response with 12 SVIDs followed by an empty response
VDO 1
Header
VDM Header
No. of Data Objects = 2 0x0000 0x0000
(B31..16) (B15..0)
Figure 6-19 Example Discover Modes response for a given SVID with 3 Modes
Header
VDM Header Mode 1 Mode 2 Mode 3
No. of Data Objects = 4
Page 144 USB Power Delivery Specification Revision 3.0, Version 1.1
Before entering a Mode, by sending the Enter Mode Command request, that requires the reconfiguring of any pins on
entry to that Mode, the Initiator Shall ensure that those pins being reconfigured are placed into the USB Safe State.
Before entering a Mode that requires the reconfiguring of any pins, the Responder Shall ensure that those pins being
reconfigured are placed into either USB operation or the USB Safe State.
A device May support multiple Modes with one or more active at any point in time. Any interactions between them
are the responsibility of the Standard or Vendor. Where there are multiple Active Modes at the same time Modal
Operation Shall start on entry to the first Mode.
On receiving an Enter Mode Command request the Responder Shall respond with either an ACK or a NAK response.
The Responder is not allowed to return a BUSY response. The value in the Object Position field of the Enter Mode
Command response Shall contain the same value as the received Enter Mode Command request.
If the Responder responds to the Enter Mode Command request with an ACK, the Responder Shall enter the Mode
before sending the ACK. The Initiator Shall enter the Mode on reception of the ACK. Receipt of the GoodCRC Message
corresponding to the ACK confirms to the Responder that the Initiator is in an Active Mode and is ready to operate.
If the Responder responds to the Enter Mode Command request with a NAK, the Mode is not entered. If not presently
in Modal Operation the Initiator Shall return to USB operation. If not presently in Modal Operation the Responder
Shall remain in either USB operation or the USB Safe State.
If the Initiator fails to receive a response within tVDMWaitModeEntry it Shall Not enter the Mode but return to USB
operation.
Figure 6-20 shows the sequence of events during the transition between USB operation and entering a Mode. It
illustrates when the Responder’s Mode changes and when the Initiator’s Mode changes. Figure 6-21 shows a
sequence that is Interrupted by a Source_Capabilities Message, that completes a Contract Negotiation, and then the
sequence is Re-run. Figure 6-22 illustrates that when the Responder returns a NAK the transition to a Mode do not
take place and the Responder and Initiator remain in their default USB roles.
USB
USB or USB Safe State
Enter Mod
e
GoodCRC
USB Safe State
ACK
New
Mode
New GoodCRC
Mode
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 145
Figure 6-21 Enter Mode sequence Interrupted by Source Capabilities and then Re-run
USB
USB or USB Safe State
Enter Mode
USB
GoodCRC
Contract
negotiation
completed
Enter Mode
Enter Mode
Re-tried
GoodCRC
USB Safe State
ACK
New Mode
GoodCRC
New Mode
USB
USB or USB Safe State
Enter Mod
e
GoodCRC
USB Safe State
NAK
GoodCRC
USB
Page 146 USB Power Delivery Specification Revision 3.0, Version 1.1
Once the Mode is entered, the device Shall remain in that Active Mode until the Exit Mode Command is successful (see
Section 6.4.4.3.5).
The following events Shall also cause the Port Partners and Cable Plug(s) to exit all Active Modes:
A PD Hard Reset.
The Port Partners or Cable Plug(s) are Detached.
A Cable Reset (only exits the Cable Plug’s Active Modes).
The Initiator Shall return to USB Operation within tVDMExitMode of a disconnect or of Hard Reset Signaling being
detected.
The Responder Shall return to either USB operation or USB Safe State within tVDMExitMode of a disconnect or of
Hard Reset Signaling being detected.
A DR_Swap Message Shall Not be sent during Modal Operation between the Port Partners (see Section 6.3.9).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 147
Figure 6-23 Exit Mode sequence
Mode
Mode
Exit Mode
GoodCRC
USB Safe State
ACK
USB or USB Safe
State
GoodCRC
USB
6.4.4.3.6 Attention
The Attention Command May be used by the Initiator to notify the Responder that it requires service.
The value in the Object Position field Shall indicate to which Mode in the Discover Modes Command the VDO refers
(see Figure 6-19) and Shall have been used previously in an Enter Mode Command request for an Active Mode. The
value 1 always indicates the first Mode as it is the first object following the VDM Header. The value 2 refers to the
next Mode and so forth. A value of 000b or 111b in the Object Position field Shall Not be used by the Attention
Command.
The Number of Data Objects field in the Message Header Shall be set to 1 or 2 since the Attention Command Shall
Not contain more than 1 VDO. When a VDO is included in an Attention Command the contents of the 32 bit VDO is
defined by the Mode.
Responder Initiator
)
(Attention
Command
GoodCRC
Command Complete
Page 148 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 6-25 Command request/response sequence
Initiator Responder
Command
(request)
GoodCRC
(response)
Command
GoodCRC
Command Complete
In order for the Initiator to know that the Command request was actually consumed, it needs an acknowledgement
from the Responder. There are three responses that indicate the Responder received and processed the Command
request:
ACK.
NAK.
BUSY.
The Responder Shall complete:
Enter Mode requests within tVDMEnterMode.
Exit Mode requests within tVDMExitMode.
Other requests within tVDMReceiverResponse.
An Initiator not receiving a response within the following times Shall timeout and return to either the PE_SRC_Ready
or PE_SNK_Ready state (as appropriate):
Enter Mode requests within tVDMWaitModeEntry.
Exit Mode requests within tVDMWaitModeExit.
Other requests within tVDMSenderResponse.
The Responder Shall respond with:
ACK if it recognizes the SVID and can process it at this time
NAK:
o if it recognizes the SVID but cannot process the Command request
o or if it does not recognize the SVID
o or if it does not support the Command
o or if a VDO has been supplied which is Invalid.
BUSY if it recognizes the SVID and the Command but cannot process the Command request at this time.
The ACK, NAK or BUSY response Shall contain the same SVID as the Command request.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 149
6.4.4.4.2 Enter Vendor Mode / Exit Vendor Mode Processes
The result of the Discovery Process is that both the Initiator and Responder identify the Modes they mutually support.
The Initiator (DFP), upon finding a suitable Mode, uses the Enter Mode Command to enable the Mode.
The Responder (UFP or Cable Plug) and Initiator continue using the Active Mode until the Active Mode is exited. In a
managed termination, using the Exit Mode Command, the Active Mode Shall be exited in a controlled manner as
described in Section 6.4.4.3.5. In an unmanaged termination, triggered by a Power Delivery Hard Reset (i.e. Hard
Reset Signaling sent by either Port Partner) or by cable Detach (device unplugged), the Active Mode Shall still be
exited but there Shall Not be a transition through the USB Safe State. In both the managed and unmanaged
terminations the Initiator and Responder return to USB operation as defined in [USB Type-C 1.2] following an exit
from a Mode.
The overall Message flow is illustrated in Figure 6-26.
Page 150 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 6-26 Enter/Exit Mode Process
Initiator (DFP) Responder (UFP or Cable Plug)
Establish PD Contract
Discover SVID
s
USB
s
List of SVID
For every DFP supported SVID
Discover Mod
es (SVID )
USB or USB Safe
State
r SV ID
Modes fo
Enter Mode
USB Safe State
ode)
ched to M
nder swit
ACK (Respo
Alternate Mode
N
Alternate Mode
USB
USB
Y
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 151
VDM sequences Shall be interruptible after the return of a GoodCRC Message has been completed. In the case where
there is an error in transmission of the Vendor_Defined Message, as for any other PD Message, the Vendor_Defined
Message will not be retried, but instead the incoming Message will be processed by the Policy Engine. This means that
the Vendor_Defined Message sequence will need to be Re-run after the USB PD Message sequence has completed.
Header
BSDO
No. of Data Objects = 1
Page 152 USB Power Delivery Specification Revision 3.0, Version 1.1
6.4.5.2.1 Invalid Battery Reference
The Invalid Battery Reference bit Shall be set when the Get_Battery_Status Message contains a reference to a Battery
that does not exist.
Header
ADO
No. of Data Objects = 1
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 153
6.4.6.1 Type of Alert
The Type of Alert field Shall be used to report Source or Sink status changes. Only one Alert Message Shall be
generated for each Event or Change; however multiple Type of Alert bits May be set in one Alert Message. Once the
Alert Message has been sent the Type of Alert field Shall be cleared.
A Get_Battery_Status Message Should be sent in response to a Battery status change in an Alert Message to get the
details of the change.
A Get_Status Message Should be sent in response to a non-Battery status change in an Alert Message from to get the
details of the change.
Page 154 USB Power Delivery Specification Revision 3.0, Version 1.1
6.4.7 Get_Country_Info Message
The Get_Country_Info Message Shall be sent by a port to get country specific information from its port partner using
the country’s Alpha-2 Country Code defined by [ISO 3166]. The port partner responds with a Country_Info Message
that contains the country specific information. The Get_Country_Info Message Shall be as shown in Figure 6-29 and
Table 6-41.
For example, if the request is for China information, then the Country Code Data Object would be CCDO[31:0] =
434E0000h for “CN” country code.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 155
Bits Type Sent by Description Valid Start
4…0 of Packet
0 1010 Firmware_Update_Request Source or Sink See Section 6.5.9.1 SOP*
0 1011 Firmware_Update_Response Source, Sink or See Section 6.5.9.2 SOP*
Cable Plug
0 1100 PPS_Status Source See Section 6.5.10 SOP only
0 1101 Country_Info Source, Sink or See Section 6.5.12 SOP*
Cable Plug
0 1110 Country_Codes Source, Sink or See Section 6.5.11 SOP*
Cable Plug
0 1111 - Reserved All values not explicitly defined
1 1111 are Reserved and Shall Not be
used.
11 Holdup Time 1 Numeric Output will stay with regulated limits for this number of
milliseconds after removal of the AC from the input.
0x00 = feature not supported
Note: a value of 3ms Should be used
Page 156 USB Power Delivery Specification Revision 3.0, Version 1.1
Offset Field Size Value Description
12 Compliance 1 Bit Field
Bit Description
0 LPS compliant when set
1 PS1 compliant when set
2 PS2 compliant when set
3…7 Reserved and Shall be set to zero
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 157
Offset Field Size Value Description
20 Touch Temp 1 Value Temperature conforms to:
0 = [IEC 60950-1] (default)
1 = [IEC 62368-1] TS1
2 = [IEC 62368-1] TS2
Note: All other values Reserved
21 Source Inputs 1 Bit field
Bit Description
0 0b: No external supply
1b: External supply present
1 If bit 0 is set:
Page 158 USB Power Delivery Specification Revision 3.0, Version 1.1
6.5.1.4.1 Load Step Slew Rate
The Source Shall report its load step response capability in bits 0…1 of the Voltage Regulation bit field.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 159
6.5.1.10 Source Inputs
The Source Inputs field Shall identify the possible inputs that provide power to the Source. Note some Sources are
only powered by a Battery (e.g. an automobile) rather than the more common mains.
When bit 0 is set, the Source can be sourced by an external power supply.
When bits 0 and 1 are set, the Source can be sourced by an external power supply which is assumed to be
effectively “infinite” i.e. it won’t run down over time.
When bit 2 is set the Source can be sourced by an internal Battery.
Bit 2 May be set independently of bits 0 and 1.
6.5.1.11 Batteries
The Batteries field Shall report the number of batteries the source supports. It Shall independently report the
number of Hot Swappable Batteries and the number of Fixed batteries. The maximum number of each type of Battery
Shall be no more than 4.
Page 160 USB Power Delivery Specification Revision 3.0, Version 1.1
Offset Field Size Value Description
(Byte)
2 Present Battery Input 1 Bit field When Present Input field bit 3 set Shall contain the bit
corresponding to the Battery or Batteries providing power:
When Present Source Input field bit 3 is not set this field is
Reserved and Shall be set to zero.
3 Event Flags 1 Bit field Bit Description
0 Reserved and Shall be set to zero
1 OCP event when set
2 OTP event when set
3 OVP event when set (Sink only, for Source
Reserved and Shall be set to zero)
4 CF mode when set, CV mode when cleared
5…7 Reserved and Shall be set to zero
4 Temperature Status 1 Bit field Bit Description
0 Reserved and Shall be set to zero
1…2 00 – Not Supported
01 – Normal
10 – Warning
11 – Over temperature
3…7 Reserved and Shall be set to zero
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 161
6.5.2.4 Event Flags Field
The Event Flags field returns event flags. The OTP, OVP and OCP event flags Shall be set when there is an event and
Shall only be cleared when read with the Get_PPS_Status Message.
When the OTP event flag is set the Temperature Status field Shall also be set to over temperature.
The CF/CV mode bit is only Valid when operating as a Programmable Power Supply and Shall be Ignored otherwise.
When the Source is operating as a Programmable Power Supply the CF/CV mode bit Shall be set when operating in
Current Foldback mode (CF mode) and Shall be cleared when operating in Constant Voltage mode (CV mode).
Extended Header
GBCDB
Data Size = 1
Extended Header
GBSDB
Data Size = 1
Page 162 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-46 Get Battery Status Data Block (GBSDB)
Extended Header
BCDB
Data Size = 9
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 163
6.5.5.3 Battery Type Field
The Battery Type Field is used to report additional information about the Battery’s capabilities.
Extended Header
GMIDB
Data Size = 2
Extended Header
MIDB
Data Size = 4..26
Page 164 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-49 Manufacturer Info Data Block (MIDB)
6.5.8.1 Security_Request
The Security_Request Message is used by a Port to pass a security data structure to its Port Partner or a Cable Plug.
The Security_Request Message contains a Security Request Data Block (SRQDB) whose format Shall be as shown in
Figure 6-37. The contents of the SRQDB and its use are defined in [USBTypeCAuthentication 1.0].
Extended Header
SRQDB
Data Size = 4..260
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 165
6.5.8.2 Security_Response
The Security_Response Message is used by a Port or Cable Plug to pass a security data structure to the Port that sent
the Security_Request Message.
The Security_Response Message contains a Security Response Data Block (SRPDB) whose format Shall be as shown in
Figure 6-38. The contents of the SRPDB and its use are defined in [USBTypeCAuthentication 1.0].
Extended Header
SRPDB
Data Size = 4..260
6.5.9.1 Firmware_Update_Request
The Firmware_Update_Request Message is used by a Port to pass a firmware update data structure to its Port
Partner or a Cable Plug.
The Firmware_Update_Request Message contains a Firmware Update Request Data Block (FRQDB) whose format
Shall be as shown in Figure 6-39. The contents of the FRQDB and its use are defined in [USBPDFirmwareUpdate
1.0].
Extended Header
FRQDB
Data Size = 4..260
6.5.9.2 Firmware_Update_Response
The Firmware_Update_Response Message is used by a Port or Cable Plug to pass a firmware update data structure to
the Port that sent the Firmware_Update_Request Message.
The Firmware_Update_Response Message contains a Firmware Update Response Data Block (FRPDB) whose format
Shall be as shown in Figure 6-40. The contents of the FRPDB and its use are defined in [USBPDFirmwareUpdate 1.0].
Extended Header
FRPDB
Data Size = 4..260
Page 166 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 6-41 PPS_Status Message
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 167
6.5.11 Country_Codes Message
The Country_Codes Message Shall be sent in response to a Get_Country_Codes Message. The Country_Codes Message
enables a Port to query its Port partner to get a list of alpha-2 country codes as defined in [ISO 3166] for which the
Port Partner has country specific information.
The Country_Codes Message Shall contain a 4-260 byte Country Code Data Block (CCDB) whose format Shall be as
shown in Figure 6-42 and Table 6-51.
Page 168 USB Power Delivery Specification Revision 3.0, Version 1.1
Offset Field Size Value Description
2 Reserved 1 Word Shall be set to 0.
4 Country Specific Data 0-256 Byte Content defined by the country’s authority.
6.6 Timers
All the following timers are defined in terms of bits on the bus regardless of where they are implemented in terms of
the logical architecture. This is to ensure a fixed reference for the starting and stopping of timers. It is left to the
implementer to ensure that this timing is observed in a real system.
6.6.1 CRCReceiveTimer
The CRCReceiveTimer Shall be used by the sender’s Protocol Layer to ensure that a Message has not been lost.
Failure to receive an acknowledgement of a Message (a GoodCRC Message) whether caused by a bad CRC on the
receiving end or by a garbled Message within tReceive is detected when the CRCReceiveTimer expires.
The sender’s Protocol Layer response when a CRCReceiveTimer expires Shall be to retry nRetryCount times. Note:
that Cable Plugs do not retry Messages and large Extended Messages that are not Chunked are not retried (see Section
6.7.2). Sending of the Preamble corresponding to the retried Message Shall start within tRetry of the
CRCReceiveTimer expiring.
The CRCReceiveTimer Shall be started when the last bit of the Message EOP has been transmitted by the Physical
Layer. The CRCReceiveTimer Shall be stopped when the last bit of the EOP corresponding to the GoodCRC Message
has been received by the Physical Layer.
The Protocol Layer receiving a Message Shall respond with a GoodCRC Message within tTransmit in order to ensure
that the sender’s CRCReceiveTimer does not expire. The tTransmit Shall be measured from when the last bit of the
Message EOP has been received by the Physical Layer until the first bit of the Preamble of the GoodCRC Message has
been transmitted by the Physical Layer.
6.6.2 SenderResponseTimer
The SenderResponseTimer Shall be used by the sender’s Policy Engine to ensure that a Message requesting a
response (e.g. Get_Source_Cap Message) is responded to within a bounded time of tSenderResponse. Failure to
receive the expected response is detected when the SenderResponseTimer expires.
The Policy Engine’s response when the SenderResponseTimer expires Shall be dependent on the Message sent (see
Section 8.3).
The SenderResponseTimer Shall be started from the time the last bit of the GoodCRC Message EOP (i.e. the GoodCRC
Message corresponding to the Message requesting a response) has been received by the Physical Layer. The
SenderResponseTimer Shall be stopped when the last bit of the expected response Message EOP has been received
by the Physical Layer.
The receiver of a Message requiring a response Shall respond within tReceiverResponse in order to ensure that the
sender’s SenderResponseTimer does not expire.
The tReceiverResponse time Shall be measured from the time the last bit of the Message EOP has been received by
the Physical Layer until the first bit of the response Message Preamble has been transmitted by the Physical Layer.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 169
6.6.3 Capability Timers
Sources and Sinks use Capability Timers to determine Attachment of a PD Capable device. By periodically sending or
requesting capabilities it is possible to determine PD device Attachment when a response is received.
6.6.3.1 SourceCapabilityTimer
Prior to a successful negotiation a Source Shall use the SourceCapabilityTimer to periodically send out a
Source_Capabilities Message every tTypeCSendSourceCap while:
The Port is Attached.
The Source is not in an active connection with a PD Sink Port.
Whenever there is a SourceCapabilityTimer timeout the Source Shall send a Source_Capabilities Message. It Shall
then re-initialize and restart the SourceCapabilityTimer. The SourceCapabilityTimer Shall be stopped when the
last bit of the EOP corresponding to the GoodCRC Message has been received by the Physical Layer since a PD
connection has been established. At this point the Source waits for a Request Message or a response timeout.
See Section 8.3.3.2 more details of when Source_Capabilities Messages are transmitted.
6.6.3.2 SinkWaitCapTimer
The Sink Shall support the SinkWaitCapTimer. When a Sink observes an absence of Source_Capabilities Messages,
after VBUS is present, for a duration of tTypeCSinkWaitCap the Sink Shall issue Hard Reset Signaling in order to
restart the sending of Source_Capabilities Messages by the Source (see Section 6.7.4).
See Section 8.3.3.3 for more details of when the SinkWaitCapTimer are run.
6.6.3.3 tFirstSourceCap
After Port Partners are Attached or after a Hard Reset or after a Power Role Swap or after a Fast Role Swap a Source
Shall send its first Source_Capabilities Message within tFirstSourceCap of VBUS reaching vSafe5V. This ensures that
the Sink receives a Source_Capabilities Message before the Sink’s SinkWaitCapTimer expires.
6.6.4.2 tPRSwapWait
The time before the next PR_Swap Message, after a Wait Message has been received in response to a PR_Swap
Message is a minimum of tPRSwapWait min (see Section 6.3.12). The Port Shall wait at least tPRSwapWait after
receiving the EOP of a Wait Message sent in response to a PR_Swap Message, before sending a new PR_Swap
Message.
6.6.4.3 tDRSwapWait
The time before the next DR_Swap Message, after a Wait Message has been received in response to a DR_Swap
Message is a minimum of tDRSwapWait min (see Section 6.3.12). The Port Shall wait at least tDRSwapWait after
Page 170 USB Power Delivery Specification Revision 3.0, Version 1.1
receiving the EOP of a Wait Message sent in response to a DR_Swap Message, before sending a new DR_Swap
Message.
6.6.4.4 tVconnSwapWait
The time before the next VCONN_Swap Message, after a Wait Message has been received in response to a
VCONN_Swap Message is a minimum of tVCONNSwapWait min (see Section 6.3.12). The Port Shall wait at least
tVCONNSwapWait after receiving the EOP of a Wait Message sent in response to a VCONN_Swap Message, before
sending a new VCONN_Swap Message.
6.6.5.2 PSSourceOffTimer
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 171
The PSSourceOffTimer relates to the time taken for the initial Source to stop supplying power and for VBUS to revert
to vSafe5V (see also Section 7.2.10 and Section 7.3.15). The timer Shall time out if a PS_RDY Message has not been
received from the initial Source within tPSSourceOff indicating this has occurred.
6.6.5.3 PSSourceOnTimer
6.6.6 NoResponseTimer
The NoResponseTimer is used by the Policy Engine in a Source or Sink to determine that its Port Partner is not
responding after a Hard Reset. When the NoResponseTimer times out, the Policy Engine Shall issue up to
nHardResetCount additional Hard Resets before determining that the Port Partner is non-responsive to USB Power
Delivery messaging.
If the Source fails to receive a GoodCRC Message in response to a Source_Capabilities Message within tNoResponse
of:
The last bit of a Hard Reset Signaling being sent by the PHY Layer if the Hard Reset Signaling was initiated by the
Sink.
The last bit of a Hard Reset Signaling being received by the PHY Layer if the Hard Reset Signaling was initiated by
the Source.
Then the Source Shall issue additional Hard Resets up to nHardResetCount times (see Section 6.8.2).
Page 172 USB Power Delivery Specification Revision 3.0, Version 1.1
For a non-responsive device, the Policy Engine in a Source May either decide to continue sending Source_Capabilities
Messages or to go to non-USB Power Delivery operation and cease sending Source_Capabilities Messages.
6.6.7.2 BISTContModeTimer
The BISTContModeTimer is used by a UUT to ensure that a Continuous BIST Mode (i.e. BIST Carrier Mode) is exited
in a timely fashion. A UUT that has been put into a Continuous BIST Mode Shall return to normal operation (either
PE_SRC_Transition_to_default, PE_SNK_Transition_to_default, or PE_CBL_Ready) within tBISTContMode of the last
bit of the bit of the EOP of GoodCRC Message sent in response to the BIST Message used to enable the Continuous
BIST Mode.
6.6.9.2 tProtErrSoftReset
If the Protocol Error occurs that causes the Source or Sink to send a Soft_Reset Message, the transmission of the
Soft_Reset Message Shall be completed within tProtErrSoftReset of the EOP of the GoodCRC sent in response to the
Message that caused the Protocol Error.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 173
6.6.10.2 PSHardResetTimer
The PSHardResetTimer is used by the Policy Engine in a Source to ensure that the Sink has had sufficient time to
process Hard Reset Signaling before turning off its power supply to VBUS.
When a Hard Reset occurs the Source stops driving VCONN, removes Rp from the VCONN pin and starts to transition the
VBUS voltage to vSafe0V either:
tPSHardReset after the last bit of the Hard Reset Signaling has been received from the Sink or
tPSHardReset after the last bit of the Hard Reset Signaling has been sent by the Source.
See Section 7.1.5.
6.6.10.3 tDRSwapHardReset
If a DR_Swap Message is received during Modal Operation then a Hard Reset Shall be initiated by the recipient of the
unexpected DR_Swap Message; Hard Reset Signaling Shall be generated within tDRSwapHardReset of the EOP of the
GoodCRC sent in response to the DR_Swap Message.
6.6.10.4 tProtErrHardReset
If a Protocol Error occurs that directly leads to a Hard Reset, the transmission of the Hard Reset Signaling Shall be
completed within tProtErrHardReset of the EOP of the GoodCRC sent in response to the Message that caused the
Protocol Error.
6.6.11.2 VDMModeEntryTimer
The VDMModeEntryTimer Shall be used by the Initiator’s Policy Engine to ensure that the response to a Structured
VDM Enter Mode Command request (ACK or NAK with ACK indicating that the requested Mode has been entered)
arrives within a bounded time of tVDMWaitModeEntry. Failure to receive the expected response is detected when
the VDMModeEntryTimer expires.
The Policy Engine’s response when the VDMModeEntryTimer expires is to inform the Device Policy Manager (see
Section 8.3.3.20.1).
Page 174 USB Power Delivery Specification Revision 3.0, Version 1.1
The VDMModeEntryTimer Shall be started from the time the last bit of the GoodCRC Message EOP (i.e. the GoodCRC
Message corresponding to the VDM Command request) has been received by the Physical Layer. The
VDMModeEntryTimer Shall be stopped when the last bit of the expected Structured VDM Command response (ACK,
NAK or BUSY) EOP has been received by the Physical Layer.
The receiver of a Message requiring a response Shall respond within tVDMEnterMode in order to ensure that the
sender’s VDMModeEntryTimer does not expire.
The tVDMEnterMode time Shall be measured from the time the last bit of the Message EOP has been received by the
Physical Layer until the first bit of the response Message Preamble has been transmitted by the Physical Layer.
6.6.11.3 VDMModeExitTimer
The VDMModeExitTimer Shall be used by the Initiator’s Policy Engine to ensure that the ACK response to a
Structured VDM Exit Mode Command, indicating that the requested Mode has been exited, arrives within a bounded
time of tVDMWaitModeExit. Failure to receive the expected response is detected when the VDMModeExitTimer
expires.
The Policy Engine’s response when the VDMModeExitTimer expires is to inform the Device Policy Manager (see
Section 8.3.3.20.2).
The VDMModeExitTimer Shall be started from the time the last bit of the GoodCRC Message EOP (i.e. the GoodCRC
Message corresponding to the VDM Command requesting a response) has been received by the Physical Layer. The
VDMModeExitTimer Shall be stopped when the last bit of the expected Structured VDM Command response ACK EOP
has been received by the Physical Layer.
The receiver of a Message requiring a response Shall respond within tVDMExitMode in order to ensure that the
sender’s VDMModeExitTimer does not expire.
The tVDMExitMode time Shall be measured from the time the last bit of the Message EOP has been received by the
Physical Layer until the first bit of the response Message Preamble has been transmitted by the Physical Layer.
6.6.11.4 tVDMBusy
The Initiator Shall wait at least tVDMBusy, after receiving a BUSY Command response, before repeating the
Structured VDM request again.
6.6.12.2 tVCONNSourceOff
The tVCONNSourceOff time applies during a Vconn Swap. The initial VCONN Source Shall cease sourcing VCONN within
tVCONNSourceOff of receipt of the last bit of the EOP of the PS_RDY Message.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 175
6.6.13 tCableMessage
Ports compliant with this Revision of the specification Shall Not wait tCableMessage before sending an SOP’ or SOP’’
Packet even when communicating using [USBPD 2.0] with a Cable Plug. This specification defines collision avoidance
mechanisms that obviate the need for this time.
Cable Plugs Shall only wait tCableMessage before sending an SOP’ or SOP’’ Packet when operating at [USBPD 2.0].
When operating at Revisions higher than [USBPD 2.0] Cable Plugs Shall Not wait tCableMessage before sending an
SOP’ or SOP’’ Packet.
6.6.14 DiscoverIdentityTimer
The DiscoverIdentityTimer is used during an Explicit Contract when discovering whether a Cable Plug is PD Capable
using SOP’. When performing cable discovery during an Explicit Contract the Discover Identity Command request
Shall be sent every tDiscoverIdentity. No more than nDiscoverIdentityCount Discover Identity Messages without a
GoodCRC Message response Shall be sent. If no GoodCRC Message response is received after nDiscoverIdentityCount
Discover Identity Command requests have been sent by a Port, the Port Shall Not send any further SOP’/SOP’’
Messages.
6.6.16 tFRSwapInit
That last bit of the EOP of the FR_Swap Message Shall be transmitted by the new Source no later than tFRSwapInit
after the Fast Role Swap request has been detected (see Section 5.8.6.3).
6.6.17.2 ChunkSenderRequestTimer
The ChunkSenderRequestTimer is used during a Chunked Message transmission.
The ChunkSenderRequestTimer Shall be used by the sender’s Chunking state machine to ensure that a Chunk
Response is responded to within a bounded time of tChunkSenderRequest. Failure to receive the expected response
is detected when the ChunkSenderRequestTimer expires.
The ChunkSenderRequestTimer Shall be started when:
The last bit of the EOP of the GoodCRC Message corresponding to the Chunk Response Message is received.
The ChunkSenderRequestTimer Shall be stopped when:
The last bit of the EOP of the Chunk Request Message is received.
Page 176 USB Power Delivery Specification Revision 3.0, Version 1.1
A Message other than a Chunk Request is received from the Protocol Layer Rx.
The receiver of a Chunk Response requiring a Chunk Request Shall respond with a Chunk Request within
tChunkReceiverRequest in order to ensure that the sender’s ChunkSenderRequestTimer does not expire.
The tChunkReceiverRequest time Shall be measured from the time the last bit of the Message EOP has been received
by the Physical Layer until the first bit of the response Message Preamble has been transmitted by the Physical Layer.
6.6.17.3 ChunkSenderResponseTimer
The ChunkSenderResponseTimer is used during a Chunked Message transmission.
The ChunkSenderResponseTimer Shall be used by the sender’s Chunking state machine to ensure that a Chunk
Request is responded to within a bounded time of tChunkSenderResponse. Failure to receive the expected response
is detected when the ChunkSenderResponseTimer expires.
The ChunkSenderResponseTimer Shall be started when:
The last bit of the EOP of GoodCRC Message corresponding to the Chunk Request Message is received.
The ChunkSenderResponseTimer Shall be stopped when:
The last bit of the EOP of the Chunk Response Message is received.
A Message other than a Chunk is received from the Protocol Layer.
The receiver of a Chunk Request requiring a Chunk Response Shall respond with a Chunk Response within
tChunkReceiverResponse in order to ensure that the sender’s ChunkSenderResponseTimer does not expire.
The tChunkReceiverResponse time Shall be measured from the time the last bit of the Message EOP has been
received by the Physical Layer until the first bit of the response Message Preamble has been transmitted by the
Physical Layer.
6.6.18.2 SourcePPSCommTimer
The SourcePPSCommTimer Shall be used by the Source’s Policy Engine to ensure that a Request Message requesting
a PPS APDO is received periodically within a bounded time of tPPSTimeout.
The tPPSTimeout time Shall be measured from the time the last bit of the EOP of the GoodCRC Message sent in
response to the previous Request Message for a PPS APDO has been sent by the Physical Layer.
The SourcePPSCommTimer Shall be re-initialized and restarted when the last bit of the EOP of the GoodCRC Message
sent in response to a Request Message for a PPS APDO has been sent by the Physical Layer.
The Source Shall stop the SourcePPSCommTimer when:
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 177
A Request Message has been received.
There is a Power Role Swap.
There is a Hard Reset.
When the SourcePPSCommTimer times out the Source Shall issue Hard Reset Signaling.
Page 178 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-53 Time Values
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 179
Parameter Value (min) Value (max) Units Reference
tVCONNSourceOn 100 ms Section 6.6.12
Page 180 USB Power Delivery Specification Revision 3.0, Version 1.1
6.7 Counters
6.7.1 MessageID Counter
The MessageIDCounter is a rolling counter, ranging from 0 to nMessageIDCount, used to detect duplicate Messages.
This value is used for the MessageID field in the Message Header of each transmitted Message.
Each Port Shall maintain a copy of the last MessageID value received from its Port Partner. Devices that support
multiple ports, such as Hubs, Shall maintain copies of the last MessageID on a per Port basis. A Port which
communicates using SOP* Packets Shall maintain copies of the last MessageID for each type of SOP* it uses.
The transmitter Shall use the MessageID in a GoodCRC Message to verify that a particular Message was received
correctly. The receiver Shall use the MessageID to detect duplicate Messages.
6.7.6 VDMBusyCounter
When sending Responder Busy responses to a Structured Vendor_Defined Message a UFP or Cable Plug Shall
maintain a count of Messages sent (VDMBusyCounter). No more than nBusyCount Responder Busy responses Shall
be sent. The VDMBusyCounter Shall be reset on sending a non-Busy response. Products wishing to meet [USB Type-
C 1.2] requirements for Mode entry Should use an nBusyCount of 1.
Page 182 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 6-56 Counters
6.8 Reset
Resets are a necessary response to protocol or other error conditions. USB Power Delivery defines two different types
of reset; a Soft Reset, that resets protocol, and a Hard Reset which resets both the power supplies and protocol.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 183
Table 6-57 Response to an incoming Message (except VDM)
Incoming Message
Recognized
Recipient's
Recipient's state
Power Role
Supported Unrecognized
Unsupported
Expected Unexpected
During Process
return to PE_SRC_Ready state and process Message
Interruptible AMS Message
During Process
return to PE_SNK_Ready state and process Message
Interruptible AMS Message
During Non-
interruptible AMS Process
Hard Reset Signaling
(power Message
transitioned)
Defined by
Cable Plug Message Ignored Message Ignored See 6.12.4 Message Ignored NAK Command
vendor
A failure to see a GoodCRC Message in response to any Message within tReceive (after nRetryCount retries), when a
Port Pair is Connected, is indicative of a communications failure resulting in a Soft Reset (see Section 6.6.9.1).
A Soft Reset Shall impact the USB Power Delivery layers in the following ways:
Physical Layer: Reset not required since the Physical Layer resets on each packet transmission/reception.
Page 184 USB Power Delivery Specification Revision 3.0, Version 1.1
Protocol Layer: Reset MessageIDCounter, RetryCounter and state machines.
Policy Engine: Reset state dependent behavior by performing an Explicit Contract negotiation.
Power supply: Shall Not change.
A Soft Reset is performed using a sequence of protocol Messages (see Table 8-7). Message numbers Shall be set to
zero prior to sending the Soft_Reset/Accept Message since the issue might be with the counters. The sender of a
Soft_Reset Message Shall reset its MessageIDCounter and RetryCounter, the receiver of the Message Shall reset its
MessageIDCounter and RetryCounter before sending the Accept Message response. Any failure in the Soft Reset
process will trigger a Hard Reset when SOP Packets are being used or Cable Reset for any other SOP* Packets; for
example a GoodCRC Message is not received during the Soft Reset process (see Section 6.8.2 and Section 6.8.3).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 185
Cable Reset Signaling. If there has been a VCONN Swap and the UFP is currently supplying VCONN, the DFP Shall
perform a VCONN Swap such that it is supplying VCONN prior to generating Cable Reset Signaling.
Only a DFP Shall generate Cable Reset Signaling. A DFP Shall only generate Cable Reset Signaling within an Explicit
Contract.
A Cable Reset Shall cause all Active Modes in the Cable Plugs to be exited (see Section 6.4.4.3.4).
Page 186 USB Power Delivery Specification Revision 3.0, Version 1.1
6.11 State behavior
6.11.1 Introduction to state diagrams used in Chapter 6
The state diagrams defined in Section 6.11 are Normative and Shall define the operation of the Power Delivery
protocol layer. Note that these state diagrams are not intended to replace a well written and robust design.
Figure 6-44 shows an outline of the states defined in the following sections. At the top there is the name of the state.
This is followed by “Actions on entry” a list of actions carried out on entering the state and in some states “Actions on
exit” a list of actions carried out on exiting the state.
<Name of State>
Actions on entry:
“List of actions to carry out on entering the
state”
Actions on exit:
“List of actions to carry out on exiting the
state”
Transitions from one state to another are indicated by arrows with the conditions listed on the arrow. Where there
are multiple conditions these are connected using either a logical OR “|” or a logical AND “&”. The inverse of a
condition is shown with a “NOT” in front of the condition.
In some cases there are transitions which can occur from any state to a particular state. These are indicated by an
arrow which is unconnected to a state at one end, but with the other end (the point) connected to the final state.
In some state diagrams it is necessary to enter or exit from states in other diagrams. Figure 6-45 indicates how such
references are made. The reference is indicated with a hatched box. The box contains the name of the referenced
state.
Timers are included in many of the states. Timers are initialized (set to their starting condition) and run (timer is
counting) in the particular state it is referenced. As soon as the state is exited then the timer is no longer active.
Timeouts of the timers are listed as conditions on state transitions.
Conditions listed on state transitions will come from one of three sources:
Messages received from the PHY Layer
Events triggered within the Protocol Layer e.g. timer timeouts
Message and related indications passed up to the Policy Engine from the Protocol Layer (Message sent, Message
received etc.)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 187
Soft Reset Shall only apply to the State Machine instances it is targeted at based on the type of SOP* Packet used to
send the Soft_Reset Message. The Hard Reset State Machine (including Cable Reset) Shall apply simultaneously to all
Protocol Layer State Machine instances active in the DFP, UFP and Cable Plug (if present).
Policy Engine
Chunked Rx Chunked Tx
Chunking
Rp Control or
PHY Layer
Detection
Page 188 USB Power Delivery Specification Revision 3.0, Version 1.1
6.11.2.1.1.1 Optional Abort Mechanism
Long Chunked Messages bring with them the potential problem that they could prevent urgent messages from being
transmitted in a timely manner. An optional Abort mechanism is provided to remedy this problem.
The Abort Flag referred to in the diagrams below May be set and examined by the Policy Engine. The specific means
are left to the implementer.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 189
6.11.2.1.2 Chunked Rx State Diagram
Figure 6-47 shows the state behavior for the Chunked Rx State Machine. This recognizes whether chunked received
messages are involved, and deals with requesting chunks when they are. It also performs validity checks on all
messages related to chunking.
1Chunking is an internal state that is set to 1 if the ‘Unchunked Extended Messages Supported’ bit in either Source
Capabilities or Request is 0. It defaults to 1 and is set after the first exchange of Source Capabilities and Request. It is
also set to 1 for SOP’ or SOP’’ communication.
2 Additional bytes received over specified Data Size will be as a result of padding in the last chunk.
Page 190 USB Power Delivery Specification Revision 3.0, Version 1.1
The Chunked Rx State Machine Shall transition to the RCH_Processing_Extended_Message state when:
An Extended Message is passed up from the Chunked Message Router, and the Policy Engine has determined that
we are doing Chunking, and the Message has its Chunked bit set to 1b.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 191
The Chunked Rx State Machine Shall transition to the RCH_Processing_Extended_Message state when:
A Chunk is received from the Protocol Layer.
The Chunked Rx State Machine Shall transition to the RCH_Report_Error state when:
A Message, other than a Chunk, is received from the Protocol Layer, or
The ChunkSenderResponseTimer expires.
Page 192 USB Power Delivery Specification Revision 3.0, Version 1.1
6.11.2.1.3 Chunked Tx State Diagram
Figure 6-48 shows the state behavior for the Chunked Tx State Machine. This recognizes whether chunked
transmitted messages are involved, and deals with sending chunks and waiting for chunk requests when they are. It
also performs validity checks on all related messages related to chunking.
Start
Actions on entry:
Clear Abort Flag
Chunking &
Non-Extended Message Request | Message passed
Extended Message Request
Informed Not Chunking to Chunked Rx
(Rx Chunking Abort Flag Set
State != (Rx Chunking
RCH_Wait_For_ State !=
TCH_Pass_Down_Message Message_From_ TCH_Prepare_To_Send_ RCH_Wait_For_ TCH_Message_Received
Reported
Protocol_Layer) & Chunked_Message Message_From_
Actions on entry: Protocol_Layer) & Actions on entry:
Pass Message to Protocol Layer Abort Supported Actions on entry: Clear Extended Message Buffers
Abort Not Supported Pass Message to Chunked Rx
'Chunk Number To Send' = 0
Message
Passed
TCH_Message_Sent
Chunk
Actions on entry: Passed
Inform Policy Engine of Message
Sent
Chunk Request Rcvd &
Chunk Number =
TCH_Sending_ Chunk Number to Send
Message Transmitted
Chunked_Message
Actions on entry:
received from Protocol Layer &
Last Chunk
ChunkSenderRequestTimer
timeout
Message Transmitted
from Protocol Layer &
Not Last Chunk
TCH_Wait_Chunk_Request
Actions on entry:
Increment Chunk Number to Send
Start ChunkSenderRequestTimer
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 193
A non-Extended Message Request is received from the Policy Engine, or
A Message Request is received from the Policy Engine and the link is not Chunking.
The Chunked Tx State Machine Shall transition to the TCH_Prepare_To_Send_Chunked_Message state when:
An Extended Message Request is received from the Policy Engine, and the link is Chunking.
The Chunked Tx State Machine Shall Discard the Message Request and remain in the
TCH_Wait_For_Message_Request_From_Policy_Engine state when:
The Chunked Rx state is any other than TCH_Wait_For_Message_Request_From_Policy_Engine, and the optional
Abort Flag has not been implemented.
The Chunked Tx State Machine Shall Discard the Message Request and enter the TCH_Report_Error state when:
The Chunked Rx state is any other than TCH_Wait_For_Message_Request_From_Policy_Engine, and the optional
Abort Flag has been implemented.
Page 194 USB Power Delivery Specification Revision 3.0, Version 1.1
The Chunked Tx State Machine Shall transition to the TCH_Sending_Chunked_Message state when:
The Message Chunk has been passed to the Protocol Layer.
The Chunked Tx State Machine Shall transition to the TCH_Wait_For_Message_Request_From_Policy_Engine state
when:
The optional Abort Flag is set.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 195
6.11.2.1.3.10 TCH_Report_Error State
On entry to the TCH_Report_Error state the Chunked Tx State Machine Shall:
Report the error to the Policy Engine.
The Chunked Tx State Machine Shall transition to the TCH_Wait_For_Message_Request_From_Policy_Engine state
when:
The error has been reported.
Page 196 USB Power Delivery Specification Revision 3.0, Version 1.1
6.11.2.1.4 Chunked Message Router State Diagram
Figure 6-49 shows the state behavior for the Chunked Message Router. This determines to which state machine an
incoming message is routed to (Chunked Rx, Chunked Tx or direct to Policy Engine).
Start
RTR_Wait_for_
Soft Reset occured | Message_From_
Exit from Hard Reset Protocol_Layer
Actions on entry:
Sent Sent
Received Ping
From Protocol Layer
Message (not Ping) Message (not Ping)
Received from Received from
Protocol Layer & Sent Protocol Layer &
Not Doing Tx Chunks1 Doing Tx Chunks1
1 Doing
Tx Chunks means that Chunked Tx State Machine is not in the
TCH_Wait_For_Message_Request_From_Policy_Engine state
2 Messages are taken to include notification about transmission success or otherwise of Messages
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 197
6.11.2.1.4.3 RTR_Ping State
On entry to the RTR_Ping state the Chunked Message Router Shall:
Send the message to the Policy Engine.
Transition to the RTR_Wait_for_Message_From_Protocol_Layer state.
Page 198 USB Power Delivery Specification Revision 3.0, Version 1.1
6.11.2.2 Protocol Layer Message Transmission
PRL_Tx_Layer_Reset_for
_Transmit
Actions on entry:
PHY Layer reset Reset MessageIDCounter.
complete Protocol Layer message reception
transitions to
PRL_Rx_Wait_for_PHY_Message
state.
Soft Reset Message request received Layer Reset Complete
from Policy Engine
PRL_Tx_Wait_for_ PRL_Tx_Construct_Message
Message_Request
Actions on entry:
Actions on entry: Message request received Construct message
Reset RetryCounter Pass message to PHY Layer
from Policy Engine (except Soft Reset)
GoodCRC response
MessageID mismatch received from PHY Layer
PRL_Tx_Message_Sent PRL_Tx_Match_MessageID
Actions on entry: MessageID match Actions on entry:
Increment MessageIDCounter Match MessageIDCounter and
Inform Policy Engine message response MessageID
sent
1The CRCReceiveTimer is only started after the PHY has sent the message. If the message is not sent due to a busy
channel then the CRCReceiveTimer will not be started (see Section 6.6.1).
2This indication is sent by the PHY Layer when a message has been Discarded due to CC being busy, and after CC
becomes idle again (see Section 5.7). The CRCReceiveTimer is not running in this case since no message has been
sent.
3A “small” Extended Message is either an Extended Message with Data Size ≤ MaxExtendedMsgLegacyLen bytes or
an Extended Message with Data Size > MaxExtendedMsgLegacyLen bytes that has been Chunked. A “large”
Extended Message is an Extended Message with Data Size > MaxExtendedMsgLegacyLen bytes that has not been
Chunked.
4 See Section 6.10 for details of when Messages are Discarded.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 199
On exit from a Hard Reset.
On entry to the PRL_Tx_PHY_Layer_Reset state the Protocol Layer Shall reset the PHY Layer (clear any outstanding
Messages and enable communications).
The Protocol Layer Shall transition to the PRL_Tx_Wait_for_Message_Request state when:
When the PHY Layer reset is complete.
Page 200 USB Power Delivery Specification Revision 3.0, Version 1.1
The MessageIDCounter and the MessageID of the received GoodCRC Message match.
The Protocol Layer Shall transition to the PRL_Tx_Check_RetryCounter state when:
The MessageIDCounter and the MessageID of the received GoodCRC Message do not match.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 201
6.11.2.2.2 Source Protocol Layer Message Transmission State Diagram
Figure 6-51 shows the state behavior for the Protocol Layer in a Source when transmitting a Message.
PRL_Tx_Src_Sink_Tx
Actions on entry:
Set Rp = SinkTxOk
PRL_Tx_Wait_for_Message_Request
PRL_Tx_Src_Source_Tx
Actions on entry:
Set Rp = SinkTxNG
Message request
from Policy Engine
PRL_Tx_Src_Pending
Actions on entry:
Start SinkTxTimer
Soft Reset Message pending & Message pending (except Soft Reset) &
SinkTxTimer timeout SinkTxTimer timeout
PRL_Tx_Layer_Reset_for_Transmit PRL_Tx_Construct_Message
Page 202 USB Power Delivery Specification Revision 3.0, Version 1.1
The Protocol Layer Shall transition to the PRL_Tx_Wait_for_Message_Request state when:
Rp has been set
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 203
6.11.2.2.3 Sink Protocol Layer Message Transmission State Diagram
Figure 6-52 shows the state behavior for the Protocol Layer in a Source when transmitting a Message.
PRL_Tx_Wait_for_Message_Request
PRL_Tx_Snk_Start_of_AMS
Actions on entry:
PRL_Tx_Snk_Pending
Actions on entry:
Soft Reset Message pending & Message pending (except Soft Reset) &
Rp = SinkTxOk Rp = SinkTxOk
PRL_Tx_Layer_Reset_for_Transmit PRL_Tx_Construct_Message
Page 204 USB Power Delivery Specification Revision 3.0, Version 1.1
6.11.2.3 Protocol Layer Message Reception
Figure 6-53 shows the state behavior for the Protocol Layer when receiving a Message.
PRL_Rx_Layer_Reset_
for_Receive
Actions on entry:
Reset MessageIDCounter and clear
stored MessageID value
Soft Reset request from Policy Engine | Protocol Layer message
transmission transitions to
Exit from Hard Reset PRL_Tx_PHY_Layer_Reset state.
Start
Soft Reset Message received Soft Reset complete
from PHY
Message received
PRL_Rx_Wait_for_PHY_ from PHY (except Soft Reset) PRL_Rx_Send_GoodCRC
message
Actions on entry:
Actions on entry:
Message discarded bus Idle1 Send GoodCRC message to PHY
MessageID = stored
Message passed to MessageID (GoodCRC sent | Message discarded bus Idle1)
Policy Engine
PRL_Rx_Store_MessageID
PRL_Rx_Check_MessageID
Actions on entry:
Actions on entry:
Protocol Layer message transmission MessageID <> stored If there is a stored value compare
transitions to PRL_Tx_Discard_Message MessageID | MessageID with stored value.
state2. no stored value
Store new MessageID
Pass message to Policy Engine
1This indication is sent by the PHY when a message has been Discarded due to CC being busy, and after CC
becomes idle again (see Section 5.7). Two alternate allowable transitions are shown.
2In the case of a Ping message being received, in order to maintain robust communications in the presence of
collisions, the outgoing message Should Not be Discarded.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 205
6.11.2.3.2 PRL_Rx_Layer_Reset_for_Receive state
On entry to the PRL_Rx_Layer_Reset_for_Receive state the Protocol Layer Shall reset the MessageIDCounter and
clear the stored MessageID. The Protocol Layer Shall transition Protocol Layer Message transmission to the
PRL_Tx_Wait_for_Message_Request state (see Section 6.11.2.2.1.1).
The Protocol Layer Shall transition to the PRL_Rx_Send_GoodCRC State when:
The Soft Reset actions in this state have been completed.
Page 206 USB Power Delivery Specification Revision 3.0, Version 1.1
6.11.2.4 Hard Reset operation
Figure 6-54 shows the state behavior for the Protocol Layer when receiving a Hard Reset or Cable Reset request from
the Policy Engine or Hard Reset Signaling or Cable Reset Signaling from the Physical Layer (see also Section 6.8.2 and
Section 6.8.3).
PRL_HR_Reset_Layer
Actions on entry:
Reset MessageIDCounter.
Protocol Layer message transmission
transitions to
PRL_Tx_Wait_For_Message_Request state.
Protocol Layer message reception transitions
to PRL_Rx_Wait_for_PHY_Message state.
Protocol Layer reset complete & Protocol Layer reset complete &
(Hard Reset was Initiated by Policy Engine | (Hard Reset was initiated by Port Partner |
Cable Reset was Initiated by Policy Engine) Cable Reset received by Cable Plug)
PRL_HR_Request_Hard_Reset PRL_HR_Indicate_Hard_Reset
Actions on entry: Actions on entry:
Request PHY to perform a Hard Reset Inform the Policy Engine of the Hard
or Cable Reset Reset or Cable Reset
PRL_HR_Wait_For_PHY_
Hard_Reset_Complete
Actions on entry:
Start HardResetCompleteTimer
Wait for Hard Reset or Cable Reset complete
indication from PHY
PRL_HR_PHY_Hard_Reset_Requested
Actions on entry:
Inform Policy Engine Hard Reset or Cable
Reset request has been sent
PRL_HR_Wait_For_PE_Hard_Reset_Complete
Actions on entry:
Wait for Hard Reset or Cable Reset complete indication
from Policy Engine.
PRL_HR_PE_Hard_Reset_Complete
Actions on entry:
Inform Physical Layer Hard Reset or
Cable Reset is complete
1If the HardResetCompleteTimer timeout occurs this means that the PHY is still waiting to send the Hard Reset
due to a non-idle channel. This condition will be cleared once the PE Hard Reset is completed.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 207
2 CablePlugs do not generate Hard Reset signaling but are required to monitor for Hard Reset signaling between
the Port Partners and respond by resetting.
3 Cable Reset signaling is only recognized by a Cable Plug.
4 Cable Reset signaling cannot be generated by Cable Plugs
Page 208 USB Power Delivery Specification Revision 3.0, Version 1.1
6.11.2.4.4 PRL_HR_Wait_for_PHY_Hard_Reset_Complete state
In the PRL_HR_Wait_for_PHY_Hard_Reset_Complete state the Protocol Layer Shall start the
HardResetCompleteTimer and wait for the PHY Layer to indicate that the Hard Reset or Cable Reset has been
completed.
The Protocol Layer Shall transition to the PRL_HR_PHY_Hard_Reset_Requested state when:
A Hard Reset complete indication is received from the PHY Layer or
A Cable Reset complete indication is received from the PHY Layer or
The HardResetCompleteTimer times out.
6.11.2.4.7 PRL_HR_PE_Hard_Reset_Complete
On entry to the PRL_HR_PE_Hard_Reset_Complete state the Protocol Layer Shall inform the Physical Layer that the
Hard Reset or Cable Reset is complete.
The Protocol Layer Shall exit from the Hard Reset and return to normal operation when:
The Physical Layer has been informed that the Hard Reset is complete so that it will re-enable the
communications channel. If Hard Reset Signaling is still pending due to a non-idle channel this Shall be cleared
and not sent or
The Physical Layer has been informed that the Cable Reset is complete.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 209
6.11.3 List of Protocol Layer States
Table 6-60 lists the states used by the various state machines.
Page 210 USB Power Delivery Specification Revision 3.0, Version 1.1
State name Reference
RCH_Pass_Up_Message Section 6.11.2.1.2.2
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 211
6.12 Message Applicability
The following tables outline the Messages supported by a given port, depending on its capability.
When a Message is supported the feature and Message sequence implied by the Message Shall also be supported. For
example Sinks using power for charging that support the GotoMin Message Shall be able to reduce their current draw
when requested via a GotoMin Message.
The following abbreviations are used:
N – Normative; Shall be supported by this Port/Cable Plug
CN – Conditional Normative ; Shall be supported by a given Port/Cable Plug based on features
R – Recommended; Should be supported by this Port/Cable Plug
O – Optional; May be supported by this Port/Cable Plug
NS – Not Supported; Shall result in a Not_Supported Message response by this Port/Cable Plug when received.
I – Ignore; Shall be Ignored by this Port/Cable Plug when received.
NK – NAK; this Port/Cable Plug Shall return Responder NAK to this Command when received
NA – Not allowed; Shall Not be transmitted by this Port/Cable Plug.
DR – Don't Recognize; there Shall no response at all (i.e. not even a GoodCRC Message) from this Port/Cable Plug
when received.
For the case of Conditional Normative a note has been added to indicate the condition. “CN/” notation is used to
indicate the level of support when the condition is not present.
“R/” and “O/” notation is used to indicate the response when the Recommended or Optional Message is not
supported.
Note: that where NS/RJ/NK is indicated for Received Messages this Shall apply to the PE_CBL_Ready, PE_SNK_Ready
or PE_SRC_Ready states only since unexpected Messages received during a Message sequence are Protocol Errors (see
Section 6.8.1).
This section covers Control and Data Message support for Sources, Sink and Cable Plugs. It also covers VDM
Command support for DFPs, UFPs and Cable Plugs.
Page 212 USB Power Delivery Specification Revision 3.0, Version 1.1
6.12.1 Applicability of Control Messages
Table 6-61 details Control Messages that Shall/Should/ Shall Not be transmitted and received by a Source, Sink or
Cable Plug. Requirements for Dual-Role Power Ports and Dual-Role Data Ports Shall override any requirements for
Source-only or Sink-Only Ports.
DR_Swap O O N NA
FR_Swap NA NA R NA
Get_PPS_Status NA CN9 NA
Get_Sink_Cap R NA N NA
Get_Source_Cap NA R N NA
Get_Source_Cap_Extended NA R R NA
Get_Status R R NA
GoodCRC N N N
GotoMin CN1/O NA NA
Ping O NA NA
PR_Swap NA NA N NA
PS_RDY N NA N NA
Reject N NA O O NA
Soft_Reset N N NA
VCONN_Swap R R NA
Wait CN2/O NA O O NA
Received Message
Accept N N N N I
FR_Swap NS NS CN7/NS I
Get_PPS_Status CN9/NS NS I
Get_Sink_Cap NS N N I
Get_Source_Cap N NS N I
GoodCRC N N N
GotoMin NS R3 I
Ping NS I I
PR_Swap NS NS N I
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 213
Message Type Source Sink Dual-Role Dual-Role Cable Plug
Power Data
PS_RDY NS N N I
Reject CN8/NS N N N I
Soft_Reset N N N
Wait CN8/NS N N N I
Note 1: Shall be supported by a Hub with multiple Downstream Ports. Should be supported by a Host with
multiple Downstream Ports.
Note 2: Shall be supported when transmission of GotoMin Messages is supported.
Note 3: Should be supported by Sinks which use PD power for charging.
Note 4: Shall be supported by any Port that can operate as a VCONN Source.
Note 5: Shall be supported products that support the Source_Capabilities_Extended Message.
Note 6: Shall be supported by Sources that support the Alert Message.
Note 7: Shall be supported when the Fast Role Swap signal is supported.
Note 8: Shall be supported when VCONN_Swap is supported.
Note 9: Shall be supported when PPS is supported.
Note 10: Shall be supported when required by a country authority.
Request NA N NA
BIST N1 N1 NA
Sink_Capabilities NA N N NA
Alert R R NA
Received Message
Source_Capabilities NS N N I
Request N NS I
BIST N1 N1 N1
Page 214 USB Power Delivery Specification Revision 3.0, Version 1.1
Message Type Source Sink Dual-Role Cable Plug
Power
Note 1: For details of which BIST Modes and Messages Shall be supported see Section 5.9 and
Section 6.4.3.
Note 2: Shall be supported by products that contain batteries.
Note 3: Shall be supported by products that support the Get_Battery_Status Message.
Note 4: Shall be supported by products that support the Get_Sink_Cap Message.
Note 5: Shall be supported when required by a country authority.
Get_Battery_Cap R R NA
Get_Battery_Status R R NA
Get_Manufacturer_Info R R NA
Manufacturer_Info R R R
PPS_Status CN8/NA NA NA
Source_Capabilities_Extended R NA R NA
Status R R R NA
Received Message
Battery_Capabilities CN4/NS CN4/NS I
PPS_Status NS CN9/NS I
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 215
Message Type Source Sink Dual-Role Cable Plug
Power
Security_Response CN6/NS CN6/NS I
Attention O O NA
Received Command Request/Transmitted Command Response
Discover Identity O/NK3 CN1/R/NK3 N
Page 216 USB Power Delivery Specification Revision 3.0, Version 1.1
6.12.5 Applicability of Reset Signaling
Table 6-65 details Reset Signaling that Shall/Should/ Shall Not be transmitted and received by a DFP/UFP or Cable
Plug.
Hard Reset N N NA
Hard Reset N N N
Cable Reset DR DR N
Note 1: Shall be supported when transmission of SOP’ Packets are supported.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 217
6.13 Value Parameters
Table 6-67 contains value parameters used in this section.
Page 218 USB Power Delivery Specification Revision 3.0, Version 1.1
7. Power Supply
7.1 Source Requirements
7.1.1 Behavioral Aspects
A USB PD Source exhibits the following behaviors:
Shall be backward compatible with legacy VBUS ports.
Shall supply the default [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] voltage and current to VBUS when
the USB cable is Attached (USB Default Operation).
Shall supply the default [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] voltage and current to VBUS when a
Contract does not exist (USB Default Operation).
Shall return vSafe0V for some time then return to vSafe5V when Hard Reset Signaling is received.
Shall control VBUS voltage transitions as bound by undershoot, overshoot and transition time requirements.
SOURCE CABLE
...
C1
C2 Lines Lines
GND GND
SHIELD SHIELD
Source Bulk Capacitance
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 219
The Variable Supply (non-Battery) PDO exposes very poorly regulated Sources. The output voltage of a Variable
Supply (non-Battery) Shall remain within the absolute maximum output voltage and the absolute minimum
output voltage exposed in the Variable Supply PDO.
The Battery Supply PDO exposes Batteries than can be connected directly as a Source to VBUS. The output voltage
of a Battery Supply Shall remain within the absolute maximum output voltage and the absolute minimum output
exposed in the Battery Supply PDO.
The Programmable Power Supply (PPS) Augmented PDO (APDO) exposes a Source with an output voltage that
can be adjusted programmatically over a defined range. The output voltage of the Programmable Power Supply
Shall remain within a range defined by the relative tolerance vPpsNew and the absolute band vPpsValid.
vSrcNew(max)
vSrcNew(typ)
vSrcNew(min)
vSrcValid(min)
Lower bound of valid Source range
≈
vSrcSlewPos
Starting voltage
t0 tSrcSettle tSrcReady
At the start of the positive voltage transition the VBUS voltage level Shall Not droop vSrcValid min below either
vSrcNew (i.e., if the starting VBUS voltage level is not vSafe5V) or vSafe5V as applicable.
Page 220 USB Power Delivery Specification Revision 3.0, Version 1.1
Not exceed vSrcSlewNeg. The negative voltage transition Shall remain monotonic while the transitioning voltage is
above vSrcValid max and Shall remain within the vSrcValid range upon crossing vSrcValid max as shown in Figure
7-3. The starting time, t0, in Figure 7-3 starts tSrcTransition after the last bit of the EOP of the GoodCRC Message has
been received by the Source.
Starting voltage
vSrcSlewNeg
vSrcNew(max)
vSrcNew(typ)
vSrcNew(min)
vSrcValid(min)
Lower bound of valid Source range
≈
t0 tSrcSettle tSrcReady
If the newly negotiated voltage is vSafe5V, then the vSrcValid limits Shall determine the transition window and the
transitioning Source Shall settle within the vSafe5V limits by tSrcSettle.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 221
Figure 7-4 PPS Positive Voltage Transitions
vPpsSlewPos
≈ ≈ vPpsValid ≈
V(3) > V(2)
≈
≈
Nominal V(3) vPpsNew
vPpsValid
vPpsSlewPos
vPpsMaxVoltage
V(3) = 1+n + vPpsMinVoltage
≈ ≈ ≈ ≈
vPpsValid
V(2) = 1 + vPpsMinVoltage
vPpsValid
vPpsSlewPos
vPpsMinVoltage V(1)
vPpsMinVoltage
≈ ≈ ≈ ≈ ≈
0 Volts
Page 222 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 7-5 PPS Negative Voltage Transitions
vPpsMaxVoltage V(a)
Programmable Power Supply Output Range
vPpsSlewNeg
≈ vPpsValid ≈ ≈
vPpsNew
≈ Nominal V(b)
V(b) < V(a)
≈
vPpsValid
vPpsSlewNeg
vPpsMaxVoltage
V(b) = 1 + n + vPpsMinVoltage
≈ ≈ ≈ ≈
vPpsValid
vPpsNew
≈ Nominal V(c)
V(c) < V(b)
≈ vPpsSlewNeg
V(c) = 1 + vPpsMinVoltage
vPpsValid
vPpsMinVoltage
≈ ≈ ≈ ≈ ≈
0 Volts
The PPS output voltage ripple is expected to exceed the magnitude of one or more LSB as show in the Figure 7-6.
+1 LSB
+1 LSB
time
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 223
Any current overshoot or undershoot that occurs due to a load change during Current Foldback Shall Not exceed
iPpsCfTransient and Shall settle to the Operating Current value within tPpsCfSettle. Voltage overshoot or
undershoot caused by a transition from Current Foldback mode to Constant Voltage mode Shall Not exceed
vPpsCfCvTransient and Shall settle to the Operating Voltage value within tPpsCfCvTransient. Likewise, current
overshoot or undershoot caused by a transition from Constant Voltage mode to Current Foldback mode Shall Not
exceed iPpsCvCfTransient and Shall settle to the Operating Current value within tPpsCvCfTransient.
The PPS Shall maintain its output voltage within the Minimum Voltage and Maximum Voltage values advertised in the
PPS APDO for all static and dynamic load conditions during Current Foldback operation. The PPS is not expected to
deliver power if the load condition results in an output voltage that is lower than the Minimum Voltage value
advertised in the PPS APDO. Rather, the Source Shall send Hard Reset Signaling and discharge VBUS to vSafe0V then
resume default operation at vSafe5V.
The relationship between PPS programmable output voltage and PPS programmable Current Foldback Shall be as
shown in Figure 7-7.
iPpsCfStep
PPS APDO
Min Voltage vPpsNew, vPpsValid tolerance band
(0,0)
iPpsCfMin PPS Output Current PPS APDO Max Current
Page 224 USB Power Delivery Specification Revision 3.0, Version 1.1
tPSHardReset after the last bit of the Hard Reset Signaling has been received from the Sink or
tPSHardReset after the last bit of the Hard Reset Signaling has been sent by the Source.
The Source Shall meet both tSafe5V and tSafe0V relative to the start of the voltage transition as shown in Figure 7-8.
Old voltage
≈
vSafe5V(max), VCONN(max)
vSafe0V(max)
vVconnDischarge
0V
t0
vSrcNeg(max)
tVconnDischarge tVconnOn
tSafe5V
tSrcRecover
tSafe0V tSrcTurnOn
VCONN will meet tVconnDischarge relative to the start of the voltage transition as shown in Figure 7-8 due to the
discharge circuitry in the Cable Plug. VCONN Shall meet tVconnOn relative to VBUS reaching vSafe5V. Note tVconnOn
and tVconnDischarge are defined in [USB Type-C 1.2].
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 225
The Source Shall prevent continual system or port cycling if over current protection continues to engage after initially
resuming either default operation or renegotiation. Latching off the port or system is an acceptable response to
recurring over current.
During the over current response and subsequent system or port shutdown, all affected Source ports operating with
VBUS greater than vSafe5V Shall discharge VBUS to vSafe5V by the time tSafe5V and vSafe0V by the time tSafe0V.
7.1.7.4 Detach
A USB Detach is detected electrically using CC detection on the USB Type-C connector. When the Source is Detached
the Source Shall transition to vSafe0V by tSafe0V relative to when the Detach event occurred. During the transition
to vSafe0V the VBUS voltage Shall be below vSafe5V max by tSafe5V relative to when the Detach event occurred and
Shall Not exceed vSafe5V max after this time.
Page 226 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 7-9 Application of vSrcNew and vSrcValid limits after tSrcReady
vSrcValid(max)
tSrcTransient windows
vSrcNew(max)
vSrcNew(typ)
vSrcNew(min)
tSrcTransient window
vSrcValid(min)
≈
Sink Load I2
iLoadReleaseRate
iLoadStepRate
≈
≈
Sink Load I1
tSrcReady
The Source output voltage Shall be measured at the connector receptacle. The stability of the Source Shall be tested
in 25% load step increments from minimum load to maximum load and also from maximum load to minimum load.
The transient behavior of the load current is defined in Section 7.2.6. The time between each step Shall be sufficient
to allow for the output voltage to settle between load steps. In some systems it might be necessary to design the
Source to compensate for the voltage drop between the output stage of the power supply electronics and the
receptacle contact. The determination of whether compensation is necessary is left to the discretion of the Source
implementation.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 227
Any discharge circuitry that was used to achieve vSafe0V Shall be removed from VBUS.
The Dual-Role Power Port Shall be configured as a Sink.
The USB connection Shall Not reset even though vSafe5V is no longer present on VBUS (see Section 9.1.2).
The PS_RDY Message associated with the Source being in Swap Standby Shall be sent after the VBUS drive is removed.
The time for the Source to transition to Swap Standby Shall Not exceed tSrcSwapStdby. Upon entering Swap Standby
the Source has relinquished its role as Source and is ready to become the new Sink. The transition time from Swap
Standby to being the new Sink Shall be no more than tNewSnk. The new Sink May start using power after the new
Source sends the PS_RDY Message.
vSrcNew(min)
vSrcPeak(min)
Page 228 USB Power Delivery Specification Revision 3.0, Version 1.1
7.1.12 Source Capabilities Extended Parameters
Implementers can choose to make available certain characteristics of a USB PD Source as a set of static and/or
dynamic parameters to improve interoperability between external power sources and portable computing devices.
The complete list of reportable static parameters are described in full in Section 6.5.1 and listed in Figure 6-30. The
subset of parameters listed below directly represent Source capabilities and are described in the rest of this section.
Voltage Regulation.
Holdup Time.
Compliance.
Peak Current.
Source Inputs.
Batteries.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 229
Figure 7-11 Holdup Time Measurement
AC mains voltage
≈
VBUS
vSrcValid(min)
Hold Up Time
Page 230 USB Power Delivery Specification Revision 3.0, Version 1.1
7.1.12.6 Batteries
The Batteries field Shall report the number of Batteries the Source supports. The Source Shall independently report
the number of Hot Swappable Batteries and the number of Fixed batteries.
When the power source connected to the Hub UFP stops sourcing power and VBUS at the Hub DRP connector
discharges below vSrcValid(min), if VBUS has been negotiated to a higher voltage thanvSafe5V, or vSafe5V (min) the
Fast Role Swap signal Shall be sent from the Hub DRP to the Host DRP and the Hub DRP Shall sink power. In the Fast
Role Swap use case, the Hub DRP behaves like a bidirectional power path. The Hub DRP Shall Not enable VBUS
discharge circuitry when changing operation from initial Source to new Sink.
The new Sink Shall be limited to USB Type-C Current (see [USB Type-C 1.2]) until a new Explicit Contract is
negotiated. All Sink requirements Shall apply to the new Sink after the Fast Role Swap is complete. The Fast Role
Swap response of the Host DRP is described in Section 7.2.10 since the Host DRP is operating as the initial Sink prior
to the Fast Role Swap.
After the VBUS voltage level at the Hub DRP connector drops below vSafe5V a PS_RDY Message Shall be sent to the
Host DRP as shown in the Fast Role Swap transition diagram of Section 7.3.15.
Figure 7-13 shows the VBUS detection and timing for the new Source during a Fast Role Swap after the Fast Role Swap
signal has been received. The new Source May turn on the VBUS output switch once VBUS is below vSafe5V (max). In
this case, the new Source prevents VBUS from falling below vSafe5V (min). The new source Shall turn on the VBUS
output switch within tSrcFRSwap of falling below vSafe5V (min).
Note: VBUS might have started at vSafe5V or at higher voltage. When the Fast Role Swap Signal is detected, VBUS could
therefore be either above vSafe5V (max), within the vSafe5V range, or below vSafe5V (min).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 231
Figure 7-13 VBUS detection and timing during Fast Role Swap
vSafe5V(min)
Old Source
detects power loss
and signals Fast
Role Swap
0V
tSrcFRSwap
Page 232 USB Power Delivery Specification Revision 3.0, Version 1.1
7.2 Sink Requirements
7.2.1 Behavioral Aspects
A USB PD Sink exhibits the following behaviors.
Shall be backward compatible with legacy VBUS ports.
Shall draw the default [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] VBUS current when the USB cable is
Attached (USB Default Operation).
Shall draw the default [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] VBUS current when a Contract does
not exist (USB Default Operation).
Shall return to the default [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] VBUS when responding to a Hard
Reset (USB Default Operation).
Shall control VBUS in-rush current when increasing current consumption.
CABLE SINK
...
Lines Lines C3 C4
GND GND
SHIELD SHIELD
Sink Bulk Capacitance
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 233
7.2.3.1 Programmable Power Supply Sink Standby
A Sink is not required to transition to Sink Standby when operating within the negotiated PPS APDO. A Sink May
consume the Operating Current value in the Programmable RDO during PPS output voltage changes. However, prior
to operating the PPS in current foldback, the Sink Shall program the PPS Operating Voltage to the lowest practical
level that satisfies the Sink load requirement. Doing so will minimize the inrush current that occurs when the
transition to current foldback occurs. When operating with a PPS that is in current foldback, the Sink Shall Not
change its load in a manner that exceeds iPpsCfLoadStepRate or iPpsCfLoadReleaseRate. The load change
magnitude Shall Not exceed iPpsCfLoadStep or iPpsCfLoadRelease.
If the Sink negotiates for a new PPS APDO, then the Sink Shall transition to Sink Standby while changing between PPS
APDOs as described in Section 7.3.18.
Page 234 USB Power Delivery Specification Revision 3.0, Version 1.1
7.2.9 Robust Sink Operation
7.2.9.1 Sink Bulk Capacitance Discharge at Detach
When a Source is Detached from a Sink, the Sink Shall continue to draw power from its input bulk capacitance until
VBUS is discharged to vSafe5V or lower by no longer than tSafe5V from the Detach event. This safe Sink requirement
Shall apply to all Sinks operating with a negotiated VBUS level greater than vSafe5V and Shall apply during all low
power and high power operating modes of the Sink.
If the Detach is detected during a Sink low power state, such as USB Suspend, the Sink can then draw as much power
as needed from its bulk capacitance since a Source is no longer Attached. In order to achieve a successful Detach
detect based on VBUS voltage level droop, the Sink power consumption Shall be high enough so that VBUS will decay
below vSrcValid(min) well within tSafe5V after the Source bulk capacitance is removed due to the Detach. Once
adequate VBUS droop has been achieved, a discharge circuit can be enabled to meet the safe Sink requirement.
To illustrate the point, the following set of Sink conditions will not meet the safe Sink requirement without additional
discharge circuitry:
Negotiated VBUS = 20V.
Maximum allowable supplied VBUS voltage = 21.5V.
Maximum bulk capacitance = 30µF.
Power consumption at Detach = 12.5mW.
When the Detach occurs (hence removal of the Source bulk capacitance) the 12.5mW power consumption will draw
down the VBUS voltage from the worst-case maximum level of 21.5V to 17V in approximately 205ms. At this point,
with VBUS well below vSrcValid (min) an approximate 100mW discharge circuit can be enabled to increase the rate of
Sink bulk capacitance discharge and meet the safe Sink requirement. The power level of the discharge circuit is
dependent on how much time is left to discharge the remaining voltage on the Sink bulk capacitance. If a Sink has the
ability to detect the Detach in a different manner and in much less time than tSafe5V, then this different manner of
detection can be used to enable a discharge circuit, allowing even lower power dissipation during low power modes
such as USB Suspend.
In most applications, the safe Sink requirement will limit the maximum Sink bulk capacitance well below the
cSnkBulkPd limit. A Detach occurring during Sink high power operating modes must quickly discharge the Sink bulk
capacitance to vSafe5V or lower as long as the Sink continues to draw adequate power until V BUS has decayed to
vSafe5V or lower.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 235
7.2.9.3 Over Temperature Protection
Sinks Shall implement over temperature protection to prevent damage from temperature that exceeds the thermal
capability of the Sink. The definition of thermal capability and the monitoring locations used to trigger the over
temperature protection are left to the discretion of the Sink implementation.
Sinks Shall attempt to send a Hard Reset message when over temperature protection engages followed by an Alert
Message indicating an OTP event once an Explicit Contract has been established. The over temperature protection
response May engage at either the port or system level. Systems or ports that have engaged over temperature
protection Should attempt to resume default operation after sufficient cooling is achieved and May latch off to protect
the port or system. The definition of sufficient cooling is left to the discretion of the Sink implementation.
The Sink Shall be able to renegotiate with the Source after resuming default operation. The decision of how to
respond to renegotiation after an over temperature event is left to the discretion of the Sink implementation.
The Sink Shall prevent continual system or port cycling if over temperature protection continues to engage after
initially resuming either default operation or renegotiation. Latching off the port or system is an acceptable response
to recurring over temperature.
Page 236 USB Power Delivery Specification Revision 3.0, Version 1.1
7.3 Transitions
The following sections illustrate the power supply’s response to various types of negotiations. The negotiation cases
take into consideration for the examples are as follows:
Higher Power Transitions
o Increase the current
o Increase the voltage
o Increase the voltage and the current
Relatively Constant Power Transitions
o Increase the voltage and decrease the current
o Decrease the voltage and increase the current
Lower Power Transitions
o Decrease the current
o Decrease the voltage
o Decrease the voltage and the current
Power Role Swap Transitions
o Source requests a Power Role Swap
o Sink requests a Power Role Swap
Go To Minimum Current Transition
Response to Hard Reset Signaling
o Source issues Hard Reset Signaling
o Sink issues Hard Reset Signaling
No change in Current or Voltage.
The transition from [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] operation into Power Delivery Mode can
also lead to a Power Transition since this is the initial Contract negotiation. The following types of Power Transitions
Shall also be applied when moving from [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] operation into Power
Delivery Mode:
High Power
Relatively Constant Power
Lower Power Transitions
No change in Current or Voltage.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 237
7.3.1 Increasing the Current
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when increasing the
current is shown in Figure 7-15. The sequence that Shall be followed is described in Table 7-1. The timing
parameters that Shall be followed are listed in Table 7-19 and Table 7-20. Note in this figure, the Sink has previously
sent a Request Message to the Source.
1 4
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 5
Evaluate
PSTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Accept PS_RDY
3
Source Port Source
Device Policy Mgr ñI
Source Port
Source Port Interaction
Source VOLD t1 Source VOLD
Power Supply
6 7
Sink
Sink Port ... ñI
Device Policy Mgr
Sink Port
Sink Port Interaction
Sink ≤ IOLD t2 Sink ≤ INEW
Power Supply
Source Port
VBUS doesn’t change
Voltage
Source
VBUS Voltage
Sink Port
≤ INEW
Current
≤ IOLD Sink
≈
VBUS Current
Page 238 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-1 Sequence Description for Increasing the Current
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 239
7.3.2 Increasing the Voltage
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when increasing the
voltage is shown in Figure 7-16. The sequence that Shall be followed is described in Table 7-2. The timing
parameters that Shall be followed are listed in Table 7-19, Table 7-20 and Table 7-21. Note in this figure, the Sink has
previously sent a Request Message to the Source.
1 5
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 6
Evaluate
PSTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Accept PS_RDY
4
Source Port Source
Device Policy Mgr ñV
Source Port
Source Port Interaction
Source VOLD t2 Source VNEW
Power Supply
3 7 8
Sink to Sink Sink Standby
Sink Port
Standby ... to Sink
Device Policy Mgr
Sink Port
Sink Port Interaction
Sink ≤ IOLD t1 Sink pSnkStdby t3 Sink ≤ IOLD
Power Supply
Source Port
VNEW
Voltage
Source
VOLD VBUS Voltage
Sink Port I2
≤ IOLD ≤ IOLD
Current
I1 Sink
VBUS Current
≈
I1
Page 240 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-2 Sequence Description for Increasing the Voltage
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 241
7.3.3 Increasing the Voltage and Current
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when increasing the
voltage and current is shown in Figure 7-17. The sequence that Shall be followed is described in Table 7-3. The
timing parameters that Shall be followed are listed in Table 7-19, Table 7-20 and Table 7-21. Note in this figure, the
Sink has previously sent a Request Message to the Source.
Figure 7-17 Transition Diagram for Increasing the Voltage and Current
1 5
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 6 Messaging
PSTransitionTimer (running)
Sink Port Evaluate Evaluate
Policy Engine Accept PS_RDY
4
Source Port Source
Device Policy Mgr ñVñI
Source Port
Source Port
Interaction
Source VOLD t2 Source VNEW
Power Supply
3 7 8
Sink to Sink Sink Standby
Sink Port
Standby ... to Sink
Device Policy Mgr
Sink Port
Sink Port
Interaction
Sink ≤ IOLD t1 Sink pSnkStdby t3 Sink ≤ INEW
Power Supply
Source Port
VNEW
Voltage Source
VOLD
VBUS Voltage
Sink Port I2
≤ INEW
Current Sink
≤ IOLD
I1 VBUS Current
≈
I1
Page 242 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-3 Sequence Diagram for Increasing the Voltage and Current
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 243
7.3.4 Increasing the Voltage and Decreasing the Current
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when increasing the
voltage and decreasing the current is shown in Figure 7-18. The sequence that Shall be followed is described in Table
7-4. The timing parameters that Shall be followed are listed in Table 7-19, Table 7-20 and Table 7-21. Note in this
figure, the Sink has previously sent a Request Message to the Source.
Figure 7-18 Transition Diagram for Increasing the Voltage and Decreasing the Current
1 5
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 6
Evaluate
PSTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Accept PS_RDY
4
Source Port Source
Device Policy Mgr ñ V òI
Source Port
Source Port
Interaction
Source VOLD t2 Source VNEW
Power Supply
3 7 8
Sink to Sink Sink Standby
Sink Port
Standby ... to Sink
Device Policy Mgr
Sink Port
Sink Port
Interaction
Sink ≤ IOLD t1 Sink pSnkStdby t3 Sink ≤ INEW
Power Supply
Source Port
VNEW
Voltage
Source
VOLD VBUS Voltage
Sink Port I2
≤ IOLD
Current
I1 ≤ INEW Sink
VBUS Current
≈
I1
Page 244 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-4 Sequence Description for Increasing the Voltage and Decreasing the Current
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 245
7.3.5 Decreasing the Voltage and Increasing the Current
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when decreasing the
voltage and increasing the current is shown in Figure 7-19. The sequence that Shall be followed is described in Table
7-5. The timing parameters that Shall be followed are listed in Table 7-19, Table 7-20 and Table 7-21. Note in this
figure, the Sink has previously sent a Request Message to the Source.
Figure 7-19 Transition Diagram for Decreasing the Voltage and Increasing the Current
1 5
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
2 6
Port to Port
PSTransitionTimer (running) Messaging
Sink Port Evaluate Evaluate
Policy Engine Accept PS_RDY
4
Source Port Source
Device Policy Mgr òVñI
Source Port
Source Port
Source VOLD t2 Source VNEW
Interaction
Power Supply
3 7 8
Sink to Sink Sink Standby
Sink Port
Standby ... to Sink
Device Policy Mgr
Sink Port
Sink Port
Sink ≤ IOLD t1 Sink pSnkStdby t3 Sink ≤ INEW
Interaction
Power Supply
Source Port
VOLD
Voltage
Source
VNEW VBUS Voltage
I1
I1
VBUS Current
I2
I1 ≤ (pSnkStdby/VBUS) I2 ≤ (pSnkStdby/VBUS) + cSnkBulkPd(DVBUS/Dt)
Page 246 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-5 Sequence Description for Decreasing the Voltage and Increasing the Current
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 247
7.3.6 Decreasing the Current
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when decreasing the
current is shown in Figure 7-20. The sequence that Shall be followed is described in Table 7-6. The timing
parameters that Shall be followed are listed in Table 7-19, Table 7-20 and Table 7-21. Note in this figure, the Sink has
previously sent a Request Message to the Source.
1 5
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
2 6
Port to Port
PSTransitionTimer (running) Messaging
Sink Port Evaluate Evaluate
Policy Engine Accept PS_RDY
4
Source Port Source
Device Policy Mgr òI
Source Port
Source Port
Source VOLD t2 Source VOLD
Interaction
Power Supply
3
Sink Port Sink
Device Policy Mgr òI
Sink Port
Sink Port
Sink ≤ IOLD t1 Sink ≤ INEW
Interaction
Power Supply
Source Port
VBUS does not change
Voltage
Source
VBUS Voltage
Sink Port
≤ IOLD
Current
Sink
≤ INEW VBUS Current
Page 248 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-6 Sequence Description for Decreasing the Current
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 249
7.3.7 Decreasing the Voltage
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when decreasing the
voltage is shown in Figure 7-21. The sequence that Shall be followed is described in Table 7-7. The timing
parameters that Shall be followed are listed in Table 7-19, Table 7-20 and Table 7-21. Note in this figure, the Sink has
previously sent a Request Message to the Source.
1 5
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 6
Evaluate
PSTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Accept PS_RDY
4
Source Port Source
Device Policy Mgr òV
Source Port
Source Port Interaction
Source VOLD t2 Source VNEW
Power Supply
3 7 8
Sink to Sink Sink Standby
Sink Port
Standby ... to Sink
Device Policy Mgr
Sink Port
Sink Port Interaction
Sink ≤ IOLD t1 Sink pSnkStdby t3 Sink ≤ IOLD
Power Supply
Source Port
VOLD
Voltage
Source
VNEW VBUS Voltage
Sink Port
≤ IOLD ≤ IOLD
Current
Sink
≈
I1
I1 VBUS Current
I2
Page 250 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-7 Sequence Description for Decreasing the Voltage
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 251
7.3.8 Decreasing the Voltage and the Current
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when decreasing the
voltage and current is shown in Figure 7-22. The sequence that Shall be followed is described in Table 7-8. The
timing parameters that Shall be followed are listed in Table 7-19, Table 7-20 and Table 7-21. Note in this figure, the
Sink has previously sent a Request Message to the Source.
Figure 7-22 Transition Diagram for Decreasing the Voltage and the Current
1 5
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
2 6
Port to Port
PSTransitionTimer (running) Messaging
Sink Port Evaluate Evaluate
Policy Engine Accept PS_RDY
4
Source Port Source
Device Policy Mgr òVòI
Source Port
Source Port
Source VOLD t2 Source VNEW
Interaction
Power Supply
3 7
Sink to Sink Sink Standby
Sink Port
Standby ... to Sink
Device Policy Mgr
Sink Port
Sink Port
Sink ≤ IOLD t1 Sink pSnkStdby t3 Sink ≤ INEW
Interaction
Power Supply
Source Port
VOLD
Voltage
Source
VNEW VBUS Voltage
Sink Port
≤ IOLD
Current ≤ INEW
Sink
≈
I1
I1 VBUS Current
I2
Page 252 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-8 Sequence Description for Decreasing the Voltage and the Current
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 253
7.3.9 Sink Requested Power Role Swap
The interaction of the System Policy, Device Policy, and power supply that Shall be followed during a Sink requested
Power Role Swap is shown in Figure 7-23. The sequence that Shall be followed is described in Table 7-9. The timing
parameters that Shall be followed are listed in Table 7-20. Note in this figure, the Sink has previously sent a PR_Swap
Message to the Source.
Figure 7-23 Transition Diagram for a Sink Requested Power Role Swap
1 5 9
tSrcTransition PSSourceOnTimer (running)
Initial Source Port Send Send Evaluate
Policy Engine Accept PS_RDY PS_RDY
Port to Port
2 6 8
Evaluate
PSSourceOffTimer (running)
Evaluate Send Messaging
Initial Sink Port
Policy Engine Accept PS_RDY PS_RDY
Source Port
VOLD
Voltage vSafe5V
Source
Initial Source New Source
VBUS Voltage
not driven
Sink Port
IOLD
Current pSnkSusp
Sink
Initial Sink I2 New Sink
VBUS Current
I1 I1
not driven
I1 ≤ iSnkSwapStdby I2 I2 ≤ iSnkSwapStdby + cSnkBulkPd(DVBUS/Dt)
Page 254 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-9 Sequence Description for a Sink Requested Power Role Swap
Step Initial Source Port à New Sink Port Initial Sink Port à New Source Port
1 Policy Engine sends the Accept Message to the Policy Engine receives the Accept and starts the
Initial Sink. PSSourceOffTimer.
2 Protocol Layer receives the GoodCRC Message Protocol Layer sends the GoodCRC Message to the Initial
from the Sink. The Policy Engine tells the Device Source. Policy Engine then evaluates the Accept Message.
Policy Manager to instruct the power supply to
modify its output power.
3 Policy Engine tells the Device Policy Manager to instruct
the power supply to transition to Swap Standby within
tSnkStdby (t1); t1 Shall complete before tSrcTransition.
When in Sink Standby the Initial Sink Shall Not draw more
than iSnkSwapStdby (I1). The Sink Shall Not violate
transient load behavior defined in Section 7.2.6 while
transitioning to and operating at the new power level.
4 tSrcTransition after the GoodCRC Message was
received the power supply starts to change its
output power capability to Swap Standby (see
Section 7.1.10). The power supply Shall complete
the transition to Swap Standby within
tSrcSwapStdby (t2). The power supply informs
the Device Policy Manager that it is ready to
operate as the new Sink. The CC termination is
changed from Rp to Rd (see [USB Type-C 1.2]).
The power supply status is passed to the Policy
Engine.
5 The power supply is ready and the Policy Engine
sends the PS_RDY Message to the device that will
become the new Source.
6 Protocol Layer receives the GoodCRC Message Policy Engine stops the PSSourceOffTimer.
from the device that will become the new Source. The Protocol Layer sends the GoodCRC Message to the
Policy Engine starts the PSSourceOnTimer. Upon new Sink.
sending the PS_RDY Message and receiving the Policy Engine tells the Device Policy to instruct the power
GoodCRC Message the Initial Source is ready to be supply to operate as the new Source.
the new Sink.
7 The CC termination is changed from Rd to Rp (see [USB
Type-C 1.2]). The power supply as the new Source
transitions from Swap Standby to sourcing default
vSafe5V within tNewSrc (t3). The power supply informs
the Device Policy Manager that it is operating as the new
Source.
8 Policy Engine receives the PS_RDY Message from Device Policy Manager informs the Policy Engine the
the Source. power supply is ready and the Policy Engine sends the
PS_RDY Message to the new Sink.
9 Policy Engine stops the PSSourceOnTimer. Protocol Layer receives the GoodCRC Message from the
Protocol Layer sends the GoodCRC Message to the new Sink.
new Source.
Policy Engine evaluates the PS_RDY Message from
the new Source and tells the Device Policy
Manager to instruct the power supply to draw
current as the new Sink.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 255
Step Initial Source Port à New Sink Port Initial Sink Port à New Source Port
10 The power supply as the new Sink transitions
from Swap Standby to drawing pSnkSusp within
tNewSnk (t4). The power supply informs the
Device Policy Manager that it is operating as the
new Sink. At this point subsequent negotiations
between the new Source and the new Sink May
proceed as normal. The Sink Shall Not violate the
transient load behavior defined in Section 7.2.6
while transitioning to and operating at the new
power level. The time duration (t4) depends on
the magnitude of the load change.
Page 256 USB Power Delivery Specification Revision 3.0, Version 1.1
7.3.10 Source Requested Power Role Swap
The interaction of the System Policy, Device Policy, and power supply that Shall be followed during a Source
requested Power Role Swap is shown in Figure 7-24. The sequence that Shall be followed is described in Table 7-10.
The timing parameters that Shall be followed are listed in Table 7-19. Note in this figure, the Sink has previously sent
a PR_Swap Message to the Source.
Figure 7-24 Transition Diagram for a Source Requested Power Role Swap
2 4 8
PSSourceOnTimer (running)
Initial Source Port Evaluate Send Evaluate
Policy Engine Accept PS_RDY PS_RDY
tSrcTransition Port to Port
1 5 7
Send
PSSourceOffTimer (running)
Evaluate Send
Messaging
Initial Sink Port
Policy Engine Accept PS_RDY PS_RDY
Source Port
VOLD
Voltage vSafe5V
Source
VBUS Voltage
Initial Source New Source
not driven
Sink Port
IOLD
Current pSnkSusp
Sink
I2
I1 VBUS Current
Initial Sink I1 New Sink
not driven
I1 ≤ iSnkSwapStdby I2 I2 ≤ iSnkSwapStdby + cSnkBulkPd(DVBUS/Dt)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 257
Table 7-10 Sequence Description for a Source Requested Power Role Swap
Step Initial Source Portà New Sink Port Initial Sink Port à New Source Port
1 Policy Engine receives the Accept Message. Policy Engine sends the Accept Message to the Initial
Source.
2 Protocol Layer receives the GoodCRC Message Protocol Layer receives the GoodCRC Message from the
from the Sink. The Policy Engine tells the Device Initial Source. Policy Engine starts the PSSourceOffTimer.
Policy Manager to instruct the power supply to
modify its output power.
2a The Policy Engine tells the Device Policy Manager to
instruct the power supply to transition to Swap Standby.
The power supply Shall complete the transition to Swap
Standby within tSnkStdby (t1); t1 Shall complete before
tSrcTransition. The Sink Shall Not violate the transient
load behavior defined in Section 7.2.6 while transitioning
to and operating at the new power level. Policy Engine
starts PSSourceOffTimer. When in Sink Standby the
Initial Sink Shall Not draw more than iSnkSwapStdby (I1).
3 tSrcTransition after the GoodCRC Message was
received the power supply starts to change its
output power capability to Swap Standby (see
Section 7.1.10). The power supply Shall complete
the transition to Swap Standby within
tSrcSwapStdby (t2). The power supply informs
the Device Policy Manager that it is ready to
operate as the new Sink. The CC termination is
changed from Rp to Rd (see [USB Type-C 1.2]).
The power supply status is passed to the Policy
Engine.
4 The Policy Engine sends the PS_RDY Message to Policy Engine receives the PS_RDY Message and stops the
the soon to be new Source. PSSourceOffTimer.
5 Protocol Layer receives the GoodCRC Message Protocol Layer sends the GoodCRC Message to the new
from the soon to be new Source. Policy Engine Sink. Upon evaluating the PS_RDY Message the Initial Sink
starts the PSSourceOnTimer. At this point the is ready to operate as the new Source. Policy Engine tells
Initial Source is ready to be the new Sink. the Device Policy to instruct the power supply to operate
as the new Source.
6 The CC termination is changed from Rd to Rp (see [USB
Type-C 1.2]). The power supply as the new Source
transitions from Swap Standby to sourcing default
vSafe5V within tNewSrc (t3). The power supply informs
the Device Policy Manager that it is operating as the new
Source.
7 Policy Engine receives the PS_RDY Message and Device Policy Manager informs the Policy Engine the
stops the PSSourceOnTimer. power supply is ready and the Policy Engine sends the
PS_RDY Message to the new Sink.
8 Protocol Layer sends the GoodCRC Message to the Protocol Layer receives the GoodCRC Message from the
new Source. new Sink.
Policy Engine evaluates the PS_RDY Message from
the new Source and tells the Device Policy
Manager to instruct the power supply to draw
current as the new Sink.
Page 258 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial Source Portà New Sink Port Initial Sink Port à New Source Port
9 The power supply as the new Sink transitions
from Swap Standby to drawing pSnkSusp within
tNewSnk (t4). The power supply informs the
Device Policy Manager that it is operating as the
new Sink. At this point subsequent negotiations
between the new Source and the new Sink May
proceed as normal. The new Sink Shall Not
violate the transient load behavior defined in
Section 7.2.6 while transitioning to and operating
at the new power level. The time duration (t4)
depends on the magnitude of the load change.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 259
7.3.11 GotoMin Current Decrease
The interaction of the System Policy, Device Policy, and power supply that Shall be followed during a GotoMin current
decrease is shown in Figure 7-25. The sequence that Shall be followed is described in Table 7-11. The timing
parameters that Shall be followed are listed in Table 7-19 and Table 7-11.
1 5
tSrcTransition
Source Port Send Send
Policy Engine Go To Min PS_RDY
Port to Port
2 6
Evaluate
PSTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Go To Min PS_RDY
4
Source Port Source
Device Policy Mgr òI
Source Port
Source Port Interaction
Source VOLD t2 Source VOLD
Power Supply
3
Sink Port Sink
Device Policy Mgr òI
Sink Port
Sink Port Interaction
Sink ≤ IOLD t1 Sink previously negotiated go to min current
Power Supply
Source Port
VBUS doesn’t change
Voltage
Source
VBUS Voltage
Sink Port
≤ IOLD
Current
Sink
go to min current VBUS Current
Page 260 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-11 Sequence Description for a GotoMin Current Decrease
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 261
7.3.12 Source Initiated Hard Reset
The interaction of the System Policy, Device Policy, and power supply that Shall be followed during a Source Initiated
Hard Reset is shown in Figure 7-26. The sequence that Shall be followed is described in Table 7-12. The timing
parameters that Shall be applied are listed in Table 7-19 and Table 7-20.
4 5
Source Port Source Source
Device Policy Mgr Hard Reset Recover
Source Port
Source Port Interaction
Source VOLD t2 Source vSafe0V t4 Source vSafe5V
Power Supply
Sink Port
≤ IOLD Default current draw
Current
Sink
≈ VBUS Current
iSafe0mA
Page 262 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-12 Sequence Description for a Source Initiated Hard Reset
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 263
7.3.13 Sink Initiated Hard Reset
The interaction of the System Policy, Device Policy, and power supply that Shall be followed during a Sink Initiated
Hard Reset is shown in Figure 7-27. The sequence that Shall be followed is described in Table 7-13. The timing
parameters that Shall be followed are listed in Table 7-19 and Table 7-20.
4
Source Port Evaluate
Policy Engine Hard Reset
Port to Port
1
Send tPSHardReset Messaging
Sink Port
Policy Engine Hard Reset
2 5 6
Process Source Source
Source Port Hard Reset
Device Policy Mgr Hard Reset Recover
Source Port
Source Port Interaction
Source VOLD t2 Source vSafe0V t4 Source vSafe5V
Power Supply
3
Sink Port Sink
Device Policy Mgr Prepare
Sink Port
Sink Port Interaction
Sink ≤ IOLD t1 Ready to recover and power up
Power Supply
Page 264 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-13 Sequence Description for a Sink Initiated Hard Reset
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 265
7.3.14 No change in Current or Voltage
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when the Sink requests
the same Voltage and Current as it is currently operating at is shown in Figure 7-28. The sequence that Shall be
followed is described in Table 7-14. The timing parameters that Shall be followed are listed in Table 7-19 and Table
7-20.
1 3
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 4
Evaluate
PSTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Accept PS_RDY
Source Port
Device Policy Mgr
Source Port
Source Port Interaction
Source VOLD
Power Supply
Sink Port
Device Policy Mgr
Sink Port
Sink Port Interaction
Sink ≤ IOLD
Power Supply
Source Port
VBUS doesn’t change
Voltage
Source
VBUS Voltage
Sink Port
Current
Current doesn’t change Sink
VBUS Current
Page 266 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 7-14 Sequence Description for no change in Current or Voltage
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 267
7.3.15 Fast Role Swap
The interaction of the System Policy, Device Policy, and power supply that Shall be followed during a Fast Role Swap
is shown in Figure 7-29. The sequence that Shall be followed is described in Table 7-15. The timing parameters that
Shall be followed are listed in Table 7-19 and Table 7-20. Negotiations between the new Source and the new Sink
May occur after the new Source sends the final PS_RDY Message. Note: in Figure 7-29 and Table 7-15 numbers are
used to indicate Message related steps and letters are used to indicate other events.
A D1 F
Source Port Source VBUS < Rp Changed
Device Policy Mgr Stops vSafe5V to Rd
Source Port
Source Port Interaction
Power Path Source Sink
D2 E G
VBUS < < tSrcFRSwap Source Rd Changed
Sink Port
vSafe5V VBUS to Rp
Device Policy Mgr
Sink Port
Sink Port Interaction
Sink Ready & Able to Source vSafe5V Source vSafe5V
Power Path
Source Port
Old Source
Voltage discharging to
vSafe0V New Source = vSafe5V Source
VBUS Voltage
Sink Port
rges
Current age discha New Sink
ent as VBUS volt Sink
se in curr
s the increa VBUS Current
Old Sink Represent
Step Initial Source Portà New Sink Port Initial Sink Port à New Source Port
A The Source connected to the Hub UFP (see Figure
7-12) stops sourcing VBUS.
B Policy Engine signals the Fast Role Swap to the
initial Sink on the CC wire.
C Policy Engine detects the Fast Role swap signal on the CC
wire from the initial Source and Shall send the FR_Swap
Message back to the initial Source (that is no longer
powering VBUS) within time tFRSwapInit.
D1 The Policy engine monitors for VBUS ≤ vSafe5V so
that a PS_RDY Message can be sent to the new
Source at Step 5 of the messaging sequence.
D2 The Policy engine monitors for VBUS ≤ vSafe5V so the initial
Sink can assume the role of new Source and begin to
source VBUS.
Page 268 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial Source Portà New Sink Port Initial Sink Port à New Source Port
E When VBUS = vSafe5V the new Source May provide power
to VBUS. When VBUS < vSafe5V the new Source Shall
provide power to VBUS within tSrcFRSwap and the PS_RDY
Message can be sent to the new Sink at Step 7 of the
messaging sequence.
F The CC termination is changed from Rp to Rd (see
[USB Type-C 1.2]) before the new Sink sends the
PS_RDY Message of Step 5 to the new Source.
G The CC termination is changed from Rd to Rp (see [USB
Type-C 1.2]) before the new Source sends the PS_RDY
Message of Step 7 to the new Sink.
1 Policy Engine receives the FR_Swap Message Policy Engine sends the FR_Swap Message to the initial
from the initial Sink that is transitioning to be the Source(that is no longer powering VBUS) after detecting the
new Source. Fast Role Swap signal of Step C.
2 Protocol Layer sends the GoodCRC Message to the Protocol Layer receives the GoodCRC Message from the
initial Sink. Policy Engine then evaluates the initial Source.
FR_Swap Message.
3 Policy Engine sends an Accept Message to the Policy Engine receives the Accept Message from the initial
initial Sink that is transitioning to be the new Source that is transitioning to be the new Sink.
Source.
4 Protocol Layer receives the GoodCRC Message Protocol Layer sends the GoodCRC Message to the initial
from the initial Sink that is transitioning to be the Source that is transitioning to be the new Sink.
new Source.
5 Policy Engine sends a PS_RDY Message to the Policy Engine receives the PS_RDY Message from the new
initial Sink that is transitioning to be the new Sink.
Source. The Policy Engine Shall wait for Step D1
before sending the PS_RDY Message.
6 Protocol Layer receives the GoodCRC Message Protocol Layer sends the GoodCRC Message from the
from the new Source. initial Sink that has completed the transition to new
Source. Policy Engine then evaluates the PS_RDY Message.
7 Policy Engine receives the PS_RDY Message from Policy Engine sends a PS_RDY Message to the new Sink.
the new Source. The Policy Engine Shall wait for Step E before sending the
PS_RDY Message.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 269
7.3.16 Increasing the Programmable Power Supply Voltage
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when increasing the
voltage is shown in Figure 7-30. The sequence that Shall be followed is described in Table 7-16. The timing
parameters that Shall be followed are listed in Table 7-19 and Table 7-20. Note in this figure, the Sink has previously
sent a Request Message to the Source.
Figure 7-30 Transition Diagram for Increasing the Programmable Power Supply Voltage
1 4
tPpsSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 5
Evaluate
PpsTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Accept PS_RDY
3
Source Port Source
Device Policy Mgr ñV
Source Port
Source Port Interaction
Source VOLD Pps Transition Interval Source VNEW
Power Supply
Sink Port
Device Policy Mgr
Sink Port
Sink Port Interaction
Sink draws current continuously (not to exceed negotiated current)
Power Supply
Source Port
VNEW
Voltage
Source
VOLD VBUS Voltage
Table 7-16 Sequence Description for Increasing the Programmable Power Supply Voltage
Page 270 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
5 Protocol Layer receives the GoodCRC Message from Protocol Layer sends the GoodCRC Message to the
the Sink. Source. Policy Engine then evaluates the PS_RDY
Message from the Source and tells the Device Policy
Manager that the Programmable Power Supply is
operating at the new voltage.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 271
7.3.17 Decreasing the Programmable Power Supply Voltage
The interaction of the System Policy, Device Policy, and power supply that Shall be followed when decreasing the
voltage is shown in Figure 7-31. The sequence that Shall be followed is described in Table 7-17. The timing
parameters that Shall be followed are listed in Table 7-19 and Table 7-20. Note in this figure, the Sink has previously
sent a Request Message to the Source.
Figure 7-31 Transition Diagram for Decreasing the Programmable Power Supply Voltage
1 4
tPpsSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 5
Evaluate
PpsTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Accept PS_RDY
3
Source Port Source
Device Policy Mgr òV
Source Port
Source Port Interaction
Source VOLD Pps Transition Interval Source VNEW
Power Supply
Sink Port
Device Policy Mgr
Sink Port
Sink Port Interaction
Sink draws current continuously (not to exceed negotiated current)
Power Supply
Source Port
VOLD
Voltage
Source
VNEW VBUS Voltage
Table 7-17 Sequence Description for Decreasing the Programmable Power Supply Voltage
Page 272 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
5 Protocol Layer receives the GoodCRC Message from Protocol Layer sends the GoodCRC Message to the
the Sink. Source. Policy Engine then evaluates the PS_RDY
Message from the Source and tells the Device Policy
Manager that the Programmable Power Supply is
operating at the new voltage.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 273
7.3.18 Changing the Source PDO or APDO
The interaction of the Device Policy Manager, the port Policy Engine and the Power Supply when changing between
Source PDOs and APDOs, as listed below, is shown in Figure 7-32.
PDO to PDO
PDO to APDO
APDO to APDO
APDO to PDO
The Source voltage as the transition starts Shall be any voltage within the Valid VBUS range of the previous Source
PDO or APDO. The Source voltage after the transition is complete Shall be any voltage within the Valid VBUS range of
the new Source PDO or APDO. The sequence that Shall be followed is described in Table 7-18. The timing parameters
that Shall be followed are listed in Table 7-19 and Table 7-20. Note in this figure, the Sink has previously sent a
Request Message to the Source.
Figure 7-32 Transition Diagram for Changing the Source PDO or APDO
1 5
tSrcTransition
Source Port Send Send
Policy Engine Accept PS_RDY
Port to Port
2 6
Evaluate
PSTransitionTimer (running)
Evaluate
Messaging
Sink Port
Policy Engine Accept PS_RDY
4
Source Port Source
Device Policy Mgr Change
Source Port
Source Port Interaction
Previous Source PDO or APDO t2 New Source PDO or APDO
Power Supply
3 7 8
Sink to Sink Sink Standby
Sink Port
Standby ... to Sink
Device Policy Mgr
Sink Port
Sink Port Interaction
Sink ≤ IOLD t1 Sink pSnkStdby t3 Sink ≤ INEW
Power Supply
Source Port
Voltage
Previous PDO or APDO VBUS New PDO or APDO VBUS Source
VBUS Voltage
Sink Port I2
≤ IOLD ≤ INEW
Current
I1 Sink
VBUS Current
≈
I1
Table 7-18 Sequence Description for Changing the Source PDO or APDO
Page 274 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
3 After sending the Accept Message, the
Source starts to change to the new
PDO or APDO. The Source transition
to the new PDO or APDO VBUS voltage
Shall be completed by
tSrcTransition. The power supply
informs the Device Policy Manager
that the transition to the new PDO or
APDO is complete. The power supply
status is passed to the Policy Engine.
4 The Policy Engine sends the PS_RDY The Policy Engine receives the PS_RDY
Message to the Sink. Message from the Source.
5 Protocol Layer receives the GoodCRC Protocol Layer sends the GoodCRC Message
Message from the Sink. to the Source. Policy Engine then evaluates
the PS_RDY Message from the Source and
tells the Device Policy Manager that the
Source is operating at the new PDO or APDO.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 275
7.4 Electrical Parameters
7.4.1 Source Electrical Parameters
The Source Electrical Parameters that Shall be followed are specified in Table 7-19.
Page 276 USB Power Delivery Specification Revision 3.0, Version 1.1
Parameter Description MIN TYP MAX UNITS Reference
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 277
Parameter Description MIN TYP MAX UNITS Reference
Page 278 USB Power Delivery Specification Revision 3.0, Version 1.1
Parameter Description MIN TYP MAX UNITS Reference
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 279
7.4.2 Sink Electrical Parameters
The Sink Electrical Parameters that Shall be followed are specified in Table 7-20.
Page 280 USB Power Delivery Specification Revision 3.0, Version 1.1
Parameter Description MIN TYP MAX UNITS Reference
pSnkSusp Suspend power consumption 25 mW
for a peripheral device.
Section 7.2.3
Note 1: If more bypass capacitance than cSnkBulk max or cSnkBulkPd max is required in the device, then the
device Shall incorporate some form of VBUS surge current limiting as described in [USB 3.1] Section 11.4.4.1.
vSafe5V Safe operating voltage at 5V. See [USB 2.0] and 4.75 5.5 V
[USB 3.1] for allowable VBUS voltage range. Section 7.1.5
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 281
8. Device Policy
8.1 Overview
This section describes the Device Policy and Policy Engine that implements it. For an overview of the architecture and
how the Device Policy Manager fits into this architecture, please see Section 2.7.
Page 282 USB Power Delivery Specification Revision 3.0, Version 1.1
For a Sink, evaluating and responding to capabilities related requests from the Policy Engine for a given Port.
Control of the Source/Sink in the device.
Control of the USB-C Port Control module for each Port.
Interface to the Policy Engine for a given Port.
The Device Policy Manager is responsible for the following Optional features when implemented:
Communications with the System Policy over USB.
For Sources with multiple ports monitoring and balancing power requirements across these ports.
Monitoring of batteries and AC power supplies.
Managing Modes in its Port Partner and Cable Plug(s).
8.2.1 Capabilities
The Device Policy Manager in a Provider Shall know the power supplies available in the device and their capabilities.
In addition it Shall be aware of any other PD Sources of power such as batteries and AC inputs. The available power
sources and existing demands on the device Shall be taken into account when presenting capabilities to a Sink.
The Device Policy Manager in a Consumer Shall know the requirements of the Sink and use this to evaluate the
capabilities offered by a Source. It Shall be aware of its own power sources e.g. Batteries or AC supplies where these
have a bearing on its operation as a Sink.
The Device Policy Manager in a Dual-Role Power Device Shall combine the above capabilities and Shall also be able to
present the dual-role nature of the device to an Attached PD Capable device.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 283
Note: that it might be necessary for the Device Policy Manager to also initiate additional discovery using the Discover
Identity Command in order to determine the full capabilities of the cabling (see Section 6.4.4.2).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 285
8.2.6 Use of “Unconstrained Power” bit with Batteries and AC supplies
The Device Policy Manager in a Provider or Consumer May monitor the status of any variable sources of power that
could have an impact on its capabilities as a Source such as Batteries and AC supplies and reflect this in the
“Unconstrained Power” bit (see Section 6.4.1.2.2.3 and Section 6.4.1.3.1.3) provided as part of the Source or Sink
Capabilities Message (see Section 6.4.1). When monitored, and a USB interface is supported, the External Power
status (see [USBTypeCBridge 1.0]) and the Battery state (see Section 9.4.1) Shall also be reported to the System
Policy Manager using the USB interface.
8.2.6.1 AC Supplies
The Unconstrained Power bit provided by Sources and Sinks (see Section 6.4.1.2.2.3 and Section 6.4.1.3.1.3) notifies a
connected device that it is acceptable to use the advertised power for charging as well as for what is needed for
normal operation. A device that sets the Unconstrained Power bit has either an external source of power that is
sufficient to adequately power the system while charging external devices, or expects to charge external devices as a
primary state of function (such as a battery pack).
In the case of the external power source, the power can either be from an AC supply directly connected to the device
or from an AC supply connected to an Attached device, which is also getting unconstrained power from its power
supply. The Unconstrained Power bit is in this way communicated through a PD system indicating that the origin of
the power is from a single or multiple AC supplies, from a battery bank, or similar:
If the “Unconstrained Power” bit is set then that power is originally sourced from an AC supply.
Devices capable of consuming on multiple ports can only claim that they have “Unconstrained Power” for the
power advertised as a provider Port if there is unconstrained power beyond that needed for normal operation
coming from external supplies, (e.g. multiple AC supplies).
This concept applies as the power is routed through multiple provider and Consumer tiers, so, as an example.
Power provided out of a monitor that is connected to a monitor that gets power from an AC supply, will claim it
has "Unconstrained Power” even though it is not directly connected to the AC supply.
An example use case is a Tablet computer that is used with two USB A/V displays that are daisy chained (see Figure
8-1). The tablet and 1st display are not externally powered, (meaning, they have no source of power outside of USB
PD). The 2nd display has an external supply Attached which could either be a USB PD based supply or some other
form of external supply. When the displays are connected as shown, the power adapter Attached to the 2nd display is
able to power both the 1st display and the tablet. In this case the 2nd display will indicate the presence of a
sufficiently-sized wall wart to the 1st display, by setting its “Unconstrained Power” bit. The 1st display will then in
turn assess and indicate the presence of the extra power to the tablet by setting its “Unconstrained Power” bit. Power
is transmitted through the system to all devices, provided that there is sufficient power available from the external
supply.
Page 286 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-1 Example of daisy chained displays
Tablet
Display 1
Display 2
AC
Another example use case is a Laptop computer that is attached to both an external supply and a Tablet computer. In
this situation, if the external supply is large enough to power the laptop in its normal state as well as charge an
external device, the laptop would set its “Unconstrained Power” bit and the tablet will allow itself to charge at its peak
rate. If the external supply is small, however, and would not prevent the laptop from discharging if maximal power is
drawn by the external device, the laptop would not set its “Unconstrained Power” bit, and the tablet can choose to
draw less than what is offered. This amount could be just enough to prevent the tablet from discharging, or none at
all. Alternatively, if the tablet determines that the laptop has significantly larger battery with more charge than the
tablet has, the tablet can still choose to charge itself, although possibly not at the maximal rate.
In this way, Sinks that do not receive the "Unconstrained Power" bit from the connected Source can still choose to
charge their batteries, or charge at a reduced rate, if their policy determines that the impact to the Source is minimal --
such as in the case of a phone with a small battery charging from a laptop with a large battery. These policies can be
decided via further USB PD communication.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 287
1. Provider/Consumers using large external sources (“Unconstrained Power” bit set) Should always deny Power
Role Swap requests from Consumer/Providers not using external sources (“Unconstrained Power” bit cleared).
2. Provider/Consumers not using large external sources (“Unconstrained Powered” bit cleared) Should always
accept a Power Role Swap request from a Consumer/Provider using large external power sources
(“Unconstrained Power” bit set) unless the requester is not able to provide the requirements of the present
Provider/Consumer.
8.2.7.4 Device Policy Manager in a Dual-Role Power Device Dead Battery handling
The Device Policy Manager in a Dual-Role Power Device with a Dead Battery Should:
Switch Ports to Sink-only or Sinking DFP operation to obtain power from the next Attached Source
Use VBUS from the Attached Source to power the USB Power Delivery communications as well as charging to
enable the negotiation of higher input power.
Page 288 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3 Policy Engine
8.3.1 Introduction
There is one Policy Engine instance per Port that interacts with the Device Policy Manager in order to implement the
present Local Policy for that particular Port. This section includes:
Message sequences for various operations.
State diagrams covering operation of Sources, Sinks and Cable Plugs.
1: Send message
2: Message
3: Message + CRC
4: Message
Start CRCReceiveTimer
Check MessageID against
local copy
Store copy of MessageID
5: Message received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC Consume message
9: Message sent
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 289
Table 8-1 Basic Message Flow
1: Send message
2: Message
A 3: Message + CRC B C
4: Message
Start CRCReceiveTimer
Check MessageID against
local copy
Store copy of MessageID
D
5: Message received
E 6: GoodCRC
F 7: GoodCRC + CRC
G 8: GoodCRC Consume message
Page 290 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 8-2 Potential issues in Basic Message Flow
Figure 8-4 illustrates one of these cases; the basic Message flow with a retry due to a bad CRC at the Message Receiver.
It starts when the Message Sender’s Protocol Layer at the behest of its Policy Engine forms a Message that it passes to
the Physical Layer. The Protocol Layer is responsible for retries on a “’n’ strikes and you are out” basis
(nRetryCount).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 291
Figure 8-4 Basic Message Flow with Bad CRC followed by a Retry
Message Sender Message Receiver
1: Send message
2: Message
3: Message + CRC
CRCReceiveTimer expires
Retry and increment RetryCounter
4: Message
5: Message + CRC
6: Message
Start CRCReceiveTimer
Check MessageID against
local copy
Store copy of MessageID
7: Message received
8: GoodCRC
9: GoodCRC + CRC
10: GoodCRC Consume message
Page 292 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Message Sender Message Receiver
9 Physical Layer receives the Message and checks the Physical Layer appends CRC and sends the GoodCRC
CRC to verify the Message. Message.
10 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
11 Protocol Layer verifies the MessageID, stops
CRCReceiveTimer and resets the RetryCounter.
Protocol Layer informs the Policy Engine that the
Message was successfully sent.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 293
8.3.2.1.3 Interruptible and Non-interruptible Atomic Message Sequences
Table 8-4 details which AMS (as defined in Section 8.3.2) Shall be treated as Interruptible or Non-interruptible during
the sequence. Every AMS which starts with the same Message Shall obey the Interruptible/Non-interruptible
requirement. Note that every AMS is Interruptible until the first Message in the sequence has been successfully sent
(GoodCRC Message received). Any Sequence of VDMs Shall be Interruptible. After the AMS that caused the
interruption has completed, if the original AMS is still needed the interrupted AMS Shall be Re-run.
Page 294 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.2 Power Negotiation
Figure 8-5 illustrates an example of a successful Message flow during Power Negotiation. The negotiation goes
through 5 distinct phases:
The Source sends out its power capabilities in a Source_Capabilities Message.
The Sink evaluates these capabilities and in the request phase selects one power level by sending a Request
Message.
The Source evaluates the request and accepts the request with an Accept Message.
The Source transitions to the new power level and then informs the Sink by sending a PS_RDY Message.
The Sink starts using the new power level.
Source Sink
: Source Policy Engine : Protocol : PHY : PHY : Protocol : Sink Policy Engine
1: Send Capabilities
2: Capabilities
3: Capabilities + CRC
Start CRCReceiveTimer 4: Capabilities
5: Capabilities received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
9: Capabilities sent
Evaluate Capabilities
Start SenderResponseTimer Detect plug type
Table 8-5 below provides a detailed explanation of what happens at each labeled step in Figure 8-5 above.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 295
Table 8-5 Steps for a successful Power Negotiation
Page 296 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Sink
17 Physical Layer forwards the GoodCRC Message to the
Protocol Layer.
18 The protocol Layer verifies and increments the
MessageIDCounter. It informs the Policy Engine that
the Request Message was successfully sent. The
Protocol Layer stops the CRCReceiveTimer.
The Policy Engine starts SenderResponseTimer.
19 Policy Engine evaluates the Request Message sent by
the Sink and decides if it can meet the request. It
tells the Protocol Layer to form an Accept Message.
20 The Protocol Layer forms the Accept Message that is
passed to the Physical Layer and starts the
CRCReceiveTimer.
21 Physical Layer appends CRC and sends the Accept Physical Layer receives the Message and compares
Message. the CRC it calculated with the one sent to verify the
Message.
22 Physical Layer forwards the Accept Message to the
Protocol Layer.
23 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
Protocol Layer informs the Policy Engine that an
Accept Message has been received. The Policy Engine
stops SenderResponseTimer, starts the
PSTransitionTimer and reduces its current draw.
The Device Policy Manager prepares the Power
supply for transition to the new power level.
24 The Protocol Layer generates a GoodCRC Message
and passes it to its Physical Layer.
25 Physical Layer receives the Message and compares Physical Layer appends CRC and sends the Message.
the CRC it calculated with the one sent to verify the
Message.
26 Physical Layer forwards the GoodCRC Message to the
Protocol Layer. The Protocol Layer verifies and
increments the MessageIDCounter and stops the
CRCReceiveTimer.
27 The Protocol Layer informs the Policy Engine that an
Accept Message was successfully sent.
power supply Adjusts its Output to the Negotiated Value
28 The Device Policy Manager informs the Policy Engine
that the power supply has settled at the new
operating condition and tells the Protocol Layer to
send a PS_RDY Message.
29 The Protocol Layer forms the PS_RDY Message and
starts the CRCReceiveTimer.
30 Physical Layer appends CRC and sends the PS_RDY Physical Layer receives the PS_RDY Message and
Message. compares the CRC it calculated with the one sent to
verify the Message.
31 Physical Layer forwards the PS_RDY Message to the
Protocol Layer.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 297
Step Source Sink
32 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
Protocol Layer informs the Policy Engine that a
RS_RDY has been received. The Policy Engine stops
the PSTransitionTimer.
33 The Protocol Layer generates a GoodCRC Message
and passes it to its Physical Layer.
34 Physical Layer receives the Message and compares Physical Layer appends CRC and sends the Message.
the CRC it calculated with the one sent to verify the
Message.
35 Physical Layer forwards the GoodCRC Message to the
Protocol Layer. The Protocol Layer verifies and
increments the MessageIDCounter. Stops the
CRCReceiveTimer.
36 The Protocol Layer informs the Policy Engine that
the PS_RDY Message was successfully sent.
Page 298 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.3 Reclaiming Power with GotoMin Message
This is an example of a GotoMin operation. Figure 8-6 shows the Messages as they flow across the bus and within the
devices to accomplish the GotoMin.
: Source Policy Engine : Protocol : PHY : PHY : Protocol : Sink Policy Engine
1: Send GotoMin
2: GotoMin
3: GotoMin + CRC
Start CRCReceiveTimer 4: GotoMin
Check MessageID against local copy
Store copy of MessageID
5: GotoMin received
6: GoodCRC
7: GoodCRC + CRC Start PSTransitionTimer
8: GoodCRC Reduce current
Check and increment MessageIDCounter
Stop CRCReceiveTimer
9: GotoMin sent
The table below provides a detailed explanation of what happens at each labeled step in Figure 8-6 above.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 299
Step Source Sink
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
Protocol Layer informs the Policy Engine that a
GotoMin Message has been received. The Policy
starts the PSTransitionTimer and reduces its current
draw.
The Policy Engine prepares the Power supply for
transition to the new power level.
6 The Protocol Layer generates a GoodCRC Message
and passes it to its Physical Layer.
7 Physical Layer receives the Message and compares Physical Layer appends CRC and sends the Message.
the CRC it calculated with the one sent to verify the
Message.
8 Physical Layer forwards the GoodCRC Message to the
Protocol Layer. The Protocol Layer verifies and
increments the MessageIDCounter and stops the
CRCReceiveTimer.
9 The Protocol Layer informs the Policy Engine that a
GotoMin Message was successfully sent.
power supply Adjusts its Output to the Negotiated Value
10 Policy Engine sees the power supply has settled at
the new operating condition and tells the Protocol
Layer to send a PS_RDY Message.
11 The Protocol Layer forms the PS_RDY Message and
starts the CRCReceiveTimer.
12 Physical Layer appends CRC and sends the PS_RDY Physical Layer receives the Message and compares
Message. the CRC it calculated with the one sent to verify the
Message.
13 Physical Layer forwards the PS_RDY Message to the
Protocol Layer.
14 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
Protocol Layer informs the Policy Engine that a
PS_RDY Message has been received. The Policy
Engine stops the PSTransitionTimer.
15 The Protocol Layer generates a GoodCRC Message
and passes it to its Physical Layer.
16 Physical Layer receives the Message and compares Physical Layer appends CRC and sends the Message.
the CRC it calculated with the one sent to verify the
Message.
17 Physical Layer forwards the GoodCRC Message to the
Protocol Layer. The Protocol Layer verifies and
increments the MessageIDCounter and stops the
CRCReceiveTimer.
18 The Protocol Layer informs the Policy Engine that
the PS_RDY Message was successfully sent.
Page 300 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.4 Soft Reset
This is an example of a Soft Reset operation. Figure 8-7 shows the Messages as they flow across the bus and within
the devices to accomplish the Soft Reset.
2: Soft Reset
3: Soft Reset + CRC
Start CRCReceiveTimer 4: Soft Reset
Start SenderResponseTimer
Table 8-7 below provides a detailed explanation of what happens at each labeled step in Figure 8-7 above.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 301
Step Reset Initiator Reset Responder
5 Protocol Layer does not check the MessageID in the
incoming Message and resets MessageIDCounter,
stored MessageID and RetryCounter.
The Protocol Layer forwards the received Soft_Reset
Message information to the Policy Engine that
consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC and checks the Physical Layer appends CRC and sends the GoodCRC
CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Soft_Reset Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine tells the Protocol Layer to form an
Accept Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the Message.
the CRC it calculated with the one sent to verify the
Message.
13 Protocol Layer stores the MessageID of the incoming
Message.
14 The Protocol Layer forwards the received Accept
Message information to the Policy Engine that
consumes it.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Accept Message was successfully sent.
The reset is complete and protocol communication can restart. Port Partners perform an Explicit Contract
negotiation to re-synchronize their state machines.
Page 302 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.5 Hard Reset
The following sections describe the steps required for a USB Power Delivery Hard Reset. The Hard Reset returns the
operation of the USB Power Delivery to default role and operating voltage/current. During the Hard Reset USB Power
Delivery PHY Layer communications Shall be disabled preventing communication between the Port partners.
Note: Hard Reset, in this case, is applied to the USB Power Delivery capability of an individual Port on which the Hard
Reset is requested. A side effect of the Hard Reset is that it might reset other functions on the Port such as USB.
Source Sink
Start NoResponseTimer
Wait tPSHardReset Reset MessageIDCounter and
Reset Power Supply RetryCounter
Reset Port Data Role to DFP
Turn off VCONN
2: Send Hard Reset
3: Hard Reset
4: Hard Reset received
Channel disabled
Channel disabled
Reset MessageIDCounter and
RetryCounter
Channel enabled
Channel enabled
Stop NoResponseTimer
Start SenderResponseTimer
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 303
Table 8-8 Steps for Source initiated Hard Reset
Page 304 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Sink
14 Protocol Layer stores the MessageID of the incoming
Message.
The Protocol Layer forwards the received
Source_Capabilities Message information to the
Policy Engine that consumes it.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Source_Capabilities Message was successfully sent.
Policy Engine stops the NoResponseTimer and starts
the SenderResponseTimer.
USB Power Delivery communication is re-established.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 305
8.3.2.5.2 Sink Initiated Hard Reset
This is an example of a Hard Reset operation when initiated by a Sink. Figure 8-9 shows the Messages as they flow
across the bus and within the devices to accomplish the Hard Reset.
3: Hard Reset
4: Hard Reset received
Channel disabled
Reset MessageIDCounter, stored Channel disabled
copy of MessageID and
RetryCounter Power Sink Reset
Channel enabled
Stop NoResponseTimer
Start SenderResponseTimer
Page 306 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 8-9 Steps for Sink initiated Hard Reset
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 307
Step Source Sink
14 Protocol Layer stores the MessageID of the incoming
Message.
The Protocol Layer forwards the received
Source_Capabilities Message information to the
Policy Engine that consumes it.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Source_Capabilities Message was successfully sent.
Policy Engine stops the NoResponseTimer and starts
the SenderResponseTimer.
USB Power Delivery communication is re-established.
Page 308 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.5.3 Source Initiated Hard Reset – Sink Long Reset
This is an example of a Hard Reset operation when initiated by a Source. In this example the Sink is slow responding
to the reset causing the Source to send multiple Source_Capabilities Messages before it receives a GoodCRC Message
response. Figure 8-10 shows the Messages as they flow across the bus and within the devices to accomplish the Hard
Reset.
Source Sink
Channel enabled
8: Send Capabilities
9: Capabilities
10: Capabilities + CRC
Run SourceCapabilityTimer Power Sink Reset
Send Capabilities messages
until GoodCRC response is
11: Power Sink Reset
received.
Reset MessageIDCounter, stored
copy of MessageID and
RetryCounter
Channel enabled
Stop SourceCapabilitiesTimer
Stop NoResponseTimer
Start SenderResponseTimer
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 309
Table 8-10 Steps for Source initiated Hard Reset – Sink long reset
Page 310 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Sink
The reset is complete and protocol communication can restart.
13 Policy Engine directs the Protocol Layer to send a
Source_Capabilities Message that represents the
power supply’s present capabilities. Starts the
SourceCapabilityTimer.
14 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
15 Physical Layer appends CRC and sends the Physical Layer receives the Source_Capabilities
Source_Capabilities Message. Message and checks the CRC to verify the Message.
16 Physical Layer removes the CRC and forwards the
Source_Capabilities Message to the Protocol Layer.
17 Protocol Layer stores the MessageID of the incoming
Message.
The Protocol Layer forwards the received
Source_Capabilities Message information to the
Policy Engine that consumes it.
18 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
19 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
20 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
21 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Source_Capabilities Message was successfully sent.
Policy Engine stops the SourceCapabilityTimer,
stops the NoResponseTimer and starts the
SenderResponseTimer.
USB Power Delivery communication is re-established.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 311
8.3.2.6 Power Role Swap
8.3.2.6.1 Source Initiated Power Role Swap without subsequent Power Negotiation
This is an example of a successful Power Role Swap operation initiated by a Port which initially, at the start of this
Message sequence, is acting as a Source and therefore has Rp pulled up on its CC wire. It does not include any
subsequent Power Negotiation which is required in order to establish an Explicit Contract (see Section 8.3.2.2).
There are four distinct phases to the Power Role Swap negotiation:
1. A PR_Swap Message is sent.
2. An Accept Message in response to the PR_Swap Message.
3. The new Sink sets its power output to vSafe0V, then asserts Rd and sends a PS_RDY Message when this process is
complete.
4. The new Source asserts Rp, then sets its power output to vSafe5V and sends a PS_RDY Message when it is ready
to supply power.
Figure 8-11 shows the Messages as they flow across the bus and within the devices to accomplish the Power Role
Swap sequence.
Page 312 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-11 Successful Power Role Swap Sequence Initiated by the Source
5: PR_Swap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Stop CRCReceiveTimer
9:PR_Swap sent
Evaluate PR_Swap
Start SenderResponseTimer request
20: PS_RDY
21: PS_RDY + CRC
Start CRCReceiveTimer 22: PS_RDY
Reset CapsCounter
Reset Protocol Layer
Start SwapSourceStartTimer
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 313
Table 8-11below provides a detailed explanation of what happens at each labeled step in Figure 8-11 above.
Table 8-11 Steps for a Successful Source Initiated Power Role Swap Sequence
Page 314 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial Source Port Initially Sink Port
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Accept Message was successfully sent. The Policy
Engine starts the PSSourceOffTimer and tells the
power supply to stop sinking current.
19 The Policy Engine determines its power supply is no
longer supplying VBUS. The Policy Engine requests
the Device Policy Manager to assert the Rd pull down
on the CC wire. The Policy Engine then directs the
Protocol Layer to generate a PS_RDY Message, with
the Port Power Role bit in the Message Header set to
“Sink”, to tell its Port Partner that it can begin to
Source VBUS.
20 Protocol Layer sets the Port Power Role bit in the
Message Header set to “Sink”, creates the Message
and passes to Physical Layer. Starts
CRCReceiveTimer.
21 Physical Layer appends CRC and sends the PS_RDY Physical Layer receives the PS_RDY Message and
Message. checks the CRC to verify the Message.
22 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
23 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received PS_RDY
Message information to the Policy Engine that
consumes it. The Policy Engine stops the
PSSourceOffTimer, directs the Device Policy Manager
to apply the Rp pull up and then starts switching the
power supply to vSafe5V Source operation.
24 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
25 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
26 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
27 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PS_RDY Message was successfully sent. Policy
Engine starts PSSourceOnTimer.
28 Policy Engine, when its power supply is ready to
supply power, tells the Protocol Layer to form a
PS_RDY Message. The Port Power Role bit used in
this and subsequent Message Headers is now set to
“Source”.
29 Protocol Layer creates the PS_RDY Message and
passes to Physical Layer. Starts CRCReceiveTimer.
30 Physical Layer receives the PS_RDY Message and Physical Layer appends a CRC and sends the PS_RDY
compares the CRC it calculated with the one sent to Message.
verify the Message.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 315
Step Initial Source Port Initially Sink Port
31 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
32 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received PS_RDY
Message information to the Policy Engine that
consumes it.
33 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
34 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. The Policy Engine stops the compares the CRC it calculated with the one sent to
PSSourceOnTimer, informs the power supply it can verify the Message.
now Sink power and resets the Protocol Layer.
35 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
36 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PS_RDY Message was successfully sent. The Policy
Engine resets the CapsCounter, resets the Protocol
Layer and starts the SwapSourceStartTimer which
must timeout before sending any Source_Capabilities
Messages.
The Power Role Swap is complete, the roles have been reversed and the Port Partners are free to negotiate for
more power.
Page 316 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.6.2 Sink Initiated Power Role Swap without subsequent Power Negotiation
This is an example of a successful Power Role Swap operation initiated by a Port which initially, at the start of this
Message sequence, is acting as a Sink and therefore has Rd pulled down on its CC wire. It does not include any
subsequent Power Negotiation which is required in order to establish an Explicit Contract (see Section 8.3.2.2).
There are four distinct phases to the Power Role Swap negotiation:
1. A PR_Swap Message is sent.
2. An Accept Message in response to the PR_Swap Message.
3. The new Sink sets its power output to vSafe0V, then asserts Rd and sends a PS_RDY Message when this process is
complete.
4. The new Source asserts Rp, then sets its power output to vSafe5V and sends a PS_RDY Message when it is ready to
supply power.
Figure 8-12 shows the Messages as they flow across the bus and within the devices to accomplish the Power Role
Swap.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 317
Figure 8-12 Successful Power Role Swap Sequence Initiated by the Sink
1: Send PR_Swap
2:PR_Swap
3: PR_Swap + CRC
Start CRCReceiveTimer 4: PR_Swap
5: PR_Swap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Stop CRCReceiveTimer
9:PR_Swap sent
Evaluate PR_Swap
Start SenderResponseTimer request
20: PS_RDY
21: PS_RDY + CRC
22: PS_RDY
Start CRCReceiveTimer
Check MessageID against local copy
Store copy of MessageID
Reset CapsCounter
Reset Protocol Layer
Start SwapSourceStartTimer
Page 318 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 8-12 Steps for a Successful Sink Initiated Power Role Swap Sequence
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 319
Step Initial Sink Port Initial Source Port
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Accept Message was successfully sent. The Policy
Engine tells the power supply to stop supplying
power.
19 The Policy Engine determines its power supply is no
longer supplying VBUS. The Policy Engine requests the
Device Policy Manager to assert the Rd pull down on
the CC wire. The Policy Engine then directs the
Protocol Layer to generate a PS_RDY Message, with
the Port Power Role bit in the Message Header set to
“Sink”, to tell its Port Partner that it can begin to
Source VBUS.
20 Protocol Layer sets the Port Power Role bit in the
Message Header set to “Sink”, creates the Message
and passes to Physical Layer. Starts
CRCReceiveTimer.
21 Physical Layer receives the PS_RDY Message and Physical Layer appends CRC and sends the PS_RDY
checks the CRC to verify the Message. Message.
22 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
23 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received PS_RDY
Message information to the Policy Engine that
consumes it. The Policy Engine stops the
PSSourceOffTimer, directs the Device Policy
Manager to apply the Rp pull up and then starts
switching the power supply to vSafe5V Source
operation.
24 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
25 Physical Layer appends CRC and sends the GoodCRC Physical Layer receives the GoodCRC Message and
Message. checks the CRC to verify the Message.
26 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
27 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PS_RDY Message was successfully sent. Policy Engine
starts PSSourceOnTimer.
28 Policy Engine, when its power supply is ready to
supply power, tells the Protocol Layer to form a
PS_RDY Message. The Port Power Role bit used in
this and subsequent Message Headers is now set to
“Source”.
29 Protocol Layer creates the PS_RDY Message and
passes to Physical Layer. Starts CRCReceiveTimer.
30 Physical Layer appends a CRC and sends the PS_RDY Physical Layer receives the PS_RDY Message and
Message. compares the CRC it calculated with the one sent to
verify the Message.
31 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
Page 320 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial Sink Port Initial Source Port
32 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received PS_RDY
Message information to the Policy Engine that
consumes it. The Policy Engine stops the
PSSourceOnTimer, informs the power supply that it
can start consuming power.
33 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
34 Physical Layer receives GoodCRC Message and Physical Layer appends a CRC and sends the GoodCRC
compares the CRC it calculated with the one sent to Message. The Policy Engine stops the
verify the Message. PSSourceOnTimer, informs the power supply it can
now Sink power and resets the Protocol Layer.
35 Physical Layer removes the CRC and forwards the
GoodCRC to the Protocol Layer.
36 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PS_RDY Message was successfully sent. The Policy
Engine resets the CapsCounter, resets the Protocol
Layer and starts the SwapSourceStartTimer which
must timeout before sending any
Source_Capabilities Messages.
The Power Role Swap is complete, the roles have been reversed and the Port Partners are free to negotiate for
more power.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 321
8.3.2.7 Fast Role Swap
This is an example of a successful Fast Role Swap operation initiated by a Port that is initially a Source and therefore
has Rp pulled up on its CC Wire and which has lost power and needs to get vSafe5V quickly. It does not include any
subsequent Power Negotiation which is required in order to establish an Explicit Contract (see Section 8.3.2.2).
There are several distinct phases to the Fast Role Swap negotiation:
1. The initial Source stops driving its power output which starts transitioning to vSafe0V and signals Fast Role Swap on the
CC Wire.
2. The initial Sink stops Sinking power. At this point the new Source still has Rd asserted and the new Sink still has Rp
asserted.
3. An FR_Swap Message is sent by the new Source within tFRSwapInit of detecting the Fast Swap signal.
4. An Accept Message is sent by the new Sink in response to the FR_Swap Message.
5. The new Sink asserts Rd and sends a PS_RDY Message indicating that the voltage on VBUS is at or below vSafe5V.
6. The new Source asserts Rp and sends a PS_RDY Message indicating that it is acting as a Source and is supplying
vSafe5V. Note: that the new Source can start applying at any point VBUS is at or below vSafe5V but will start driving
VBUS to vSafe5V no later than tSrcFRSwap after detecting that VBUS has dropped below vSafe5V. This can happen at
any point after the Fast Role Swap signal is detected.
Figure 8-13 shows the Messages as they flow across the bus and within the devices to accomplish the Fast Role Swap.
Page 322 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-13 Successful Fast Role Swap Sequence
1: Send FR_Swap
2:FR_Swap
3: FR_Swap + CRC
Start CRCReceiveTimer 4: FR_Swap
5: FR_Swap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Stop CRCReceiveTimer
9:FR_Swap sent
Evaluate FR_Swap request
Start SenderResponseTimer
20: PS_RDY
21: PS_RDY + CRC
22: PS_RDY
Start CRCReceiveTimer
Check MessageID against local copy
Store copy of MessageID
Start PSSourceOnTimer
Reset CapsCounter
Reset Protocol Layer
Start SwapSourceStartTimer
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 323
Table 8-13 Steps for a Successful Fast Role Swap Sequence
Page 324 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial Sink Port Initial Source Port
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Accept Message was successfully sent.
19 The Policy Engine determines its power supply is no
longer supplying VBUS and is acting as a Sink. The
Policy Engine requests the Device Policy Manager to
assert the Rd pull down on the CC wire. The Policy
Engine then directs the Protocol Layer to generate a
PS_RDY Message, with the Port Power Role bit in the
Message Header set to “Sink”, to tell its Port Partner
that it can begin to Source VBUS.
20 Protocol Layer sets the Port Power Role bit in the
Message Header set to “Sink”, creates the Message
and passes to Physical Layer. Starts
CRCReceiveTimer.
21 Physical Layer receives the PS_RDY Message and Physical Layer appends CRC and sends the PS_RDY
checks the CRC to verify the Message. Message.
22 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
23 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received PS_RDY
Message information to the Policy Engine that
consumes it. The Policy Engine stops the
PSSourceOffTimer.
24 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
25 Physical Layer appends CRC and sends the GoodCRC Physical Layer receives the GoodCRC Message and
Message. checks the CRC to verify the Message.
26 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
27 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PS_RDY Message was successfully sent. Policy Engine
starts PSSourceOnTimer.
28 The Policy Engine directs the Device Policy Manager
to apply the Rp pull up. Note: at some point (either
before or after receiving the PS_RDY Message) the
new Source has applied vSafe5V no later
tSrcFRSwap after detecting that VBUS has dropped
below vSafe5V.
When the Source output reaches vSafe5V the Policy
Engine directs the Protocol Layer to send an
FR_Swap Message within tFRSwapInit of detecting
the Fast Swap signal.
Policy Engine, when its power supply is ready to
supply power, tells the Protocol Layer to form a
PS_RDY Message. The Port Power Role bit used in
this and subsequent Message Headers is now set to
“Source”.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 325
Step Initial Sink Port Initial Source Port
29 Protocol Layer creates the PS_RDY Message and
passes to Physical Layer. Starts CRCReceiveTimer.
30 Physical Layer appends a CRC and sends the PS_RDY Physical Layer receives the PS_RDY Message and
Message. compares the CRC it calculated with the one sent to
verify the Message.
31 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
32 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received PS_RDY
Message information to the Policy Engine that
consumes it. The Policy Engine stops the
PSSourceOnTimer.
33 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
34 Physical Layer receives GoodCRC Message and Physical Layer appends a CRC and sends the GoodCRC
compares the CRC it calculated with the one sent to Message. The Policy Engine resets the Protocol Layer.
verify the Message.
35 Physical Layer removes the CRC and forwards the
GoodCRC to the Protocol Layer.
36 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PS_RDY Message was successfully sent. The Policy
Engine resets the CapsCounter, resets the Protocol
Layer and starts the SwapSourceStartTimer which
must timeout before sending any
Source_Capabilities Messages.
The Fast Role Swap is complete, the roles have been reversed and the Port Partners are free to negotiate for
more power.
Page 326 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.8 Data Role Swap
CC = Rd (Sink) CC = Rp (Source)
Port Data Role = UFP (Device) Port Data Role = DFP (Host)
1: Send Dr_Swap
2:Dr_Swap
3: Dr_Swap + CRC
Start CRCReceiveTimer 4: Dr_Swap
5: Dr_Swap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC Evaluate Dr_Swap request
CC = Rp (Source)
Check and increment MessageIDCounter Port Data Role = DFP (Host)
Stop CRCReceiveTimer
9:Dr_Swap sent
Start SenderResponseTimer
CC = Rd (Sink) 10: Send Accept
Port Data Role = UFP (Device) 11: Accept
12: Accept + CRC
13: Accept Start CRCReceiveTimer
CC = Rd (Sink) CC = Rp (Source)
Port Data Role -> DFP (Host) Port Data Role -> UFP (Device)
Table 8-14 below provides a detailed explanation of what happens at each labeled step in Figure 8-14 above.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 327
Table 8-14 Steps for Data Role Swap, UFP operating as Sink initiates
Page 328 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial UFP Sink Port Initial DFP Source Port
18 The Policy Engine requests that Data Role is changed Protocol Layer verifies and increments the
from UFP (Device) to DFP (Host). MessageIDCounter and stops CRCReceiveTimer.
The Power Delivery role is now a DFP (Host), with Protocol Layer informs the Policy Engine that the Accept
Port Data Role set to DFP, still operating as a Sink Message was successfully sent.
(Rd asserted). The Policy Engine requests that the Data Role is changed
to UFP (Device), with Port Data Role set to UFP and
continues supplying power as a Source (Rp asserted).
The Data Role Swap is complete; the data roles have been reversed while maintaining the direction of power
flow.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 329
8.3.2.8.2 Data Role Swap, Initiated by UFP Operating as Source
Figure 8-15 shows an example sequence between a Port, which is initially a UFP (Device) and a Source (Rp asserted),
and a Port which is initially a DFP (Host) and a Sink (Rd asserted). A Data Role Swap is initiated by the UFP. During
the process the Port Partners maintain their operation as either a Source or a Sink (power and Rp/Rd remain
constant) but exchange data roles between DFP (Host) and UFP (Device).
CC = Rp (Source) CC = Rd (Sink)
Port Data Role = UFP (Device) Port Data Role = DFP (Host)
1: Send Dr_Swap
2:Dr_Swap
3: Dr_Swap + CRC
Start CRCReceiveTimer 4: Dr_Swap
5: Dr_Swap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Evaluate Dr_Swap request
Stop CRCReceiveTimer
CC = Rd (Sink)
9:Dr_Swap sent Port Data Role = DFP (Host)
Start SenderResponseTimer
CC = Rp (Source) 10: Send Accept
Port Data Role = UFP (Device) 11: Accept
12: Accept + CRC
13: Accept Start CRCReceiveTimer
CC = Rp (Source) CC = Rd (Sink)
Port Data Role -> DFP (Host) Port Data Role -> UFP (Device)
Table 8-15 below provides a detailed explanation of what happens at each labeled step in Figure 8-15 above.
Table 8-15 Steps for Data Role Swap, UFP operating as Source initiates
Page 330 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial UFP Source Port Initial DFP Sink Port
3 Physical Layer appends CRC and sends the DR_Swap Physical Layer receives the DR_Swap Message and
Message. checks the CRC to verify the Message.
4 Physical Layer removes the CRC and forwards the
DR_Swap Message to the Protocol Layer.
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received DR_Swap
Message information to the Policy Engine that
consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
DR_Swap Message was successfully sent. Policy Engine
starts SenderResponseTimer.
10 Policy Engine evaluates the DR_Swap Message and
decides that it is able and willing to do the Data Role
Swap. It tells the Protocol Layer to form an Accept
Message.
11 Protocol Layer creates the Accept Message and passes
to Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Accept Message and checks Physical Layer appends a CRC and sends the Accept
the CRC to verify the Message. Message.
13 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Accept
Message information to the Policy Engine that
consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the GoodCRC Physical Layer receives GoodCRC Message and
Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 The Policy Engine requests that Data Role is changed Protocol Layer verifies and increments the
from UFP (Device) to DFP (Host). MessageIDCounter and stops CRCReceiveTimer.
The Power Delivery role is now a DFP (Host), and Port Protocol Layer informs the Policy Engine that the
Data Role set to DFP, and continues supplying power as Accept Message was successfully sent. The Policy
a Source (Rp asserted). Engine requests that the Data Role is changed to UFP
(Device), with Port Data Role set to UFP and still
operating as a Sink (Rp asserted).
The Data Role Swap is complete; the data roles have been reversed while maintaining the direction of power flow.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 331
8.3.2.8.3 Data Role Swap, Initiated by DFP Operating as Source
Figure 8-16 shows an example sequence between a Port, which is initially a UFP (Device) and a Sink (Rd asserted),
and a Port which is initially a DFP and a Source (Rp asserted). A Data Role Swap is initiated by the DFP. During the
process the Port Partners maintain their operation as either a Source or a Sink (power and Rp/Rd remain constant)
but exchange data roles between DFP (Host) and UFP (Device).
CC = Rd (Sink) CC = Rp (Source)
Port Data Role = UFP (Device) Port Data Role = DFP (Host)
1: Send Dr_Swap
2: Dr_Swap
3: Dr_Swap + CRC
4: Dr_Swap Start CRCReceiveTimer
9: Dr_Swap sent
Start SenderResponseTimer
10: Send Accept CC = Rp (Source)
11:Accept Port Data Role = DFP (Host)
12: Accept + CRC
Start CRCReceiveTimer 13: Accept
18:Accept sent
CC = Rd (Sink) CC = Rp (Source)
Port Data Role -> DFP (Host) Port Data Role -> UFP (Device)
Table 8-16 below provides a detailed explanation of what happens at each labeled step in Figure 8-16 above.
Table 8-16 Steps for Data Role Swap, DFP operating as Source initiates
Page 332 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial UFP Sink Port Initial DFP Source Port
3 Physical Layer receives the DR_Swap Message and Physical Layer appends CRC and sends the DR_Swap
checks the CRC to verify the Message. Message.
4 Physical Layer removes the CRC and forwards the
DR_Swap Message to the Protocol Layer.
5 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received DR_Swap
Message information to the Policy Engine that
consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer appends CRC and sends the GoodCRC Physical Layer receives the GoodCRC Message and
Message. checks the CRC to verify the Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
DR_Swap Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine evaluates the DR_Swap Message and
decides that it is able and willing to do the Data Role
Swap. It tells the Protocol Layer to form an Accept
Message.
11 Protocol Layer creates the Accept Message and
passes to Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer appends a CRC and sends the Accept Physical Layer receives the Accept Message and
Message. checks the CRC to verify the Message.
13 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Accept
Message information to the Policy Engine that
consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer receives GoodCRC Message and Physical Layer appends a CRC and sends the GoodCRC
compares the CRC it calculated with the one sent to Message.
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the The Policy Engine requests that Data Role is changed
MessageIDCounter and stops CRCReceiveTimer. from DFP (Host) to UFP (Device).
Protocol Layer informs the Policy Engine that the The Power Delivery role is now a UFP (Device), with
Accept Message was successfully sent. . The Policy Port Data Role set to UFP, and continues supplying
Engine requests that the Data Role is changed to DFP power as a Source (Rp asserted).
(Host), with Port Data Role set to DFP, still
operating as a Sink (Rd asserted).
The Data Role Swap is complete; the data roles have been reversed while maintaining the direction of power
flow.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 333
8.3.2.8.4 Data Role Swap, Initiated by DFP Operating as Sink
Figure 8-17 shows an example sequence between a Port, which is initially a UFP (Device) and a Source (Rp asserted),
and a Port which is initially a DFP (Host) and a Sink (Rd asserted). A Data Role Swap is initiated by the DFP. During
the process the Port Partners maintain their operation as either a Source or a Sink (power and Rp/Rd remain
constant) but exchange data roles between DFP (Host) and UFP (Device).
CC = Rp (Source) CC = Rd (Sink)
Port Data Role = UFP (Device) Port Data Role = DFP (Host)
1: Send Dr_Swap
2: Dr_Swap
3: Dr_Swap + CRC
4: Dr_Swap Start CRCReceiveTimer
9: Dr_Swap sent
Start SenderResponseTimer
10: Send Accept CC = Rd (Sink)
11:Accept Port Data Role = DFP (Host)
12: Accept + CRC
Start CRCReceiveTimer 13: Accept
18:Accept sent
CC = Rp (Source) CC = Rd (Sink)
Port Data Role -> DFP (Host) Port Data Role -> UFP (Device)
Table 8-17 below provides a detailed explanation of what happens at each labeled step in Figure 8-17 above.
Table 8-17 Steps for Data Role Swap, DFP operating as Sink initiates
Page 334 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Initial UFP Source Port Initial DFP Sink Port
3 Physical Layer receives the DR_Swap Message and Physical Layer appends CRC and sends the DR_Swap
checks the CRC to verify the Message. Message.
4 Physical Layer removes the CRC and forwards the
DR_Swap Message to the Protocol Layer.
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received DR_Swap
Message information to the Policy Engine that
consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer appends CRC and sends the GoodCRC Physical Layer receives the GoodCRC Message and
Message. checks the CRC to verify the Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
DR_Swap Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine evaluates the DR_Swap Message and
decides that it is able and willing to do the Data Role
Swap. It tells the Protocol Layer to form an Accept
Message.
11 Protocol Layer creates the Accept Message and passes
to Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer appends a CRC and sends the Accept Physical Layer receives the Accept Message and
Message. checks the CRC to verify the Message.
13 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Accept
Message information to the Policy Engine that
consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer receives GoodCRC Message and Physical Layer appends a CRC and sends the GoodCRC
compares the CRC it calculated with the one sent to Message.
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the The Policy Engine requests that Data Role is changed
MessageIDCounter and stops CRCReceiveTimer. from DFP (Host) to UFP (Device).
Protocol Layer informs the Policy Engine that the The Power Delivery role is now a UFP (Device), with
Accept Message was successfully sent. The Policy Port Data Role set to UFP, still operating as a Sink (Rd
Engine requests that the Data Role is changed to DFP asserted).
(Host), with Port Data Role set to DFP, and continues
supplying power as a Source (Rp asserted).
The Data Role Swap is complete; the data roles have been reversed while maintaining the direction of power flow.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 335
8.3.2.9 VCONN Swap
1: Send VCONN_Swap
2:VCONN_Swap
3: VCONN_Swap + CRC
Start CRCReceiveTimer 4: VCONN_Swap
5: VCONN_Swap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Stop CRCReceiveTimer
Vconn is on
VCONN is off
Table 8-18 below provides a detailed explanation of what happens at each labeled step in Figure 8-18 above.
Page 336 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 8-18 Steps for Source to Sink VCONN Source Swap
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 337
Step Source (initially VCONN Source) Sink (Initially VCONN off)
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Accept Message was successfully sent. The Policy
Engine asks the Device Policy Manager to turn on
VCONN.
19 The Device Policy Manager informs the Policy Engine
that its power supply is supplying VCONN. The Policy
Engine directs the Protocol Layer to generate a
PS_RDY Message to tell the Source it can turn off
VCONN.
20 Protocol Layer creates the PS_RDY Message and
passes to Physical Layer. Starts CRCReceiveTimer.
21 Physical Layer receives the PS_RDY Message and Physical Layer appends a CRC and sends the PS_RDY
compares the CRC it calculated with the one sent to Message.
verify the Message.
22 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
23 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received PS_RDY
Message information to the Policy Engine that
consumes it.
24 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
25 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. The Policy Engine stops the compares the CRC it calculated with the one sent to
VCONNOnTimer, and tells the power supply to stop verify the Message.
sourcing VCONN.
26 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
27 VCONN is off. Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PS_RDY Message was successfully sent.
The Sink is now the VCONN Source and the Source has VCONN turned off.
Page 338 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.9.2 Sink to Source VCONN Source Swap
Figure 8-19 shows an example sequence between a Source and Sink, where the Sink is initially supplying VCONN and
then the Source tells the Sink that it will become the VCONN Source. During the process the Port Partners, keep their
role as Source or Sink, maintain their operation as either a Source or a Sink (power remains constant) but exchange
the VCONN Source from the Sink to the Source.
1: Send VCONN_Swap
2:VCONN_Swap
3: VCONN_Swap + CRC
Start CRCReceiveTimer 4: VCONN_Swap
5: VCONN_Swap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Stop CRCReceiveTimer
Start VCONNOnTimer
Vconn is on
VCONN is off
Table 8-19 below provides a detailed explanation of what happens at each labeled step in Figure 8-19 above.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 339
Table 8-19 Steps for Sink to Source VCONN Source Swap
Page 340 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Sink
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Accept Message was successfully sent.
The Policy Engine starts the VCONNOnTimer.
19 The Device Policy Manager tells the Policy Engine
that its power supply is supplying VCONN. The Policy
Engine directs the Protocol Layer to generate a
PS_RDY Message to tell the Sink it can turn off VCONN.
20 Protocol Layer creates the PS_RDY Message and
passes to Physical Layer. Starts CRCReceiveTimer.
21 Physical Layer appends a CRC and sends the PS_RDY Physical Layer receives the PS_RDY Message and
Message. compares the CRC it calculated with the one sent to
verify the Message.
22 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
23 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received PS_RDY
Message information to the Policy Engine that
consumes it.
24 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
25 Physical Layer receives GoodCRC Message and Physical Layer appends a CRC and sends the GoodCRC
compares the CRC it calculated with the one sent to Message. The Policy Engine stops the
verify the Message. VCONNOnTimer, and tells the power supply to stop
sourcing VCONN.
26 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
27 Protocol Layer verifies and increments the VCONN is off.
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PS_RDY Message was successfully sent.
The Source is now the VCONN Source and the Sink has VCONN turned off.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 341
8.3.2.10 Additional Capabilities, Status and Information
8.3.2.10.1 Alert
: Sink Policy Engine : Protocol : PHY : PHY : Protocol : Source Policy Engine
1: Send Alert
2: Alert
3: Alert + CRC
4: Alert Start CRCReceiveTimer
5: Alert received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Stop CRCReceiveTimer
9: Alert sent
Table 8-59 below provides a detailed explanation of what happens at each labeled step in Figure 8-20 above.
Page 342 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Source
7 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Alert Message was successfully sent.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 343
8.3.2.10.1.1 Sink sends Alert to a Source
Figure 8-20 shows an example sequence between a Source and a Sink where the Sink alerts the Source that there has
been a status change. This AMS will be followed by getting the Sink status to determine further details of the alert
(see Section 8.3.2.10.2).
: Source Policy Engine : Protocol : PHY : PHY : Protocol : Sink Policy Engine
1: Send Alert
2: Alert
3: Alert + CRC
4: Alert Start CRCReceiveTimer
5: Alert received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Stop CRCReceiveTimer
9: Alert sent
Table 8-59 below provides a detailed explanation of what happens at each labeled step in Figure 8-20 above.
Page 344 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Sink
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Alert Message was successfully sent.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 345
8.3.2.10.2 Status
5: Get_Status received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-22below provides a detailed explanation of what happens at each labeled step in Figure 8-22 above.
Page 346 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Get_Status
Message information to the Policy Engine that
consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Status Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source status which is provided.
The Policy Engine tells the Protocol Layer to form a
Status Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the Status
the CRC it calculated with the one sent to verify the Message.
Status Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received Status
Message information to the Policy Engine that
consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Status Message was successfully sent.
The Source has informed the Sink of its present status.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 347
8.3.2.10.2.2 Source Gets Sink Status
Figure 8-22 shows an example sequence between a Source and a Sink where, after the Source has received an alert
(see Section 8.3.2.10.1) that there has been a status change, the Source gets more details on the change.
5: Get_Status received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-22below provides a detailed explanation of what happens at each labeled step in Figure 8-22 above.
Page 348 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Status Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source status which is provided.
The Policy Engine tells the Protocol Layer to form a
Status Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the Status
the CRC it calculated with the one sent to verify the Message.
Status Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received Status
Message information to the Policy Engine that
consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Status Message was successfully sent.
The Sink has informed the Source of its present status.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 349
Figure 8-24 Sink Gets Source PPS Status
5: Get_PPS_Status received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-24below provides a detailed explanation of what happens at each labeled step in Figure 8-24 above.
Table 8-24 Steps for a Sink getting Source PPS status Sequence
Page 350 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_PPS_Status Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source status which is provided.
The Policy Engine tells the Protocol Layer to form a
PPS_Status Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the PPS_Status Message.
PPS_Status Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
PPS_Status Message information to the Policy Engine
that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
PPS_Status Message was successfully sent.
The Source has informed the Sink of its present PPS status.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 351
8.3.2.10.3 Source/Sink Capabilities
5: Get_Source_Cap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-25 below provides a detailed explanation of what happens at each labeled step in Figure 8-25 above.
Page 352 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Source_Cap Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source capabilities which are provided.
The Policy Engine tells the Protocol Layer to form a
Source_Capabilities Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Source_Capabilities Message.
Source_Capabilities Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Source_Capabilities Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Source_Capabilities Message was successfully sent.
The Source has informed the Sink of its capabilities.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 353
8.3.2.10.3.2 Dual-Role Source Gets Source Capabilities from a Dual-Role Sink
Figure 8-26 shows an example sequence between a Dual-Role Source and a Dual-Role Sink when the Source gets the
Sink’s capabilities as a Source.
1: Send Get_Source_Cap
2:Get_Source_Cap
3: Get_Source_Cap + CRC
Start CRCReceiveTimer 4: Get_Source_Cap
5: Get_Source_Cap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-26 below provides a detailed explanation of what happens at each labeled step in Figure 8-26 above.
Table 8-26 Steps for a Dual-Role Source getting Dual-Role Sink’s capabilities as a Source Sequence
Page 354 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Dual-Role Source Port Dual-Role Sink Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Source_Cap Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source capabilities which are provided.
The Policy Engine tells the Protocol Layer to form a
Source_Capabilities Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Source_Capabilities Message.
Source_Capabilities Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Source_Capabilities Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Source_Capabilities Message was successfully sent.
The Dual-Role Sink has informed the Dual-Role Source of its capabilities.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 355
8.3.2.10.3.3 Source Gets Sink Capabilities
Figure 8-27 shows an example sequence between a Source and a Sink when the Source gets the Sink’s capabilities.
5: Get_Sink_Cap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-27 below provides a detailed explanation of what happens at each labeled step in Figure 8-27 above.
Page 356 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Sink_Cap Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present Sink
capabilities which are provided.
The Policy Engine tells the Protocol Layer to form a
Sink_Capabilities Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Sink_Capabilities Message.
Sink_Capabilities Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Sink_Capabilities Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Sink_Capabilities Message was successfully sent.
The Sink has informed the Source of its capabilities.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 357
8.3.2.10.3.4 Dual-Role Sink Get Sink Capabilities from a Dual-Role Source
Figure 8-28 shows an example sequence between a Dual-Role Source and a Dual-Role Sink when the Dual-Role Sink
gets the Dual-Role Source’s capabilities as a Sink.
5: Get_Sink_Cap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-28 below provides a detailed explanation of what happens at each labeled step in Figure 8-28 above.
Table 8-28 Steps for a Dual-Role Sink getting Dual-Role Source capabilities as a Sink Sequence
Page 358 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Dual-Role Sink Port Dual-Role Source Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Sink_Cap Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present Dual-
Role Source capabilities which are provided.
The Policy Engine tells the Protocol Layer to form a
Sink_Capabilities Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Sink_Capabilities Message.
Sink_Capabilities Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Sink_Capabilities Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Sink_Capabilities Message was successfully sent.
The Dual-Role Source has informed the Dual-Role Sink of its capabilities as a Sink.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 359
8.3.2.10.4 Extended Capabilities
Table 8-29 below provides a detailed explanation of what happens at each labeled step in Figure 8-29 above.
Table 8-29 Steps for a Sink getting Source extended capabilities Sequence
Page 360 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received
Get_Source_Cap_Extended Message information to
the Policy Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Source_Cap_Extended Message was successfully
sent. Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
extended Source capabilities which are provided.
The Policy Engine tells the Protocol Layer to form a
Source_Capabilities_Extended Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Source_Capabilities_Extended Message.
Source_Capabilities_Extended Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Source_Capabilities_Extended Message information
to the Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Source_Capabilities_Extended Message was
successfully sent.
The Source has informed the Sink of its extended capabilities.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 361
8.3.2.10.4.2 Dual-Role Source Gets Source Capabilities Extended from a Dual-Role Sink
Figure 8-29 shows an example sequence between a Source and a Sink when the Dual-Role Source gets the Dual-Role
Sink’s extended capabilities as a Source.
Table 8-29 below provides a detailed explanation of what happens at each labeled step in Figure 8-29 above.
Table 8-30 Steps for a Dual-Role Source getting Dual-Role Sink extended capabilities Sequence
Page 362 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Dual-Role Source Port Dual-Role Sink Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Source_Cap_Extended Message was successfully
sent. Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
extended Source capabilities which are provided.
The Policy Engine tells the Protocol Layer to form a
Source_Capabilities_Extended Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Source_Capabilities_Extended Message.
Source_Capabilities_Extended Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Source_Capabilities_Extended Message information
to the Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Source_Capabilities_Extended Message was
successfully sent.
The Dual-Role Sink has informed the Dual-Role Source of its extended capabilities as a Source.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 363
8.3.2.10.5 Battery Capabilities and Status
5: Get_Battery_Cap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-31 below provides a detailed explanation of what happens at each labeled step in Figure 8-31 above.
Table 8-31 Steps for a Sink getting Source Battery capabilities Sequence
Step Sink Port Source Port
1 The Port has Port Power Role set to Sink with the Rd The Port has Port Power Role set to Source and the
pull down on its CC wire. Rp pull up on its CC wire.
Policy Engine directs the Protocol Layer to send a
Get_Battery_Cap Message containing the number of
the Battery for which capabilities are being
requested.
2 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
3 Physical Layer appends CRC and sends the Physical Layer receives the Get_Battery_Cap Message
Get_Battery_Cap Message. and checks the CRC to verify the Message.
4 Physical Layer removes the CRC and forwards the
Get_Battery_Cap Message to the Protocol Layer.
Page 364 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received
Get_Battery_Cap Message information to the Policy
Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Battery_Cap Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source Battery capabilities, for the requested Battery
number, which are provided.
The Policy Engine tells the Protocol Layer to form a
Battery_Capabilities Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Battery_Capabilities Message.
Battery_Capabilities Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Battery_Capabilities Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Battery_Capabilities Message was successfully sent.
The Source has informed the Sink of the Battery capabilities for the requested Battery.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 365
8.3.2.10.5.2 Source Gets Battery Capabilities
Figure 8-32 shows an example sequence between a Source and a Sink when the Source gets the Sink’s Battery
capabilities for a given Battery.
1: Send Get_Battery_Cap
2:Get_Battery_Cap
3: Get_Battery_Cap + CRC
Start CRCReceiveTimer 4: Get_Battery_Cap
5: Get_Battery_Cap received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-32 below provides a detailed explanation of what happens at each labeled step in Figure 8-32 above.
Table 8-32 Steps for a Source getting Sink Battery capabilities Sequence
Page 366 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received
Get_Battery_Cap Message information to the Policy
Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Battery_Cap Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source Battery capabilities, for the requested Battery
number, which are provided.
The Policy Engine tells the Protocol Layer to form a
Battery_Capabilities Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Battery_Capabilities Message.
Battery_Capabilities Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Battery_Capabilities Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Battery_Capabilities Message was successfully sent.
The Sink has informed the Source of the Battery capabilities for the requested Battery.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 367
8.3.2.10.5.3 Sink Gets Battery Status
Figure 8-33 shows an example sequence between a Source and a Sink when the Sink gets the Source’s Battery status
for a given Battery.
5: Get_Battery_Status received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-33 below provides a detailed explanation of what happens at each labeled step in Figure 8-33 above.
Table 8-33 Steps for a Sink getting Source Battery status Sequence
Page 368 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Battery_Status Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source Battery status, for the requested Battery
number, which are provided.
The Policy Engine tells the Protocol Layer to form a
Battery_Status Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Battery_Status Message.
Battery_Status Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Battery_Status Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Battery_Status Message was successfully sent.
The Source has informed the Sink of the Battery status for the requested Battery.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 369
8.3.2.10.5.4 Source Gets Battery Status
Figure 8-34 shows an example sequence between a Source and a Sink when the Source gets the Sink’s Battery status
for a given Battery.
1: Send Get_Battery_Status
2:Get_Battery_Status
3: Get_Battery_Status + CRC
Start CRCReceiveTimer 4: Get_Battery_Status
5: Get_Battery_Status received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-34 below provides a detailed explanation of what happens at each labeled step in Figure 8-34 above.
Table 8-34 Steps for a Source getting Sink Battery status Sequence
Page 370 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Battery_Status Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the present
Source Battery status, for the requested Battery
number, which are provided.
The Policy Engine tells the Protocol Layer to form a
Battery_Status Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Battery_Status Message.
Battery_Status Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Battery_Status Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Battery_Status Message was successfully sent.
The Sink has informed the Source of the Battery status for the requested Battery.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 371
8.3.2.10.6 Manufacturer Information
Start SenderResponseTimer
Table 8-32 below provides a detailed explanation of what happens at each labeled step in Figure 8-35 above.
Table 8-35 Steps for a Source getting Sink’s Port Manufacturer information Sequence
Page 372 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received
Get_Manufacturer_Info Message information to the
Policy Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Manufacturer_Info Message was successfully
sent. Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Port’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Manufacturer_Info Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Manufacturer_Info Message.
Manufacturer_Info Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Manufacturer_Info Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Manufacturer_Info Message was successfully sent.
The Sink has informed the Source of the manufacturer information for the Port.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 373
8.3.2.10.6.2 Sink Gets Port Manufacturer Information from a Source
Figure 8-36 shows an example sequence between a Source and a Sink when the Source gets the Sink’s Manufacturer
information for the Port.
Start SenderResponseTimer
Table 8-36 below provides a detailed explanation of what happens at each labeled step in Figure 8-36 above.
Table 8-36 Steps for a Source getting Sink’s Port Manufacturer information Sequence
Page 374 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Manufacturer_Info Message was successfully
sent. Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Port’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Manufacturer_Info Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Manufacturer_Info Message.
Manufacturer_Info Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Manufacturer_Info Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Manufacturer_Info Message was successfully sent.
The Sink has informed the Source of the manufacturer information for the Port.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 375
8.3.2.10.6.3 Source Gets Battery Manufacturer Information from a Sink
Figure 8-37 shows an example sequence between a Source and a Sink when the Source gets the Sink’s Manufacturer
information for one of its Batteries.
Start SenderResponseTimer
Table 8-37 below provides a detailed explanation of what happens at each labeled step in Figure 8-37 above.
Table 8-37 Steps for a Source getting Sink’s Battery Manufacturer information Sequence
Page 376 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Manufacturer_Info Message was successfully
sent. Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Battery’s
manufacturer information for a given Battery which is
provided.
The Policy Engine tells the Protocol Layer to form a
Manufacturer_Info Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Manufacturer_Info Message.
Manufacturer_Info Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Manufacturer_Info Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Manufacturer_Info Message was successfully sent.
The Sink has informed the Source of the manufacturer information for the requested Battery.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 377
8.3.2.10.6.4 Sink Gets Battery Manufacturer Information from a Source
Figure 8-38 shows an example sequence between a Source and a Sink when the Source gets the Sink’s Manufacturer
information for the Port.
Start SenderResponseTimer
Table 8-38 below provides a detailed explanation of what happens at each labeled step in Figure 8-38 above.
Table 8-38 Steps for a Source getting Sink’s Battery Manufacturer information Sequence
Page 378 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Manufacturer_Info Message was successfully
sent. Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Battery’s
manufacturer information for a given Battery which is
provided.
The Policy Engine tells the Protocol Layer to form a
Manufacturer_Info Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Manufacturer_Info Message.
Manufacturer_Info Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Manufacturer_Info Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Manufacturer_Info Message was successfully sent.
The Sink has informed the Source of the manufacturer information for the requested Battery.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 379
8.3.2.10.6.5 VCONN Source Gets Manufacturer Information from a Cable Plug
Figure 8-39 shows an example sequence between a VCONN Source (Source or Sink) and a Cable Plug when the VCONN
Source gets the Cable Plug’s Manufacturer information.
1: Send Get_Manufacturer_Info
2:Get_Manufacturer_Info
3: Get_Manufacturer_Info + CRC
Start CRCReceiveTimer 4: Get_Manufacturer_Info
Check MessageID against local copy
Store copy of MessageID
5: Get_Manufacturer_Info
received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-39 below provides a detailed explanation of what happens at each labeled step in Figure 8-39 above.
Table 8-39 Steps for a VCONN Source getting Sink’s Port Manufacturer information Sequence
Page 380 USB Power Delivery Specification Revision 3.0, Version 1.1
Step VCONN Source Cable Plug
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Manufacturer_Info Message was successfully
sent. Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Cable Plug’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Manufacturer_Info Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Manufacturer_Info Message.
Manufacturer_Info Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Manufacturer_Info Message information to the
Policy Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Manufacturer_Info Message was successfully sent.
The Cable Plug has informed the Source of its manufacturer information.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 381
8.3.2.10.7 Country Codes
Start SenderResponseTimer
Table 8-40 below provides a detailed explanation of what happens at each labeled step in Figure 8-40 above.
Page 382 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Country_Codes Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Port’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Country_Codes Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Country_Codes Message.
Country_Codes Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Country_Codes Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Country_Codes Message was successfully sent.
The Sink has informed the Source of the country codes.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 383
8.3.2.10.7.2 Sink Gets Country Codes from a Source
Figure 8-41 shows an example sequence between a Source and a Sink when the Source gets the Sink’s country codes.
Start SenderResponseTimer
Table 8-41 below provides a detailed explanation of what happens at each labeled step in Figure 8-41 above.
Table 8-41 Steps for a Source getting Sink’s Country Codes Sequence
Page 384 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Country_Codes Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Port’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Country_Codes Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Country_Codes Message.
Country_Codes Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Country_Codes Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Country_Codes Message was successfully sent.
The Sink has informed the Source of the country codes.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 385
8.3.2.10.7.3 VCONN Source Gets Country Codes from a Cable Plug
Figure 8-42 shows an example sequence between a VCONN Source (Source or Sink) and a Cable Plug when the VCONN
Source gets the Cable Plug’s Country Codes.
1: Send Get_Country_Codes
2:Get_Country_Codes
3: Get_Country_Codes + CRC
Start CRCReceiveTimer 4: Get_Country_Codes
Check MessageID against local copy
Store copy of MessageID
5: Get_Country_Codes
received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-42 below provides a detailed explanation of what happens at each labeled step in Figure 8-42 above.
Table 8-42 Steps for a VCONN Source getting Sink’s Country Codes Sequence
Page 386 USB Power Delivery Specification Revision 3.0, Version 1.1
Step VCONN Source Cable Plug
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Country_Codes Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Cable Plug’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Country_Codes Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Country_Codes Message.
Country_Codes Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Country_Codes Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Country_Codes Message was successfully sent.
The Cable Plug has informed the Source of its country codes.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 387
8.3.2.10.8 Country Information
Start SenderResponseTimer
Table 8-43 below provides a detailed explanation of what happens at each labeled step in Figure 8-43 above.
Page 388 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received
Get_Country_Info Message information to the Policy
Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Country_Info Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Port’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Country_Info Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Country_Info Message.
Country_Info Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Country_Info Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Country_Info Message was successfully sent.
The Sink has informed the Source of the country information.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 389
8.3.2.10.8.2 Sink Gets Country Information from a Source
Figure 8-44 shows an example sequence between a Source and a Sink when the Source gets the Sink’s country codes.
Start SenderResponseTimer
Table 8-44 below provides a detailed explanation of what happens at each labeled step in Figure 8-44 above.
Table 8-44 Steps for a Source getting Sink’s Country Information Sequence
Page 390 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Country_Info Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Port’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Country_Info Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Country_Info Message.
Country_Info Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Country_Info Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Country_Info Message was successfully sent.
The Sink has informed the Source of the country information.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 391
8.3.2.10.8.1 VCONN Source Gets Country Information from a Cable Plug
Figure 8-45 shows an example sequence between a VCONN Source (Source or Sink) and a Cable Plug when the VCONN
Source gets the Cable Plug’s country information.
1: Send Get_Country_Info
2:Get_Country_Info
3: Get_Country_Info + CRC
Start CRCReceiveTimer 4: Get_Country_Info
Check MessageID against local copy
Store copy of MessageID
5: Get_Country_Info
received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start SenderResponseTimer
Table 8-45 below provides a detailed explanation of what happens at each labeled step in Figure 8-45 above.
Table 8-45 Steps for a VCONN Source getting Sink’s Country Information Sequence
Page 392 USB Power Delivery Specification Revision 3.0, Version 1.1
Step VCONN Source Cable Plug
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Get_Country_Info Message was successfully sent.
Policy Engine starts SenderResponseTimer.
10 Policy Engine requests the DPM for the Cable Plug’s
manufacturer information which is provided.
The Policy Engine tells the Protocol Layer to form a
Country_Info Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Country_Info Message.
Country_Info Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Country_Info Message information to the Policy
Engine that consumes it.
14 The Policy Engine stops the SenderResponseTimer.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Country_Info Message was successfully sent.
The Cable Plug has informed the Source of its country information.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 393
8.3.2.11 Security
5: Security_Request received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Table 8-46 below provides a detailed explanation of what happens at each labeled step in Figure 8-46 above.
Table 8-46 Steps for a Source requesting a security exchange with a Sink Sequence
Page 394 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received
Security_Request Message information to the Policy
Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Security_Request Message was successfully sent.
10 Policy Engine requests the DPM for the response to
the security request which is provided.
The Policy Engine tells the Protocol Layer to form a
Security_Response Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Security_Response Message.
Security_Response Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Security_Response Message information to the
Policy Engine that consumes it.
14 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
15 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
16 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
17 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Security_Response Message was successfully sent.
The security exchange is complete.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 395
8.3.2.11.2 Sink requests security exchange with Source
Figure 8-47 shows an example sequence for a security exchange between a Sink and a Source.
1: Send Security_Request
2:Security_Request
3: Security_Request + CRC
Start CRCReceiveTimer 4: Security_Request
5: Security_Request received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Table 8-47 below provides a detailed explanation of what happens at each labeled step in Figure 8-47 above.
Table 8-47 Steps for a Sink requesting a security exchange with a Source Sequence
Page 396 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Security_Request Message was successfully sent.
10 Policy Engine requests the DPM for the response to
the security request which is provided.
The Policy Engine tells the Protocol Layer to form a
Security_Response Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Security_Response Message.
Security_Response Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Security_Response Message information to the
Policy Engine that consumes it.
14 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
15 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
16 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
17 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Security_Response Message was successfully sent.
The security exchange is complete.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 397
8.3.2.11.3 Vconn Source requests security exchange with Cable Plug
Figure 8-48 shows an example sequence for a security exchange between a Vconn Source and a Cable Plug.
Figure 8-48 Vconn Source requests security exchange with Cable Plug
1: Send Security_Request
2:Security_Request
3: Security_Request + CRC
Start CRCReceiveTimer 4: Security_Request
5: Security_Request received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Table 8-48 below provides a detailed explanation of what happens at each labeled step in Figure 8-48 above.
Table 8-48 Steps for a Vconn Source requesting a security exchange with a Cable Plug Sequence
Page 398 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Vconn Source Cable Plug
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Security_Request Message was successfully sent.
10 Policy Engine requests the DPM for the response to
the security request which is provided.
The Policy Engine tells the Protocol Layer to form a
Security_Response Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Security_Response Message.
Security_Response Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Security_Response Message information to the
Policy Engine that consumes it.
14 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
15 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
16 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
17 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Security_Response Message was successfully sent.
The security exchange is complete.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 399
8.3.2.12 Firmware Update
5: Firmware_Update_Request received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Table 8-49 below provides a detailed explanation of what happens at each labeled step in Figure 8-49 above.
Table 8-49 Steps for a Source requesting a firmware update exchange with a Sink Sequence
Page 400 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Sink Port
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Firmware_Update_Request Message was
successfully sent.
10 Policy Engine requests the DPM for the response to
the firmware update request which is provided.
The Policy Engine tells the Protocol Layer to form a
Firmware_Update_Response Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Firmware_Update_Response Message.
Firmware_Update_Response Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Firmware_Update_Response Message information
to the Policy Engine that consumes it.
14 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
15 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
16 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
17 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Firmware_Update_Response Message was
successfully sent.
The firmware update exchange is complete.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 401
8.3.2.12.2 Sink requests firmware update exchange with Source
Figure 8-50 shows an example sequence for a firmware update exchange between a Sink and a Source.
5: Firmware_Update_Request received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Table 8-50 below provides a detailed explanation of what happens at each labeled step in Figure 8-50 above.
Table 8-50 Steps for a Sink requesting a firmware update exchange with a Source Sequence
Page 402 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Sink Port Source Port
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Firmware_Update_Request Message was
successfully sent.
10 Policy Engine requests the DPM for the response to
the firmware update request which is provided.
The Policy Engine tells the Protocol Layer to form a
Firmware_Update_Response Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Firmware_Update_Response Message.
Firmware_Update_Response Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Firmware_Update_Response Message information
to the Policy Engine that consumes it.
14 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
15 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
16 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
17 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Firmware_Update_Response Message was
successfully sent.
The firmware update exchange is complete.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 403
8.3.2.12.3 Vconn Source requests firmware update exchange with Cable Plug
Figure 8-51 shows an example sequence for a firmware update exchange between a Vconn Source and a Cable Plug.
Figure 8-51 Vconn Source requests firmware update exchange with Cable Plug
1: Send Firmware_Update_Request
2:Firmware_Update_Request
3: Firmware_Update_Request + CRC 4: Firmware_Update_Request
Start CRCReceiveTimer
5: Firmware_Update_Request received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Table 8-51 below provides a detailed explanation of what happens at each labeled step in Figure 8-51 above.
Table 8-51 Steps for a Vconn Source requesting a firmware update exchange with a Cable Plug Sequence
Page 404 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Vconn Source Cable Plug
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Firmware_Update_Request Message was
successfully sent.
10 Policy Engine requests the DPM for the response to
the firmware update request which is provided.
The Policy Engine tells the Protocol Layer to form a
Firmware_Update_Response Message.
11 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
12 Physical Layer receives the Message and compares Physical Layer appends a CRC and sends the
the CRC it calculated with the one sent to verify the Firmware_Update_Response Message.
Firmware_Update_Response Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received
Firmware_Update_Response Message information
to the Policy Engine that consumes it.
14 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
15 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
16 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
17 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Firmware_Update_Response Message was
successfully sent.
The firmware update exchange is complete.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 405
8.3.2.13 Structured VDM
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : UFP Policy Engine
Table 8-52 below provides a detailed explanation of what happens at each labeled step in Figure 8-52 above.
Page 406 USB Power Delivery Specification Revision 3.0, Version 1.1
Step DFP UFP
3 Physical Layer appends CRC and sends the Discover Physical Layer receives the Discover Identity
Identity Command request. Command request and checks the CRC to verify the
Message.
4 Physical Layer removes the CRC and forwards the
Discover Identity Command request to the Protocol
Layer.
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Discover
Identity Command request information to the Policy
Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Discover Identity Command request was
successfully sent.
Policy Engine starts the VDMResponseTimer.
10 Policy Engine requests the identity information from
the Device Policy Manager. The Policy Engine tells
the Protocol Layer to form a Discover Identity
Command ACK response.
11 Protocol Layer creates the Discover Identity
Command ACK response and passes to Physical Layer.
Starts CRCReceiveTimer.
12 Physical Layer receives the Discover Identity Physical Layer appends a CRC and sends the Discover
Command ACK response and compares the CRC it Identity Command ACK response.
calculated with the one sent to verify the Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received Discover
Identity Command ACK response information to the
Policy Engine that consumes it.
14 The Policy Engine stops the VDMResponseTimer and
passed the Identity information to the Device Policy
Manager for evaluation.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Discover Identity Command ACK response was
successfully sent.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 407
8.3.2.13.2 Source Port to Cable Plug Discover Identity
Figure 8-53 shows an example sequence between Source and a Cable Plug, where the Source attempts to discover
identity information from the Cable Plug prior to establishing an Explicit Contract with its Port Partner.
: Source Policy Engine : Protocol : PHY : PHY : Protocol : Cable Plug Policy Engine
No or Implicit Contract
Table 8-53 below provides a detailed explanation of what happens at each labeled step in Figure 8-53 above.
Table 8-53 Steps for Source Port to Cable Plug Discover Identity
Page 408 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Source Port Cable Plug
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Discover
Identity Command request information to the Policy
Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Discover Identity Command request was
successfully sent.
Policy Engine starts the VDMResponseTimer.
10 Policy Engine requests the identity information from
the Device Policy Manager. . tCableMessage after the
GoodCRC Message was sent the Policy Engine tells the
Protocol Layer to form a Discover Identity Command
ACK response.
11 Protocol Layer creates the Discover Identity
Command ACK response and passes to Physical Layer.
Starts CRCReceiveTimer.
12 Physical Layer receives the Discover Identity Physical Layer appends a CRC and sends the Discover
Command ACK response and compares the CRC it Identity Command ACK response.
calculated with the one sent to verify the Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received Discover
Identity Command ACK response information to the
Policy Engine that consumes it.
14 The Policy Engine stops the VDMResponseTimer and
passes the identity information to the Device Policy
Manager for evaluation.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 The Source uses the Cable Plug information as input Protocol Layer verifies and increments the
to its offered capabilities. MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Accept Message was successfully sent.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 409
8.3.2.13.3 DFP to Cable Plug Discover Identity
Figure 8-54 shows an example sequence between a DFP and a Cable Plug, where the DFP attempts to discover identity
information from the Cable Plug.
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : Cable Plug Policy Engine
Explicit PD Contract
Table 8-54 below provides a detailed explanation of what happens at each labeled step in Figure 8-54 above.
Page 410 USB Power Delivery Specification Revision 3.0, Version 1.1
Step DFP Cable Plug
4 Physical Layer removes the CRC and forwards the
Discover Identity Command request to the Protocol
Layer.
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Discover
Identity Command request information to the Policy
Engine that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Discover Identity Command request was
successfully sent.
Policy Engine starts the VDMResponseTimer.
10 Policy Engine requests the identity information from
the Device Policy Manager. tCableMessage after the
GoodCRC Message was sent the Policy Engine tells the
Protocol Layer to form a Discover Identity Command
ACK response.
11 Protocol Layer creates the Discover Identity
Command ACK response and passes to Physical Layer.
Starts CRCReceiveTimer.
12 Physical Layer receives the Discover Identity Physical Layer appends a CRC and sends the Discover
Command ACK response and compares the CRC it Identity Command ACK response.
calculated with the one sent to verify the Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received Discover
Identity Command ACK response information to the
Policy Engine that consumes it.
14 The Policy Engine stops the Discover Identity
Command ACK response and passes the identity
information to the Device Policy Manager for
evaluation.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 The DFP when acting as a Source uses the Cable Plug Protocol Layer verifies and increments the
information as input to its offered capabilities. MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Accept Message was successfully sent.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 411
8.3.2.13.4 DFP to UFP Enter Mode
Figure 8-55 shows an example sequence between a DFP and a UFP that occurs after the DFP has discovered supported
SVIDs and Modes at which point it selects and enters a Mode.
DFP UFP
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : UFP Policy Engine
Table 8-55 below provides a detailed explanation of what happens at each labeled step in Figure 8-55 above.
Page 412 USB Power Delivery Specification Revision 3.0, Version 1.1
Step DFP UFP
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Enter Mode
Command request information to the Policy Engine
that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Enter Mode Command request was successfully sent.
Policy Engine starts the VDMModeEntryTimer.
10 Policy Engine requests the Device Policy Manager to
enter the new Mode. The Policy Engine tells the
Protocol Layer to form an Enter Mode Command ACK
response.
11 Protocol Layer creates the Enter Mode Command
ACK response and passes to Physical Layer. Starts
CRCReceiveTimer.
12 Physical Layer receives the Enter Mode Command Physical Layer appends a CRC and sends the Enter
ACK response and compares the CRC it calculated Mode Command ACK response.
with the one sent to verify the Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received Enter
Mode Command ACK response information to the
Policy Engine that consumes it.
14 The Policy Engine stops the VDMModeEntryTimer
and requests the Device Policy Manager to enter the
new Mode.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Enter Mode Command ACK response was successfully
sent.
DFP and UFP are operating in the new Mode
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 413
8.3.2.13.5 DFP to UFP Exit Mode
Figure 8-56 shows an example sequence between a DFP and a UFP, where the DFP commands the UFP to exit the only
Active Mode.
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : UFP Policy Engine
In Mode In Mode
Enter USB Safe State
USB operation
Table 8-56 below provides a detailed explanation of what happens at each labeled step in Figure 8-56 above.
Page 414 USB Power Delivery Specification Revision 3.0, Version 1.1
Step DFP UFP
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Exit Mode
Command request information to the Policy Engine
that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Exit Mode Command request was successfully sent.
Policy Engine starts the VDMModeExitTimer.
10 Policy Engine requests the Device Policy Manager to
enter USB operation. The Policy Engine tells the
Protocol Layer to form an Exit Mode Command ACK
response.
11 Protocol Layer creates the Exit Mode Command ACK
response and passes to Physical Layer. Starts
CRCReceiveTimer.
12 Physical Layer receives the Exit Mode Command ACK Physical Layer appends a CRC and sends the Exit
response and compares the CRC it calculated with Mode Command ACK response.
the one sent to verify the Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received Exit Mode
Command ACK response information to the Policy
Engine that consumes it.
14 The Policy Engine stops the VDMModeExitTimer and
requests the Device Policy Manager to enter USB
Operation.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the Exit
Mode Command ACK response was successfully sent.
Both DFP and UFP are in USB Operation
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 415
8.3.2.13.6 DFP to Cable Plug Enter Mode
Figure 8-57 shows an example sequence between a DFP and a Cable Plug that occurs after the DFP has discovered
supported SVIDs and Modes at which point it selects and enters a Mode.
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : Cable Plug Policy Engine
Table 8-57 below provides a detailed explanation of what happens at each labeled step in Figure 8-57 above.
Page 416 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 8-57 Steps for DFP to Cable Plug Enter Mode
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 417
Step DFP Cable Plug
14 The Policy Engine stops the VDMModeEntryTimer
and requests the Device Policy Manager to enter the
new Mode.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Enter Mode Command ACK response was successfully
sent.
DFP and Cable Plug are operating in the new Mode
Page 418 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.13.7 DFP to Cable Plug Exit Mode
Figure 8-58 shows an example sequence between a USB Type-C DFP and a Cable Plug, where the DFP commands the
Cable Plug to exit an Active Mode.
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : Cable Plug Policy Engine
In Mode In Mode
Enter USB Safe State
USB operation
Table 8-58 below provides a detailed explanation of what happens at each labeled step in Figure 8-58 above.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 419
Step DFP Cable Plug
5 Protocol Layer checks the MessageID in the incoming
Message is different from the previously stored value
and then stores a copy of the new value.
The Protocol Layer forwards the received Exit Mode
Command request information to the Policy Engine
that consumes it.
6 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
7 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
8 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Exit Mode Command request was successfully sent.
Policy Engine starts the VDMModeExitTimer.
10 Policy Engine requests the Device Policy Manager to
enter USB operation. tCableMessage after the
GoodCRC Message was sent the Policy Engine tells the
Protocol Layer to form an Exit Mode Command ACK
response.
11 Protocol Layer creates the Exit Mode Command ACK
response and passes to Physical Layer. Starts
CRCReceiveTimer.
12 Physical Layer receives the Exit Mode Command ACK Physical Layer appends a CRC and sends the Exit
response and compares the CRC it calculated with Mode Command ACK response.
the one sent to verify the Message.
13 Protocol Layer checks the MessageID in the
incoming Message is different from the previously
stored value and then stores a copy of the new value.
The Protocol Layer forwards the received Exit Mode
Command ACK response information to the Policy
Engine that consumes it.
14 The Policy Engine stops the VDMModeExitTimer and
requests the Device Policy Manager to enter USB
Operation.
15 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
16 Physical Layer appends a CRC and sends the Physical Layer receives GoodCRC Message and
GoodCRC Message. compares the CRC it calculated with the one sent to
verify the Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the Exit
Mode Command ACK response was successfully sent.
Both DFP and Cable Plug are in USB Operation
Page 420 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.13.8 UFP to DFP Attention
Figure 8-59 shows an example sequence between a USB Type-C DFP and a UFP, where the UFP requests attention
from the DFP.
DFP UFP
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : UFP Policy Engine
1: Send Attention
2: Attention
3: Attention + CRC
4: Attention Start CRCReceiveTimer
5: Attention received
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Check and increment MessageIDCounter
Stop CRCReceiveTimer
9: Attention sent
Table 8-59 below provides a detailed explanation of what happens at each labeled step in Figure 8-59 above.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 421
Step DFP UFP
9 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
Attention Command request was successfully sent.
Page 422 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.14 Built in Self-Test (BIST)
Tester UUT
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 423
Table 8-60 Steps for BIST Carrier Mode Test
Page 424 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.2.14.2 BIST Test Data
The following is an example of a BIST Test Data test between a Tester and a UUT. When the UUT is connected to the
Tester the sequence below is executed.
Figure 8-60 shows the Messages as they flow across the bus and within the devices.
1. Connection is established and stable.
2. Tester sends a BIST Message with a BIST Test Data BIST Data Object.
3. UUT answers with a GoodCRC Message.
4. Steps 2and 3 are repeated any number of times.
5. The test ends after Hard Reset Signaling is issued.
See also Section 5.9.2 and Section 6.4.3.2.
Tester UUT
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 425
Table 8-61 Steps for BIST Test Data Test
Page 426 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Tester UUT
16 Physical Layer receives the GoodCRC and checks the Physical Layer appends CRC and sends the GoodCRC
CRC to verify the Message. Message.
17 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
18 Protocol Layer verifies and increments the
MessageIDCounter and stops CRCReceiveTimer.
Protocol Layer informs the Policy Engine that the
BIST Message was successfully sent.
Repeat steps 10-18 any number of times
The UUT exits BIST Test Data test mode after a Hard Reset
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 427
8.3.3 State Diagrams
8.3.3.1 Introduction to state diagrams used in Chapter 8
The state diagrams defined in Section 8.3.3 are Normative and Shall define the operation of the Power Delivery Policy
Engine. Note that these state diagrams are not intended to replace a well written and robust design.
<Name of State>
Actions on entry:
“List of actions to carry out on entering the
state”
Actions on exit:
“List of actions to carry out on exiting the
state”
Power (VI) = “Present power level”
PD = “attachment status”
Figure 8-62 shows an outline of the states defined in the following sections. At the top there is the name of the state.
This is followed by “Actions on entry” a list of actions carried out on entering the state. If there are also “Actions on
exit” a list of actions carried out on exiting the state then these are listed as well; otherwise this box is omitted from
the state. At the bottom the status of PD is listed:
“Power” which indicates the present output power for a Source Port or input power for a Sink Port.
“PD” which indicates the present Attachment status either “Attached”, “Detached”, or “unknown”.
Transitions from one state to another are indicated by arrows with the conditions listed on the arrow. Where there
are multiple conditions these are connected using either a logical OR “|” or a logical AND “&”.
In some cases there are transitions which can occur from any state to a particular state. These are indicated by an
arrow which is unconnected to a state at one end, but with the other end (the point) connected to the final state.
In some state diagrams it is necessary to enter or exit from states in other diagrams (e.g. Source Port or Sink Port state
diagrams). Figure 8-63 indicates how such references are made. The reference is indicated with a hatched box. The
box contains the name of the state and whether the state is a DFP or UFP. It has also been necessary to indicate
conditional entry to either Source Port or Sink Port state diagrams. This is achieved by the use of a bulleted list
indicating the pre-conditions (see example in Figure 8-64). It is also possible that the entry and return states are the
same. Figure 8-65 indicates a state reference where each referenced state corresponds to either the entry state or the
exit state.
Hard Reset:
Consumer or
Consumer/Provider ->
PE_SNK_....
Provider/Consumer in
Source role ->
PE_SRC_...
Page 428 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-65 Example of state reference with the same entry and exit
Timers are included in many of the states. Timers are initialized (set to their starting condition) and run (timer is
counting) in the particular state it is referenced. As soon as the state is exited then the timer is no longer active.
Where the timers continue to run outside of the state (such as the NoResponseTimer), this is called out in the text.
Timeouts of the timers are listed as conditions on state transitions.
Conditions listed on state transitions will come from one of three sources and, when there is a conflict, Should be
serviced in the following order:
1. Message and related indications passed up to the Policy Engine from the Protocol Layer (Message sent, Message
received etc.)
2. Events triggered within the Policy Engine e.g. timer timeouts.
3. Information and requests coming from the Device Policy manager relating either to Local Policy, or to other
modules which the Device Policy Manager controls such as power supply and USB-C Port Control.
Note: The following state diagrams are not intended to cover all possible corner cases that could be encountered. For
example where an outgoing Message is Discarded, due to an incoming Message by the Protocol Layer (see Section
6.11.2.3) it will be necessary for the higher layers of the system to handle a retry of the Message sequence that was
being initiated, after first handling the incoming Message.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 429
Figure 8-66 Source Port Policy Engine State Diagram
Hard reset signalling received
Start
PE_SRC_Hard_Reset_Received PE_SRC_Transition_to_default
Actions on entry:
Actions on entry:
Request Device Policy Manager to request power Power source at default PE_SRC_Startup
Start PSHardResetTimer
supply Hard Resets to vSafe5V via vSafe0V
Actions on entry:
Power = DefauIt (5V) or Reset local HW
Reset CapsCounter
Implicit/Explicit Contract Request Device Policy Manager to set Port Data
Reset Protocol Layer
PD = Connected/not Connected Role to DFP and turn off VCONN
Start SwapSourceStartTimer (only after Swap)
Actions on exit:
PSHardResetTimer Power = DefauIt (5V) or Implicit Contract
Request Device Policy Manager to turn on VCONN
timeout PD = Connected/not Connected
Initialize and start NoResponseTimer
Inform Protocol Layer Hard Reset complete Protocol LayerReset4 |
(SourceCapabilityTimer timeout & CapsCounter > nCapsCount1) |
SwapSourceStartTimer timeout
Power = rising/falling to default (5V) not previously PD Connected6 &
PD = not Connected PE_SRC_Discovery NoResponseTimer timeout &
HardResetCounter > nHardResetCount1)
Actions on entry:
PSHardResetTimer Initialize and run SourceCapabilityTimer
timeout
Power = Default (5V) or Implicit Contract
PD = not Connected
PE_SRC_Hard_Reset
PE_SRC_Disabled
Actions on entry: (SourceCapabilityTimer timeout &
Generate Hard Reset signalling CapsCounter nCapsCount1) Capabilities message sending failure Actions on entry:
Start PSHardResetTimer (without GoodCRC) ¬ presently PD Connected6 Disable Power Delivery
Increment HardResetCounter
Power = DefauIt (5V) or Power = DefauIt (5V)
PE_SRC_Wait_New_Capabilities Implicit/Explicit Contract PD =not Connected
PD = Connected/not Connected PE_SRC_Send_Capabilities
Actions on entry:
Wait for new Source Capabilities9 Actions on entry:
Request present source capabilities from Device Policy Manager not previously PD Connected6&
Power = DefauIt (5V) Send PD Capabilities message NoResponseTimer timeout &
PD =Connected SenderResponseTimer timeout Increment CapsCounter (optional)1 HardResetCounter > nHardResetCount1
If GoodCRC received:
stop NoResponseTimer
reset HardResetCounter and CapsCounter
Source capability Explicit Contract &
initialize and run SenderResponseTimer
change Reject message sent &
(from Device Contract Invalid4 Power = DefauIt (5V) or Implicit/Explicit Contract
previously PD Connected6 &
Policy Manager) PD = Connected/not Connected
NoResponseTimer timeout &
Request message received HardResetCount
> nHardResetCount
Actions on exit:
Send PS_RDY message
Power = transition
PD = Connected
PE_SRC_Ready
Actions on entry:
Notify Protocol Layer of end of
AMS8
Initialize and run
DiscoverIdentityTimer7
Source capability change Initialize and run
(from Device Policy Manager) | SourcePPSCommTimer10 get sink capabilities request
Get_Source_Cap message received
from Device Policy Manager PE_SRC_Get_Sink_Cap
Actions on exit:
SourcePPSCommTimer timeout If the Source is initiating an Actions on entry:
AMS then notify the Protocol Send Get_Sink_Cap message
Layer than the first Message in Sink capabilities Initialize and run
an AMS will follow8 message received | SenderResponseTimer
SenderResponseTimer
Actions on exit:
timeout
Pass sink capabilities/outcome to
Power = Explicit Contract Device Policy Manager
PD = Connected Power = Explicit Contract
PD = Connected
1Implementation of the CapsCounter is Optional. In the case where this is not implemented the Source Shall
continue to send Source_Capabilities Messages each time the SourceCapabilityTimer times out.
2Since the Sink is required to make a Valid request from the offered capabilities the expected transition is via
“Request can be met” unless the Source capabilities have changed since the last offer.
Page 430 USB Power Delivery Specification Revision 3.0, Version 1.1
3 “Contract Invalid” means that the previously negotiated Voltage and Current values are no longer included in the
Source’s new Capabilities. If the Sink fails to make a Valid Request in this case then Power Delivery operation is no
longer possible and Power Delivery mode is exited with a Hard Reset.
4 After
a Power Swap the new Source is required to wait an additional tSwapSourceStart before sending a
Source_Capabilities Message. This delay is not required when first starting up a system.
5PD Connected is defined as a situation when the Port Partners are actively communicating. The Port Partners
remain PD Connected after a Swap until there is a transition to Disabled or the connector is able to identify a Detach.
6Port Partners are no longer PD Connected after a Hard Reset but consideration needs to be given as to whether there
has been a PD Connection while the Ports have been Attached to prevent unnecessary USB Type-C Error Recovery.
7The DiscoverIdentityTimer is run when this is a VCONN Source and a PD Connection with a Cable Plug needs to be
established i.e. no GoodCRC Message has yet been received in response to a Discover Identity Command.
8 If transition into the PE_SRC_Ready state will result in an immediate transition out of the PE_SRC_Ready state e.g. it is
due to a Protocol Error that has not resulted in a Soft Reset then the notifications of the end of AMS and first Message
in an AMS May Not be sent to avoid changing the Rp value unnecessarily.
9In the PE_SRC_Wait_New_Capabilities State the Device Policy Manager Should either decide to send no further
Source Capabilities or Should send a different set of Source Capabilities. Continuing to send the same set of Source
Capabilities could result in a live lock situation.
10The SourcePPSCommTimer is only initialized and run when the present Explicit Contract is for a PPS APDO.
Source’s that do not support PPS do not need to implement the SourcePPSCommTimer.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 431
And the NoResponseTimer times out
And the HardResetCounter > nHardResetCount.
Note in the PE_SRC_Disabled state the Attached device is assumed to be unresponsive. The Policy Engine operates as
if the device is Detached until such time as a Detach/re-Attach is detected.
Page 432 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.2.4 PE_SRC_Negotiate_Capability State
On entry to the PE_SRC_Negotiate_Capability state the Policy Engine Shall ask the Device Policy Manager to evaluate
the Request from the Attached Sink. The response from the Device Policy Manager Shall be one of the following:
The Request can be met.
The Request cannot be met
The Request could be met later from the Power Reserve.
The Policy Engine Shall transition to the PE_SRC_Transition_Supply state when:
The Request can be met.
The Policy Engine Shall transition to the PE_SRC_Capability_Response state when:
The Request cannot be met.
Or the Request can be met later from the Power Reserve.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 433
The Policy Engine Shall transition to the PE_SRC_Send_Capabilities state when:
The Device Policy Manager indicates that Source Capabilities have changed or
A Get_Source_Cap Message is received.
The Policy Engine Shall transition to the PE_SRC_Transition_Supply state when:
A GotoMin request is received from the Device Policy Manager for the Attached Device to go to minimum power.
The Policy Engine Shall transition to the PE_SRC_Get_Sink_Cap state when:
The Device Policy Manager asks for the Sink’s capabilities.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 435
8.3.3.3 Policy Engine Sink Port State Diagram
Figure 8-67 below shows the state diagram for the Policy Engine in a Sink Port. The following sections describe
operation in each of the states.
PE_SNK_Wait_for_Capabilities
Actions on entry:
Initialize and run SinkWaitCapTimer
SenderResponseTimer
Timeout Power = Default (0V or 5V) or
Implicit Contract
PD = Connected/not Connected
PE_SNK_Evaluate_Capability
Actions on entry:
Reset HardResetCounter to zero.
Ask Device Policy Manager to evaluate the options based on supplied
capabilities, any Power Reserve that it needs, and respond indicating
the selected capability and, Optionally, a Capability Mismatch
Source capabilities
message received1 PE_SNK_Ready
Actions on entry:
Initialize and run SinkRequestTimer2 (on receiving Wait)
Initialize and run DiscoverIdentityTimer4
Initialize and run the SinkPPSPeriodicTimer5
Actions on exit:
If the Sink is initiating an AMS then notify the Protocol Layer
that the first Message in the AMS will follow.
PE_SNK_Give_Sink_Cap
PE_SNK_Get_Source_Cap
Actions on entry:
Actions on entry:
Get present sink capabilities from Device Policy Manager
Send Get_Source_Cap message
Send Capabilities message (based on Device Policy
Manager response)
Power = Explicit Contract
Power = Explicit Contract PD = Connected
PD = Connected
Page 436 USB Power Delivery Specification Revision 3.0, Version 1.1
1Source capabilities messages received in states other than PE_SNK_Wait_for_Capabilities and PE_SNK_Ready
constitute a Protocol Error.
2The SinkRequestTimer Should Not be stopped if a Ping Message is received in the PE_SNK_Ready state since it
represents the maximum time between requests after a Wait Message which is not reset by a Ping Message.
3During a Hard Reset the Source voltage will transition to vSafe0V and then transition to vSafe5V. Sinks need to
ensure that VBUS present is not indicated until after the Source has completed the Hard Reset process by detecting
both of these transitions.
4The DiscoverIdentityTimer is run when this is a VCONN Source and a PD Connection with a Cable Plug needs to be
established i.e. no GoodCRC Message has yet been received in response to a Discover Identity Command.
5The SinkPPSPeriodicTimer is only initialized and run when the present Explicit Contract is for a PPS APDO. Sink’s
that do not support PPS do not need to implement the SinkPPSPeriodicTimer.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 437
A Request from the offered Source Capabilities.
A Request from the offered Source Capabilities with an indication that another power level would be preferred
(“Capability Mismatch” bit set).
The Policy Engine Shall initialize and run the SenderResponseTimer.
The Policy Engine Shall transition to the PE_SNK_Transition_Sink state when:
An Accept Message is received from the Source.
The Policy Engine Shall transition to the PE_SNK_Wait_for_Capabilities state when:
There is no Explicit Contract in place and
A Reject Message is received from the Source or
A Wait Message is received from the Source.
The Policy Engine Shall transition to the PE_SNK_Ready state when:
There is an Explicit Contract in place and
A Reject Message is received from the Source or
A Wait Message is received from the Source.
The Policy Engine Shall transition to the PE_SNK_Hard_Reset state when:
A SenderResponseTimer timeout occurs.
Page 438 USB Power Delivery Specification Revision 3.0, Version 1.1
Initialize and run the SinkPPSPeriodicTimer.
On exit from the PE_SNK_Ready state, if the transition is as a result of a DPM request to start a new Atomic Message
Sequence (AMS) then the Policy Engine Shall notify the Protocol Layer that the first Message in an AMS will follow.
The Policy Engine Shall transition to the PE_SNK_Evaluate_Capability state when:
A Source_Capabilities Message is received.
The Policy Engine Shall transition to the PE_SNK_Select_Capability state when:
A new power level is requested by the Device Policy Manager.
A SinkRequestTimer timeout occurs.
The Policy Engine Shall transition to the PE_SNK_Transition_Sink state when:
A GotoMin Message is received.
The Policy Engine Shall transition back to the PE_SNK_Ready state when:
A Ping Message is received. Note this Should Not cause the SinkRequestTimer to be reinitialized.
The Policy Engine Shall transition to the PE_SNK_Give_Sink_Cap state when:
A Get_Sink_Cap Message is received from the Protocol Layer.
The Policy Engine Shall transition to the PE_SNK_Get_Source_Cap state when:
The Device Policy Manager requests an update of the remote Source’s capabilities.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 439
request a reset of the local hardware
request the Device Policy Manger that the Port Data Role is set to UFP.
The Policy Engine Shall transition to the PE_SNK_Startup state when:
The Device Policy Manager indicates that the Sink has reached the default level.
Page 440 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.4 Soft Reset and Protocol Error State Diagrams
8.3.3.4.1 Source Port Soft Reset and Protocol Error State Diagram
Figure 8-68 below shows the state diagram for the Policy Engine in a Source Port when performing a Soft Reset of its
Port Partner. The following sections describe operation in each of the states.
Figure 8-68 Source Port Soft Reset and Protocol Error State Diagram
Accept message
received
PE_SRC_Send_Capabilities
PE_SRC_Ready
Soft Reset message Message not sent after retries (no GoodCRC received)1 |
received Protocol Error2 during Non-interruptable AMS
8.3.3.4.2 Sink Port Soft Reset and Protocol Error State Diagram
Figure 8-69 below shows the state diagram for the Policy Engine in a Sink Port when performing a Soft Reset of its
Port Partner. The following sections describe operation in each of the states.
Figure 8-69 Sink Port Soft Reset and Protocol Error Diagram
Accept message
received
PE_SNK_Wait_for_Capabilities
PE_SNK_Ready
Page 442 USB Power Delivery Specification Revision 3.0, Version 1.1
• During a Power Role Swap when the power supply is in transition (see Section 8.3.3.16.3 and Section 8.3.3.16.4).
In this case a hard reset will be triggered directly.
• During a Data Role Swap when the DFP/UFP roles are changing. In this case USB Type-C Error Recovery will be
triggered directly.
Note that Protocol Errors occurring in the following situations Shall Not lead to a Soft Reset, but Shall result in a
transition to the PE_SNK_Ready state where the Message received will be handled as if it had been received in the
PE_SNK_Ready state:
Protocol Errors occurring during an Interruptible AMS.
Protocol Errors occurring during any AMS where the first Message in the sequence has not yet been sent i.e. an
unexpected Message is received instead of the expected GoodCRC Message response.
On entry to the PE_SNK_Send_Soft_Reset state the Policy Engine Shall request the Protocol Layer to perform a Soft
Reset, then Shall send a Soft_Reset Message to the Source, and initialize and run the SenderResponseTimer.
The Policy Engine Shall transition to the PE_SNK_Wait_for_Capabilities state when:
• An Accept Message has been received.
The Policy Engine Shall transition to the PE_SNK_Hard_Reset state when:
• A SenderResponseTimer timeout occurs.
• Or the Protocol Layer indicates that a transmission error has occurred.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 443
8.3.3.5 Not Supported Message State Diagrams
PE_SRC_Chunk_Received
ChunkingNotSupportedTimer
timeout Actions on entry:
Start ChunkingNotSupportedTimer
1Transition can either be the result of a Protocol Error during an interruptible AMS or as a result of an unsupported
Message being received in the PE_SRC_Ready state directly (see also Section 8.3.3.4.1).
2Transition can only occur where a manufacturer has opted not to implement a Chunking state machine (see Section
6.11.2.1) and is communicating with a system which is attempting to send it Chunks.
Page 444 USB Power Delivery Specification Revision 3.0, Version 1.1
PE_SRC_Ready state directly where the Message is a Chunk in a multi-Chunk Message (see also Section 6.6.17.1 and
Section 8.3.3.4.1).
On entry to the PE_SRC_Chunk_Received state (from the PE_SRC_Ready state) the Policy Engine Shall initialize and
run the ChunkingNotSupportedTimer.
The Policy Engine Shall transition to PE_SRC_Send_Not_Supported when:
• The ChunkingNotSupportedTimer has timed out.
PE_SRC_Chunk_Received
ChunkingNotSupportedTimer
timeout Actions on entry:
Start ChunkingNotSupportedTimer
1Transition can either be the result of a Protocol Error during an interruptible AMS or as a result of an unsupported
Message being received in the PE_SNK_Ready state directly (see also Section 8.3.3.4.2).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 445
8.3.3.5.2.1 PE_SNK_Chunk_Received State
The PE_SNK_Chunk_Received state Shall be entered from the PE_SNK_Ready state either as the result of a Protocol
Error received during an interruptible AMS or as a result of an unsupported Message being received in the
PE_SNK_Ready state directly where the Message is a Chunk in a multi-Chunk Message (see also Section 6.6.17.1 and
Section 8.3.3.4.1).
On entry to the PE_SNK_Chunk_Received state (from the PE_SNK_Ready state) the Policy Engine Shall initialize and
run the ChunkingNotSupportedTimer.
The Policy Engine Shall transition to PE_SNK_Send_Not_Supported when:
• The ChunkingNotSupportedTimer has timed out.
Actions on entry:
PE_SRC_Ready
Send Ping message
Ping message sent
Power = Explicit Contract
PD = connected
Actions on entry:
PE_SRC_Ready
Send Alert Message Alert
Message sent
Power = Explicit Contract
PD = connected
Page 446 USB Power Delivery Specification Revision 3.0, Version 1.1
The Alert Message has been successfully sent.
Actions on entry:
PE_SNK_Ready
Inform DPM of the detail of the alert
DPM Informed
Power = Explicit Contract
PD = connected
Actions on entry:
PE_SNK_Ready
Send Alert Message Alert
Message sent
Power = Explicit Contract
PD = connected
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 447
Figure 8-76 Source Port Sink Alert State Diagram
Actions on entry:
PE_SRC_Ready
Inform DPM of the detail of the alert
DPM Informed
Power = Explicit Contract
PD = connected
Figure 8-77 Sink Port Get Source Capabilities Extended State Diagram
Page 448 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-78 Source Give Source Capabilities Extended State Diagram
Get_Source_Cap_Extended message
received PE_SRC_Give_Source_Cap_Ext
PE_SRC_Ready
Actions on entry:
Get present extended source capabilities from Device
Source_Capabilities_Extended Policy Manager
Message sent Send Source_Capabilities_Extended message (based on
Device Policy Manager response)
Power = Explicit Contract
PD = Connected
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 449
Figure 8-80 Source Give Source Status State Diagram
Get_Status message
received PE_SRC_Give_Source_Status
PE_SRC_Ready
Actions on entry:
Get present Source status from Device Policy Manager
Status Send Status message (based on Device Policy Manager
Message sent response)
Page 450 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-82 Sink Give Sink Status State Diagram
Get_Status message
received PE_SNK_Give_Sink_Status
PE_SNK_Ready
Actions on entry:
Get present Sink status from Device Policy Manager
Status Send Status message (based on Device Policy Manager
Message sent response)
Figure 8-83 Sink Port Get Source PPS Status State Diagram
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 451
Figure 8-84 Source Give Source PPS Status State Diagram
Get_PPS_Status message
received PE_SRC_Give_PPS_Status
PE_SRC_Ready
Actions on entry:
Get present Source PPS status from Device Policy
PPS_Status Manager
Message sent Send PPS_Status message (based on Device Policy
Manager response)
Power = Explicit Contract
PD = Connected
Page 452 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-86 Give Battery Capabilities State Diagram
Get_Battery_Cap Message
received PE_Give_Battery_Cap
PE_SRC_Ready or
PE_SNK_Ready Actions on entry:
Get present Battery capabilities from Device Policy
Battery_Capabilities Manager
Message sent Send Battery_Capabilities Message (based on Device
Policy Manager response)
Power = Explicit Contract
PD = Connected
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 453
8.3.3.11.2 Give Battery Status State Diagram
Figure 8-88 shows the state diagram for a Source or Sink on receiving a Get_Battery_Status Message. See also Section
6.5.4.
Get_Battery_Status Message
received PE_Give_Battery_Status
PE_SRC_Ready or
PE_SNK_Ready Actions on entry:
Get present Battery status from Device Policy Manager
Battery_Status Send Battery_Status Message (based on Device Policy
Message sent Manager response)
Page 454 USB Power Delivery Specification Revision 3.0, Version 1.1
A Manufacturer_Info Message is received
Or SenderResponseTimer times out.
Get_Manufacturer_Info Message
received PE_Give_Manufacturer_Info
PE_SRC_Ready,
PE_SNK_Ready or Actions on entry:
PE_CBL_Ready Get present Manufacturer Information from Device Policy
Manufacturer_Info Manager
Message sent Send Manufacturer_Info Message (based on Device Policy
Manager response)
Power = Explicit Contract
PD = Connected
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 455
The Policy Engine Shall transition back to either the PE_SRC_Ready or PE_SNK_Ready state as appropriate (see Figure
8-66 and Figure 8-67) when:
A Country_Codes Message is received
Or SenderResponseTimer times out.
Get_Country_Codes Message
received PE_Give_Country_Codes
PE_SRC_Ready,
PE_SNK_Ready or Actions on entry:
PE_CBL_Ready Get present Country Codes from Device Policy Manager
Country_Codes Send Country_Codes Message (based on Device Policy
Message sent Manager response)
Page 456 USB Power Delivery Specification Revision 3.0, Version 1.1
The Policy Engine Shall transition back to either the PE_SRC_Ready or PE_SNK_Ready state as appropriate (see Figure
8-66 and Figure 8-67) when:
A Country_Info Message is received
Or SenderResponseTimer times out.
Get_Country_Info Message
received PE_Give_Country_Info
PE_SRC_Ready,
PE_SNK_Ready or Actions on entry:
PE_CBL_Ready Get present Country Information from Device Policy
Country_Info Manager
Message sent Send Country_Info Message (based on Device Policy
Manager response)
Power = Explicit Contract
PD = Connected
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 457
The Security_Request Message has been sent.
Security_Request Message
received PE_Send_Security_Response
PE_SRC_Ready,
PE_SNK_Ready or Actions on entry:
PE_CBL_Ready Get present Security response from Device Policy
Security_Response Manager
Message sent Send Security_Response Message (based on Device
Policy Manager response)
Power = Explicit Contract
PD = Connected
Security_Response Message
received PE_Security_Response_Received
PE_SRC_Ready or
PE_SNK_Ready Actions on entry:
Inform Device Policy Manager of the security response
details.
DPM informed
Page 458 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.15 Firmware Update State Diagrams
Firmware_Update_Request
Message received PE_Send_Firmware_Update_Response
PE_SRC_Ready,
PE_SNK_Ready or Actions on entry:
PE_CBL_Ready Get present firmware update response from Device Policy
Firmware_Update_Response Manager
Message sent Send Firmware_Update_Response Message (based on
Device Policy Manager response)
Power = Explicit Contract
PD = Connected
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 459
8.3.3.15.3 Firmware Update Response Received State Diagram
Figure 8-100 shows the state diagram for a Source or Sink on receiving a Firmware_Update_Response Message. See
also Section 6.5.9.
Firmware_Update_Response
Message received PE_Firmware_Update_Response_Received
PE_SRC_Ready or
PE_SNK_Ready Actions on entry:
Inform Device Policy Manager of the firmware update
response details.
DPM informed
Page 460 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.16.1 DFP to UFP Data Role Swap State Diagram
Figure 8-101 shows the additional state diagram required to perform a Data Role Swap from DFP to UFP operation
and the changes that Shall be followed for error and Hard Reset handling.
PE_DRS_DFP_UFP_ PE_DRS_DFP_UFP_
Reject_Swap Data Role Swap not ok | PE_DRS_DFP_UFP_
Further evaluation
Evaluate_Swap Send_Swap
Actions on entry: required Actions on entry:
Send Reject or Wait message Get evaluation of Data Role Swap Actions on entry:
as appropriate request from Device Policy Manager Send Swap DR message
Initialize and run
Power = Explicit Contract SenderResponseTimer
Power = Explicit Contract
PD = Connected
PD = Connected Power = Explicit Contract
PD = Connected
Data Role Swap ok
Accept received
PE_DRS_DFP_UFP_
Accept_Swap
Actions on entry:
Send Accept message
Accept message
sent
PE_DRS_DFP_UFP_
Change_to_UFP
Actions on entry:
Request Device Policy Manager to
change port to UFP
Power = Explicit Contract
PD = Connected
PE_SRC_Ready or
PE_SNK_Ready
(UFP)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 461
There are one or more Active Modes (Modal Operation).
The Policy Engine Shall transition to the PE_DRS_DFP_UFP_Send_Swap state when:
The Device Policy Manager indicates that a Data Role Swap is required.
Page 462 USB Power Delivery Specification Revision 3.0, Version 1.1
The Policy Engine Shall continue as a DFP and Shall transition to either the PE_SRC_Ready or PE_SNK_Ready state
when:
The Reject or Wait Message has been sent.
PE_SRC_Ready or
PE_SNK_Ready
(UFP)
Reject message received |
Wait message received |
SenderResponseTimer
timeout
DR_Swap message received & Data Role Swap required
not in Modal Operation (indication from
Message sent Device Policy Manager)
Accept message
sent
PE_DRS_UFP_DFP_
Change_to_DFP
Actions on entry:
Request Device Policy Manager to
change port to DFP
PE_SRC_Ready or
PE_SNK_Ready
(DFP)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 463
A DR_Swap Message is received and
There are no Active Modes (not in Modal Operation).
The Policy Engine Shall transition to either the PE_SRC_Hard_Reset or PE_SNK_Hard_Reset states when:
A DR_Swap Message is received and
There are one or more Active Modes (Modal Operation).
The Policy Engine Shall transition to the PE_DRS_UFP_DFP_Send_Swap state when:
The Device Policy Manager indicates that a Data Role Swap is required.
Page 464 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.16.2.6 PE_DRS_UFP_DFP_Reject_Swap State
On entry to the PE_DRS_UFP_DFP_Reject_Swap state the Policy Engine Shall request the Protocol Layer to send:
A Reject Message if the device is unable to perform a Data Role Swap at this time.
A Wait Message if further evaluation of the Data Role Swap request is required. Note: in this case it is expected
that one of the Port Partners will send a DR_Swap Message at a later time (see Section 6.3.12.3).
The Policy Engine Shall continue as a UFP and Shall transition to the either the PE_SRC_Ready or PE_SNK_Ready state
when:
The Reject or Wait Message has been sent.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 465
8.3.3.16.3 Policy Engine in Source to Sink Power Role Swap State Diagram
Dual-Role Ports that combine Source and Sink capabilities Shall comprise Source and Sink Policy Engine state
machines. In addition they Shall have the capability to do a Power Role Swap from the PE_SRC_Ready state and Shall
return to USB Default Operation on a Hard Reset.
Figure 8-103 shows the additional state diagram required to perform a Power Role Swap from Source to Sink roles
and the changes that Shall be followed for error handling.
Figure 8-103: Dual-Role Port in Source to Sink Power Role Swap State Diagram
Message sent
PE_SRC_Ready
Reject message received |
Wait message received |
PR_Swap message received Power Role Swap required SenderResponseTimer
(indication from timeout
Device Policy Manager)
PE_PRS_SRC_SNK_ PE_PRS_SRC_SNK_
Reject_PR_Swap Power Role Swap not ok | Evaluate_Swap
Further evaluation
Actions on entry: required Actions on entry: PE_PRS_SRC_SNK_
Send Reject or Wait message Get evaluation of swap request from Send_Swap
as appropriate Device Policy Manager
Actions on entry:
Power = Explicit Contract Power = Explicit Contract Send PR_Swap message
PD = Connected PD = Connected Initialize and run
SenderResponseTimer
Power Role Swap ok
Power = Explicit Contract
PD = Connected
PE_PRS_SRC_SNK_
Accept_Swap
Actions on entry:
Accept received
Send Accept message
Power = Explicit Contract
PD = Connected
Accept message
sent
PE_PRS_SRC_SNK_
Transition_to_off
Actions on entry:
Tell Device Policy Manager to turn off
power supply
PE_PRS_SRC_SNK_
Assert_Rd
Actions on entry:
Request DPM to assert Rd
Rd asserted
PSSourceOnTimer Timeout |
PS_RDY message not sent after retries (no GoodCRC received)
PE_PRS_SRC_SNK_
Wait_Source_on
Actions on entry:
Send PS_RDY message
Initialize and run PSSourceOnTimer
PS_RDY message
received
ErrorRecovery PE_SNK_Startup
Page 466 USB Power Delivery Specification Revision 3.0, Version 1.1
The Policy Engine Shall transition to the PE_PRS_SRC_SNK_Evaluate_Swap state when:
A PR_Swap Message is received.
The Policy Engine Shall transition to the PE_PRS_SRC_SNK_Send_Swap state when:
The Device Policy Manager indicates that a Power Role Swap is required.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 467
The PS_RDY Message is not sent after retries (a GoodCRC Message has not been received). Note: a soft reset Shall
Not be initiated in this case.
8.3.3.16.4 Policy Engine in Sink to Source Power Role Swap State Diagram
Dual-Role Ports that combine Sink and Source capabilities Shall comprise Sink and Source Policy Engine state
machines. In addition they Shall have the capability to do a Power Role Swap from the PE_SNK_Ready state and Shall
return to USB Default Operation on a Hard Reset.
Figure 8-104 shows the additional state diagram required to perform a Power Role Swap from Sink to Source roles
and the changes that Shall be followed for error handling.
Page 468 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-104: Dual-role Port in Sink to Source Power Role Swap State Diagram
Message sent
PE_SNK_Ready
Reject message received |
Power Role Swap required Wait message received |
PR_Swap message received SenderResponseTimer
(indication from
Device Policy Manager) timeout
PE_PRS_SNK_SRC_ PE_PRS_SNK_SRC_
Reject_Swap Power Role Swap not ok |
Evaluate_Swap
Further evaluation PE_PRS_SNK_SRC_
Actions on entry: required Actions on entry: Send_Swap
Send Reject or Wait message Get evaluation of swap request from
as appropriate Device Policy Manager Actions on entry:
Send PR_Swap message
Power = Explicit Contract Power = Explicit Contract Initialize and run
PD = Connected PD = Connected SenderResponseTimer
PE_PRS_SNK_SRC_
Accept_Swap
Actions on entry:
Send Accept message Accept message
received
Power = Explicit Contract
PD = Connected
PE_PRS_SNK_SRC_
Transition_to_off
Actions on entry:
PSSourceOffTimer timeout Initialize and run PSSourceOffTimer
Tell Device Policy Manager to turn off
Power Sink.
Power = Transition to stop sinking
PD = Connected
PE_PRS_SNK_SRC_
Assert_Rp
Actions on entry:
ErrorRecovery Request DPM to assert Rp
Rp asserted
PE_PRS_SNK_SRC_
Source_on
Actions on entry:
Tell Device Policy Manager to turn on
PS_RDY message not sent Source
after retries (no GoodCRC received)
Actions on exit:
Send PS_RDY message
Source is on
PE_SRC_Startup
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 469
8.3.3.16.4.2 PE_PRS_SNK_SRC_Evaluate_Swap State
On entry to the PE_PRS_SNK_SRC_Send_Swap state the Policy Engine Shall ask the Device Policy Manager whether a
Power Role Swap can be made.
The Policy Engine Shall transition to the PE_PRS_SNK_SRC_Accept_Swap state when:
The Device Policy Manager indicates that a Power Role Swap is ok.
The Policy Engine Shall transition to the PE_PRS_SNK_SRC_Reject_Swap state when:
The Device Policy Manager indicates that a Power Role Swap is not ok.
Page 470 USB Power Delivery Specification Revision 3.0, Version 1.1
The Policy Engine Shall transition to the PE_SNK_Ready state when:
A Reject Message is received.
Or a Wait Message is received.
Or the SenderResponseTimer times out.
The Policy Engine Shall transition to the PE_PRS_SNK_SRC_Transition_to_off state when:
An Accept Message is received.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 471
8.3.3.16.5 Policy Engine in Source to Sink Fast Role Swap State Diagram
Dual-Role Ports that combine Source and Sink capabilities Shall comprise Source and Sink Policy Engine state
machines. In addition they Should have the capability to do a Fast Role Swap from the PE_SRC_Ready state and Shall
return to USB Default Operation on a Hard Reset.
Figure 8-103 shows the additional state diagram required to perform a Fast Role Swap from Source to Sink roles and
the changes that Shall be followed for error handling.
Figure 8-105: Dual-Role Port in Source to Sink Fast Role Swap State Diagram
PE_FRS_SRC_SNK_
CC_Signal DPM indicates Fast Role Swap
Actions on entry: is being signaled
CC signaled on CC Wire
Power = Implicit Contract
PD = Connected
PE_FRS_SRC_SNK_
Evaluate_Swap
Actions on entry:
Power Role Swap not ok | Get evaluation of swap request from
Fast Role Swap not signaled Device Policy Manager
PE_FRS_SRC_SNK_
Accept_Swap
Actions on entry:
Send Accept message
Power = Implicit Contract
PD = Connected
Accept message
PS_RDY message not sent after sent
retries (no GoodCRC received)
PE_FRS_SRC_SNK_
Transition_to_off
Actions on entry:
PE_SRC_Hard_Reset Wait for VBUS to reach vSafe5V
VBUS at vSafe5V
PE_FRS_SRC_SNK_
Assert_Rd
Actions on entry:
Request DPM to assert Rd
Rd asserted
PE_FRS_SRC_SNK_
PSSourceOnTimer Timeout | Wait_Source_on
PS_RDY message not sent after
retries (no GoodCRC received) Actions on entry:
Send PS_RDY message
Initialize and run PSSourceOnTimer
PS_RDY message
received
ErrorRecovery PE_SNK_Startup
Page 472 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.16.5.1 PE_SRC_Ready State
The Fast Role Swap process Shall start only from the PE_SRC_Ready state where power is stable.
The Policy Engine Shall transition to the PE_FRS_SRC_SNK_Evaluate_Swap state when:
An FR_Swap Message is received.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 473
8.3.3.16.5.7 PE_FRS_SRC_SNK_Wait_Source_on State
On entry to the PE_PRS_SRC_SNK_Wait_Source_on state the Policy Engine Shall request the Protocol Layer to send a
PS_RDY Message and Shall start the PSSourceOnTimer.
On exit from the Source off state the Policy Engine Shall stop the PSSourceOnTimer.
The Policy Engine Shall transition to the PE_SNK_Startup when:
A PS_RDY Message is received indicating that the new Source is now applying Rp.
The Policy Engine Shall transition to the ErrorRecovery state when:
The PSSourceOnTimer times out or
The PS_RDY Message is not sent after retries (a GoodCRC Message has not been received). Note: a soft reset Shall
Not be initiated in this case.
8.3.3.16.6 Policy Engine in Sink to Source Fast Role Swap State Diagram
Dual-Role Ports that combine Sink and Source capabilities Shall comprise Sink and Source Policy Engine state
machines. In addition they Should have the capability to do a Fast Role Swap from the PE_SNK_Ready state and Shall
return to USB Default Operation on a Hard Reset.
Figure 8-104 shows the additional state diagram required to perform a Fast Role Swap from Sink to Source roles and
the changes that Shall be followed for error handling.
Page 474 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-106: Dual-role Port in Sink to Source Fast Role Swap State Diagram
PE_FRS_SNK_SRC_
Start_AMS
Actions on entry:
Notify the Protocol Layer that
the first Message in the AMS
will follow.
PE_FRS_SNK_SRC_
SenderResponseTimer timeout | Send_Swap
FR_Swap message not sent Actions on entry:
after retries (no GoodCRC received) Send FR_Swap message
Initialize and run
SenderResponseTimer
Accept message
received
PE_FRS_SNK_SRC_
Transition_to_off
PSSourceOffTimer timeout Actions on entry:
Initialize and run PSSourceOffTimer
PE_FRS_SNK_SRC_Vbus_Applied
Actions on entry:
Request Device Policy Manager to notify
when vSafe5v is being applied by the local
power source.
PE_FRS_SNK_SRC_
Assert_Rp
Actions on entry:
Request DPM to assert Rp
Rp asserted
PE_FRS_SNK_SRC_
Source_on
PS_RDY message not sent Actions on entry:
after retries (no GoodCRC received) Send PS_RDY Message
ErrorRecovery PE_SRC_Startup
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 475
8.3.3.16.6.1 PE_FRS_SNK_SRC_Start_AMS State
The Policy Engine Shall transition to the PE_FRS_SNK_SRC_Send_Swap state from any other state provided there is an
Explicit Contract in place when:
The Device Policy Manager indicates that a Fast Role Swap signal has been detected on the CC Wire and vSafe5V
has been applied to VBUS.
On entry to the PE_FRS_SNK_SRC_Start_AMS state the Policy Engine Shall notify the Protocol Layer that the first
Message in an AMS will follow.
The Policy Engine Shall transition to the PE_FRS_SNK_SRC_Send_Swap state when:
The Protocol Layer has been notified.
Page 476 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.16.6.6 PE_FRS_SNK_SRC_Source_on State
On entry to the PE_FRS_SNK_SRC_Source_on state the Policy Engine Shall request the Device Policy Manager to turn
on the Source.
On exit from the PE_FRS_SNK_SRC_Source_on state (except if the exit is to send a Ping Message) the Policy Engine
Shall send a PS_RDY Message.
The Policy Engine Shall transition to the PE_SRC_Startup state when:
The PS_RDY Message has been sent.
The Policy Engine Shall transition to the ErrorRecovery state when:
The PS_RDY Message is not sent after retries (a GoodCRC Message has not been received). A soft reset Shall Not
be initiated in this case.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 477
Figure 8-108 Dual-Role (Source) Give Sink Capabilities diagram
Get_Sink_Cap message
received PE_DR_SRC_Give_Sink_Cap
PE_SRC_Ready
Actions on entry:
Get present sink capabilities from Device Policy Manager
Sink Capabilities Send Capabilities message (based on Device Policy
message sent Manager response)
Power = Explicit Contract
PD = Connected
Page 478 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-110 Dual-Role (Sink) Give Source Capabilities State Diagram
Get_Source_Cap message
received
PE_SNK_Ready PE_DR_SNK_Give_Source_Cap
Actions on entry:
Request source capabilities from
Source Capabilities Device Policy Manager
message sent Send Capabilities message
Power = Explicit Contract
PD = Connected
8.3.3.16.11 Dual-Role (Source Port) Get Source Capabilities Extended State Diagram
Figure 8-111 shows the state diagram for a Dual-Role device, presently operating as a Source, on receiving a request
from the Device Policy Manager to get the Port Partner’s extended Source capabilities. See also Section 6.5.1.
Figure 8-111 Dual-Role (Source) Get Source Capabilities Extended State Diagram
8.3.3.16.12 Dual-Role (Sink Port) Give Source Capabilities Extended State Diagram
Figure 8-112 shows the state diagram for a Dual-Role device, presently operating as a Sink, on receiving a
Get_Source_Cap_Extended Message. See also Section 6.5.1.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 479
Figure 8-112 Dual-Role (Source) Give Sink Capabilities diagram
Get_Source_Cap_Extended message
received PE_DR_SNK_Give_Source_Cap_Ext
PE_SNK_Ready
Actions on entry:
Get present extended source capabilities from Device
Source_Capabilities_Extended Policy Manager
Message sent Send Source_Capabilities_Extended message (based on
Device Policy Manager response)
Power = Explicit Contract
PD = Connected
Page 480 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-113 VCONN Swap State Diagram
PE_SRC_Ready or
PE_SNK_Ready
PE_VCS_Wait_for_VCONN PE_VCS_Turn_On_VCONN
VCONNOnTimer Timeout Actions on entry: Actions on entry:
Start VCONNOnTimer Tell Device Policy Manager to turn on
VCONN
Power = Explicit Contract
PD = Connected Power = Explicit Contract
PD = Connected
PS_RDY message
received VCONN turned on
PE_VCS_Turn_Off_VCONN
PE_VCS_Send_PS_Rdy
Actions on entry:
Tell Device Policy Manager to turn off Actions on entry:
VCONN Send PS_RDY message
Consumer/Provider ->
PE_SNK_Hard_Reset
PE_SRC_Ready or
Provider/Consumer ->
PE_SNK_Ready
PE_SRC_Hard_Reset
1A Port is presently the VCONN Source if it has the responsibility for supplying VCONN even if VCONN has been turned
off.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 481
On entry to the PE_VCS_Send_Swap state the Policy Engine Shall send a VCONN_Swap Message and start the
SenderResponseTimer.
The Policy Engine Shall transition to the PE_VCS_Wait_For_VCONN state when:
An Accept Message is received and
DFP current has VCONN turned on.
The Policy Engine Shall transition to the PE_VCS_Turn_On_VCONN state when:
An Accept Message is received and
DFP current has VCONN turned off.
The Policy Engine Shall transition back to either the PE_SRC_Ready or PE_SNK_Ready state for a DFP when:
A Reject Message is received or
A Wait Message is received or
The SenderResponseTimer times out.
Page 482 USB Power Delivery Specification Revision 3.0, Version 1.1
The Reject or Wait Message has been sent.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 483
Figure 8-114 Initiator to Port VDM Discover Identity State Diagram
PE_INIT_PORT_VDM_Identity_ACKed PE_INIT_PORT_VDM_Identity_NAKed
Actions on entry: Actions on entry:
Inform DPM of identity Inform DPM of result
Power = Explicit Contract Power = Explicit Contract
PD = Connected PD = Connected
DPM informed
Discover Identity ACK
received Discover Identity NAK/BUSY |
VDMResponseTimer Timeout
PE_INIT_PORT_VDM_Identity_Request
Actions on entry:
Send Discover Identity request DPM informed
Start VDMResponseTimer
DPM requests
identity discovery
PE_SRC_Ready or PE_SNK_Ready
Page 484 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.18.2 Initiator Structured VDM Discover SVIDs State Diagram
Figure 8-115 shows the state diagram for an Initiator when discovering SVIDs of its Port Partner or Cable Plug.
PE_INIT_VDM_SVIDs_ACKed PE_INIT_VDM_SVIDs_NAKed
Actions on entry: Actions on entry:
Inform DPM of SVIDs Inform DPM of result
Power = Explicit Contract Power = Explicit Contract
PD = Connected PD = Connected
DPM informed
Discover SVIDs ACK Discover SVIDs NAK/BUSY |
received VDMResponseTimer Timeout
PE_INIT_VDM_SVIDs_Request
Actions on entry:
Send Discover SVIDs request DPM informed
Start VDMResponseTimer
DPM requests
SVIDs discovery
PE_SRC_Ready or PE_SNK_Ready
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 485
The Policy Engine Shall transition to either the PE_SRC_Ready or PE_SNK_Ready state when:
The Device Policy Manager has been informed.
PE_INIT_VDM_Modes_ACKed PE_INIT_VDM_Modes_NAKed
Actions on entry: Actions on entry:
Inform DPM of Modes Inform DPM of result
Power = Explicit Contract Power = Explicit Contract
PD = Connected PD = Connected
DPM informed
Discover Modes ACK Discover Modes NAK/BUSY |
received VDMResponseTimer Timeout
PE_INIT_VDM_Modes_Request
Actions on entry:
Send Discover Modes request DPM informed
Start VDMResponseTimer
DPM requests
Modes discovery
PE_SRC_Ready or PE_SNK_Ready
Page 486 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.18.3.3 PE_INIT_VDM_Modes_NAKed State
On entry to the PE_INIT_VDM_Modes_NAKed state the Policy Engine Shall inform the Device Policy Manager of the
result (NAK, BUSY or timeout).
The Policy Engine Shall transition to either the PE_SRC_Ready or PE_SNK_Ready state for a DFP when:
The Device Policy Manager has been informed.
PE_SRC_Ready or PE_SNK_Ready
PE_INIT_VDM_Attention_Request
Actions on entry:
Send Attention Command request
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 487
Figure 8-118 Responder Structured VDM Discover Identity State Diagram
Page 488 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-119 Responder Structured VDM Discover SVIDs State Diagram
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 489
Figure 8-120 Responder Structured VDM Discover Modes State Diagram
Page 490 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-121 Receiving a Structured VDM Attention State Diagram
PE_SRC_Ready or PE_SNK_Ready
Attention Command
request received DPM informed
PE_RCV_VDM_Attention_Request
Actions on entry:
Inform Device Policy Manager of Attention Command request
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 491
Figure 8-122 DFP VDM Mode Entry State Diagram
PE_DFP_VDM_Mode_Entry_ACKed PE_DFP_VDM_Mode_Entry_NAKed
Actions on entry:
Send Mode Entry request DPM informed2
Start VDMModeEntryTimer
DPM requests
Mode entry1
PE_SRC_Ready or PE_SNK_Ready
(DFP)
1The Device Policy Manager Shall have placed the system into USB Safe State before issuing this request when
entering Modal operation.
2 The Device Policy Manager Shall have returned the system to USB operation if not in Modal operation at this point.
3Protocol Errors are handled by informing the DPM, returning to USB Safe State and then processing the Message
once the PE_SRC_Ready or PE_SNK_Ready state has been entered.
Page 492 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.20.1.3 PE_DFP_VDM_Mode_Entry_NAKed State
On entry to the PE_DFP_VDM_Mode_Entry_NAKed state the Policy Engine Shall inform the Device Policy Manager of
the reason for failure (NAK, BUSY, timeout or Protocol Error).
The Policy Engine Shall transition to either the PE_SRC_Ready or PE_SNK_Ready state for a DFP when:
The Device Policy Manager has been informed.
PE_SRC_Ready or PE_SNK_Ready
(DFP)
PE_DFP_VDM_Mode_Exit_Request
Actions on entry:
Send Exit Mode request
Start VDMModeExitTimer
Exit Mode BUSY Received | Power = Explicit Contract
VDMModeExitTimer Timeout PD = Connected
PE_DFP_VDM_Exit_Mode_ACKed
PE_SRC_Hard_Reset or Actions on entry:
PE_SNK_Hard_Reset Inform DPM of ACK or NAK
(DFP)
Power = Explicit Contract
PD = Connected
1The Device Policy Manager is required to return the system to USB operation at this point when exiting Modal
Operation.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 493
The VDMModeExitTimer times out.
Enter Modes
request1
Cable = Awake
PD = Connected
Enter Mode ACK
sent
DPM says
Mode entered
PE_UFP_VDM__Mode_Entry PE_UFP_VDM__Mode_Entry_ACK
Actions on entry: _NAK
Actions on entry:
Send Enter Mode NAK Command response as
Send Enter Mode ACK Command
requested
Cable = Awake
Cable = Awake
PD = Connected
PD = Connected
1 The UFP is required to be in USB operation or USB Safe State at this point.
Page 494 USB Power Delivery Specification Revision 3.0, Version 1.1
The Device Policy Manager indicates that the response to the Mode request is NAK.
PE_UFP_VDM__Mode_Exit
Actions on entry:
Request DPM to evaluate request to exit the
requested Mode Exit Mode
NAK sent
Power = Explicit Contract DPM says NAK
PD = Connected
Exit Mode ACK
sent1
Mode exited
PE_UFP_VDM__Mode_Exit_ PE_UFP_VDM__Mode_Exit_
Actions on entry: ACK Actions on entry: NAK
Send Exit Mode ACK Command Send Exit Mode NAK Command
1 The UFP is required to be in USB operation or USB Safe State at this point.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 495
The Device Policy Manger indicates that the Mode has been exited.
The Policy Engine Shall transition to the PE_UFP_VDM_Mode_Exit_NAK state when:
The Device Policy Manager indicates that the Command response to the Exit Mode Command request is NAK.
Power up |
Hard Reset Complete |
Cable Reset Complete
PE_CBL__Ready
Actions on entry:
Cable = Awake/Asleep
PD = Not Connected/Connected
Page 496 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 8-127 Cable Plug Soft Reset State Diagram
PE_CBL_Ready
Accept message
sent
PE_CBL_Soft_Reset Transmission
Error indication
Actions on entry: from Protocol Layer
Reset Protocol Layer PE_CBL_Hard_Reset
Send Accept message
Cable = Awake
PD = Connected
PE_CBL_Hard_Reset
Actions on entry:
Reset Cable Plug
Cable = Awake/Asleep
PD = Not Connected
PE_CBL_Ready
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 497
8.3.3.22.2.2.1 PE_CBL_Hard_Reset State
The PE_CBL_Hard_Reset state Shall be entered from any state when either Hard Reset Signaling or Cable Reset
Signaling is detected.
On entry to the PE_CBL_Hard_Reset state the Policy Engine Shall reset the Cable Plug (equivalent to a power cycle).
The Policy Engine Shall transition to the PE_CBL_Ready state when:
The Cable Plug reset is complete.
8.3.3.22.2.3 DFP Soft Reset or Cable Reset of a Cable Plug State Diagram
Figure 8-129 below shows the state diagram for the Policy Engine in a DFP when performing a Soft Reset or Cable
Reset of a Cable Plug. The following sections describe operation in each of the states.
Figure 8-129 DFP Soft Reset or Cable Reset of a Cable Plug State Diagram
Accept message
PE_SRC_Ready or PE_SNK_Ready received
(DFP)
SenderResponseTimer
Timeout | PE_DFP_CBL_Send_Soft_Reset
PE_DFP_CBL_Send_Cable_Reset Transmission
Error indication Actions on entry:
Actions on entry: from Protocol Layer Reset Protocol Layer
Turn on VCONN
Send Soft Reset message
Send Cable Reset message
Initialize and run SenderResponseTimer
Power = DefauIt/Implicit or Explicit Contract
PD = Connected Power = DefauIt/Implicit or Explicit Contract
PD = Connected
Page 498 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.22.2.3.2 PE_DFP_CBL_Send_Cable_Reset State
The PE_DFP_CBL_Send_Cable_Reset state Shall be entered from any state when the Device Policy Manager requests a
Cable Reset.
On entry to the PE_DFP_CBL_Send_Cable_Reset state the Policy Engine Shall request the Protocol Layer to send Cable
Reset Signaling.
The Policy Engine Shall transition to either the PE_SRC_Ready or PE_SNK_Ready state, depending on the DFP’s Power
Role, when:
Cable Reset Signaling has been sent.
Figure 8-130 UFP Source Soft Reset of a Cable Plug State Diagram
PE_SRC_Ready (UFP)
PE_UFP_CBL_Send_Soft_Reset
Actions on entry:
Reset Protocol Layer
Send Soft Reset message
Initialize and run SenderResponseTimer
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 499
The Policy Engine Shall transition to the PE_SRC_Ready state when:
An Accept Message has been received
Or a SenderResponseTimer timeout occurs
Or the Protocol Layer indicates that a transmission error has occurred.
8.3.3.22.3 Source Startup Structured VDM Discover Identity of a Cable Plug State Diagram
Figure 8-131 shows the state diagram for Source discovery of identity information from a Cable Plug during the
startup sequence.
Figure 8-131 Source Startup Structured VDM Discover Identity State Diagram
PE_SRC_Startup
PE_SRC_VDM_Identity_Request
Actions on entry:
Send Discover Identity request
Increment the DiscoverIdentityCounter
Start VDMResponseTimer
PE_SRC_VDM_Identity_ACKed PE_SRC_VDM_Identity_NAKed
Actions on entry: Actions on entry:
Inform DPM of identity Inform DPM of result
Power = No or Implicit Contract Power =No or Implicit Contract
Cable Plug = PD Connected Cable Plug = PD Connected
DPM informed
DPM informed
PE_SRC_Discovery PE_SRC_Send_Capabilities or
PE_SRC_Discovery1
1If the Discover Identity Command is being sent at startup then the Policy Engine will subsequently transition to the
PE_SRC_Send_Capabilities state as normal. Otherwise the Policy Engine will transition to the PE_SRC_Discovery state.
2The SourceCapabilityTimer continues to run during the states defined in this diagram even though there has been
an exit from the PE_SRC_Discovery state. This ensures that Source_Capabilities Messages are sent out at a regular
rate.
Page 500 USB Power Delivery Specification Revision 3.0, Version 1.1
The Device Policy Manager requests the discovery of the identity of the Cable Plug.
The Policy Engine Shall transition to the PE_SRC_VDM_Identity_Request state from the PE_SRC_Discovery state when:
The Device Policy Manager requests the discovery of the identity of the Cable Plug and
The DiscoverIdentityCounter < nDiscoverIdentityCount.
Even though there has been a transition out of the PE_SRC_Discovery state the SourceCapabilityTimer Shall continue
to run during the states shown in Figure 8-131 and Shall Not be initialized on re-entry to PE_SRC_Discovery.
On entry to the PE_SRC_VDM_Identity_Request state the Policy Engine Shall send a Structured VDM Discover Identity
Command request, Shall increment the DiscoverIdentityCounter and Shall start the VDMResponseTimer.
The Policy Engine Shall transition to the PE_SRC_VDM_Identity_ACKed state when:
A Structured VDM Discover Identity ACK Command response is received.
The Policy Engine Shall transition to the PE_SRC_VDM_Identity_NAKed state when:
A Structured VDM Discover Identity NAK or BUSY Command response is received or
The VDMResponseTimer times out or
The Structured VDM Discover Identity Command request Message sending fails (no GoodCRC Message received
after retries).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 501
Figure 8-132 Cable Plug Structured VDM Enter Mode State Diagram
PE_CBL__Ready
Actions on entry:
Cable = Awake/Asleep
PD = Not Connected/Connected
Enter Modes
request1
PE_CBL__Mode_Entry_NAK PE_CBL__Mode_Entry_ACK
Actions on entry:
Actions on entry:
Send Enter Mode NAK Command response as
Send Enter Mode ACK Command
requested
Cable = Awake
Cable = Awake
PD = Connected
PD = Connected
1 The Cable is required to be in USB operation or USB Safe State at this point.
8.3.3.22.4.1.1 PE_CBL_Evaluate_Mode_Entry State
The Policy Engine transitions to the PE_CBL_Evaluate_Mode_Entry state from the PE_CBL_Ready state when:
A Structured VDM Enter Mode Command request is received from the DFP.
On Entry to the PE_CBL_Evaluate_Mode_Entry state the Policy Engine Shall request the Device Policy Manager to
evaluate the Enter Mode Command request and enter the Mode indicated in the Command request if the request is
acceptable.
The Policy Engine Shall transition to the PE_CBL_Mode_Entry_ACK state when:
The Device Policy Manager indicates that the Mode has been entered.
The Policy Engine Shall transition to the PE_CBL_Mode_Entry_NAK state when:
The Device Policy Manager indicates that the response to the Mode request is NAK.
8.3.3.22.4.1.2 PE_CBL_Mode_Entry_ACK State
On entry to the PE_CBL_Mode_Entry_ACK state the Policy Engine Shall send a Structured VDM Enter Mode ACK
Command response.
The Policy Engine Shall transition to the PE_CBL_Ready state when:
The Structured VDM Enter Mode ACK Command response has been sent.
8.3.3.22.4.1.3 PE_CBL_Mode_Entry_NAK State
On entry to the PE_CBL_Mode_Entry_NAK state the Policy Engine Shall send a Structured VDM Enter Mode NAK
Command response as indicated by the Device Policy Manager.
The Policy Engine Shall transition to the PE_CBL_Ready state when:
The Structured VDM Enter Mode NAK Command response has been sent.
Page 502 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.22.4.2 Cable Plug Structured VDM Exit Mode State Diagram
Figure 8-133 shows the state diagram for a Cable Plug in response to an Exit Mode Command.
Figure 8-133 Cable Plug Structured VDM Exit Mode State Diagram
PE_CBL__Ready
Actions on entry:
Cable = Awake/Asleep
PD = Not Connected/Connected
PE_CBL__Mode_Exit
Actions on entry:
Request DPM to evaluate request to exit the
requested Mode Exit Mode
NAK sent
Cable = Awake DPM says NAK
PD = Connected
Exit Mode ACK
sent1
Mode exited
PE_CBL__Mode_Exit_ACK PE_CBL__Mode_Exit_NAK
Actions on entry: Actions on entry:
Send Exit Mode ACK Command Send Exit Mode NAK Command
1 The Cable is required to be in USB operation or USB Safe State at this point.
8.3.3.22.4.2.1 PE_CBL_Mode_Exit State
The Policy Engine transitions to the PE_CBL_Mode_Exit state from the PE_CBL_Ready state when:
A Structured VDM Exit Mode Command request is received from the DFP.
On entry to the PE_CBL_Mode_Exit state the Policy Engine Shall request the Device Policy Manager to exit the Mode
indicated in the Command.
The Policy Engine Shall transition to the PE_CBL_Mode_Exit_ACK state when:
The Device Policy Manger indicates that the Mode has been exited.
The Policy Engine Shall transition to the PE_CBL_Mode_Exit_NAK state when:
The Device Policy Manager indicates that the Command response to the Exit Mode Command request is NAK.
8.3.3.22.4.2.2 PE_CBL_Mode_Exit_ACK State
On entry to the PE_CBL_Mode_Exit_ACK state the Policy Engine Shall send a Structured VDM Exit Mode ACK
Command response.
The Policy Engine Shall transition to the PE_CBL_Ready state when:
The Structured VDM Exit Mode ACK Command response has been sent.
8.3.3.22.4.2.3 PE_CBL_Mode_Exit_NAK State
On entry to the PE_CBL_Mode_Exit_NAK state the Policy Engine Shall send a Structured VDM Exit Mode NAK
Command response as indicated by the Device Policy Manager.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 503
The Policy Engine Shall transition to the PE_CBL_Ready state when:
The Structured VDM Exit Mode NAK Command response has been sent.
PE_SRC_Ready or
PE_SNK_Ready or
PE_CBL_Ready
PE_BIST_Carrier_Mode
Actions on entry:
Tell Protocol Layer to go to BIST
Carrier Mode
Initialize and run BISTContModeTimer
VBUS = vSafe5V
PD = Connected
BISTContModeTimer
timeout
PE_SRC_Transition_to_default or
PE_SNK_Transition_to_default or
PE_CBL_Ready
Page 504 USB Power Delivery Specification Revision 3.0, Version 1.1
8.3.3.24 USB Type-C Referenced States
This section contains states cross-referenced from the [USB Type-C 1.2] specification.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 505
8.3.3.25 Policy Engine States
Table 8-62 lists the states used by the various state machines.
Page 506 USB Power Delivery Specification Revision 3.0, Version 1.1
State name Reference
PE_SRC_Not_Supported_Received Section 8.3.3.5.1.2
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 507
State name Reference
Give Battery Status
PE_Give_Battery_Status Section 8.3.3.11.2.1
Manufacturer Information
Get Manufacturer Information
PE_Get_Manufacturer_Info Section 8.3.3.12.1
Give Manufacturer Information
PE_Give_Manufacturer_Info Section 8.3.3.12.2
Country Codes and Information
Get Country Codes
PE_Get_Country_Codes Section 8.3.3.13.1.1
Give Country Codes
PE_Give_Country_Codes Section 8.3.3.13.2.1
Get Country Information
PE_Get_Country_Info Section 8.3.3.13.3.1
Give Country Information
PE_Give_Country_Info Section 8.3.3.13.4.1
Security Request/Response
Send Security Request
PE_Send_Security_Request Section 8.3.3.14.1
Send Security Response
PE_Send_Security_Response Section 8.3.3.14.2
Security Response Received
PE_Security_Response_Received Section 8.3.3.14.3
Firmware Update Request/Response
Send Firmware Update Request
PE_Send_Firmware_Update_Request Section 8.3.3.15.1.1
Send Firmware Update Response
PE_Send_Firmware_Update_Response Section 8.3.3.15.2.1
Firmware Update Response Received
PE_Firmware_Update_Response_Received Section 8.3.3.15.3.1
Dual-Role Port
DFP to UFP Data Role Swap
PE_DRS_DFP_UFP_Evaluate_Swap Section 8.3.3.16.1.2
Page 508 USB Power Delivery Specification Revision 3.0, Version 1.1
State name Reference
PE_DRS_UFP_DFP_Reject_Swap Section 8.3.3.16.2.6
Source to Sink Power Role Swap
PE_PRS_SRC_SNK_Evaluate_Swap Section 8.3.3.16.3.2
PE_PRS_SNK_SRC_Assert_Rp
PE_PRS_SNK_SRC_Source_on Section 8.3.3.16.4.5
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 509
State name Reference
Dual-Role Source Port Get Source Capabilities Extended
PE_DR_SRC_Get_Source_Cap_Ext Section 8.3.3.16.11.1
Dual-Role Sink Port Give Source Capabilities Extended
PE_DR_SNK_Give_Source_Cap_Ext Section 8.3.3.16.12.1
USB Type-C VCONN Swap
PE_VCS_Send_Swap Section 8.3.3.17.1.1
Page 510 USB Power Delivery Specification Revision 3.0, Version 1.1
State name Reference
Receiving a Structured VDM Attention
PE_RCV_VDM_Attention_Request Section 8.3.3.19.4.1
DFP Structured VDM
DFP Structured VDM Mode Entry
PE_DFP_VDM_Mode_Entry_Request Section 8.3.3.20.1.1
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 511
State name Reference
PE_SRC_VDM_Identity_NAKed Section 8.3.3.22.3.3
BIST Carrier Mode
PE_BIST_Carrier_Mode Section 8.3.3.23.1.1
USB Type-C referenced states
ErrorRecovery Section 8.3.3.24.1
Page 512 USB Power Delivery Specification Revision 3.0, Version 1.1
9. States and Status Reporting
9.1 Overview
This chapter describes the Status reporting mechanisms for devices with data connections (e.g. D+/D- and or SSTx+/-
and SSRx+/-). It also describes the corresponding USB state a device that supports USB PD Shall transition to as a
result of changes to the USB PD state that the device is in.
This chapter does not define the System Policy or the System Policy Manager. That is defined in [USBTypeCBridge
1.0]. In addition the Policies themselves are not described here; these are left to the implementers of the relevant
products and systems to define.
All PD Capable USB (PDUSB) Devices Shall report themselves as self-powered devices (over USB) when plugged into a
PD capable Port even if they are entirely powered from VBUS. However, there are some differences between PD and
[USB 2.0] / [USB 3.1]; for example, the presence of VBUS alone does not mean that the device (Consumer) moves from
the USB Attached state to the USB Powered state. Similarly the removal of VBUS alone does not move the device
(Consumer) from any of the USB states to the Attached state. See Section 9.1.2 for details.
PDUSB Devices Shall follow the PD requirements when it comes to suspend (see Section 6.4.1.2.2.2), configured, and
operational power. The PD requirements when the device is configured or operational are defined in this section (see
Table 9-4). Note that the power requirements reported in the PD Consumer Port descriptor of the device Shall
override the power draw reported in the bMaxPower field in the configuration descriptor. A PDUSB Device Shall
report zero in the bMaxPower field after successfully negotiating a mutually agreeable Contract and Shall disconnect
and re-enumerate when it switches operation back to operating in standard [USB 2.0], [USB 3.1], [USB Type-C 1.2] or
[USBBC 1.2] When operating in [USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] mode it Shall report its power
draw via the bMaxPower field.
As shown in Figure 9-1, each Provider and Consumer will have their own Local Policies which operate between
directly connected ports. An example of a typical PD system is shown in Figure 9-1. This example consists of a
Provider, Consumer/Providers and Consumers connected together in a tree topology. Between directly connected
devices there is both a flow of Power and also Communication consisting of both Status and Control information.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 513
Figure 9-1 Example PD Topology
AC/Battery
Power
Provider
Communication
P/C Provider/Consumer
Consumer/
Provider
P/C P/C P/C
Consumer/ AC/Battery
Consumer Consumer
Provider
Figure 9-2 shows how this same topology can be mapped to USB. In a USB based system, policy is managed by the
host and communication of system level policy information is via standard USB data line communication. This is a
separate mechanism to the USB Power Delivery VBUS protocol which is used to manage Local Policy. When USB data
line communication is used, status information and control requests are passed directly between the System Policy
Manager (SPM) on the host and the Provider or Consumer.
Status information comes from a Provider or Consumer to the SPM so it can better manage the resources on the host
and provide feedback to the end user.
Real systems will be a mixture of devices which in terms of power management support might have implemented PD,
[USB 2.0], [USB 3.1], [USB Type-C 1.2] or [USBBC 1.2] or they might even just be non-compliant Power Sucking
Devices. The level of communication of system status to the SPM will therefore not necessarily be comprehensive.
The aim of the status mechanisms described here is to provide a mechanism whereby each connected entity in the
system provides as much information as possible on the status of itself.
Page 514 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 9-2 Mapping of PD Topology to USB
AC/Battery
Power
Root Hub
Communication
Hub
AC/Battery
Device Device Device
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 515
Figure 9-3 shows how a PDUSB Device determines when to transition from the USB Attached to the USB Powered
state. USB Type-C Dead Battery operation does not require special handling since the default state at Attach or after a
Hard Reset is that the USB Device is a Sink.
Negotiate
enough
No Power? Yes
Hard
Reset
No
Device
in Sink
Mode
No
Device in
Source
Mode (5V)
No No
Figure 9-4 shows how a PDUSB Device determines when to transition from the USB Powered state to the USB
Attached state when the device is a Consumer. A PDUSB Device determines that it is performing a Power Role Swap
as described in Section 8.3.3.16.3 and Section 8.3.3.16.4. See Section 7.1.5 for additional information on device
behavior during Hard Resets.
Page 516 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure 9-4 Any USB State to USB Attached State Transition (When operating as a Consumer)
Swapping
Any USB VBUS No Power
No USB
State Present Attached
Roles?
Yes Yes
Hard Reset
and
Bus Powered
Figure 9-5 shows how a PDUSB Device determines when to transition from the USB Powered state to the USB
Attached state when the device is a Provider.
Figure 9-5 Any USB State to USB Attached State Transition (When operating as a Provider)
No
Figure 9-6 shows how a PDUSB Device using the USB Type-C connector determines when to transition from the USB
Powered state to the USB Attached state after a Data Role Swap has been performed i.e. it has just changed from
operation as a PDUSB Host to operation as a PDUSB Device. The Data Role Swap is described in Section 6.3.9. A Hard
Reset will also return a Sink acting as a PDUSB Host to PDUSB Device operation as described in Section 6.8.2. See
Section 7.1.5 for additional information on device behavior during Hard Resets.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 517
Figure 9-6 Any USB State to USB Attached State Transition (After a USB Type-C Data Role Swap)
Hard Reset
No Changes Data
Role
Swapping
Any USB VBUS Yes Data
Yes USB
State Present Attached
Roles?
If a PDUSB Device cannot perform its intended function with the amount of power that it can get from the Port it is
connected to then the host system Should display a Message (on a PD aware OS) about the failure to provide sufficient
power to the device. In addition the device Shall follow the requirements listed in Section 8.2.5.2.1.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 519
9.2 PD Specific Descriptors
A PDUSB Device Shall return all relevant descriptors mentioned in this section.
The device Shall return its capability descriptors as part of the device’s Binary Object Store (BOS) descriptor set.
Table 9-1 lists the type of PD device capabilities.
Page 520 USB Power Delivery Specification Revision 3.0, Version 1.1
Offset Field Size Value Description
capabilities defined in the USB Type-C
Specification as per the value reported in the
bcdUSBTypeCVersion field
7 Reserved. Shall be set to zero.
15:8 bmPowerSource. At least one of the following
bits 8, 9 and 14 Shall be set to indicate which
power sources are supported.
Bit Description
8 AC Supply
9 Battery
10 Other
13:11 NumBatteries. This
field Shall only be Valid
when the Battery field is
set to one and Shall be
used to report the
number of batteries in
the device.
14 Uses VBUS
15 Reserved and Shall be
set to zero.
31:16 Reserved and Shall be set to zero.
8 bcdBCVersion 2 BCD Battery Charging Specification Release Number in Binary-
Coded Decimal (e.g., V1.20 is 120H). This field Shall only be
Valid if the device indicates that it supports BC in the
bmAttributes field.
10 bcdPDVersion 2 BCD USB Power Delivery Specification Release Number in
Binary-Coded Decimal. This field Shall only be Valid if the
device indicates that it supports PD in the bmAttributes
field.
12 bcdUSBTypeCVersion 2 BCD USB Type-C Specification Release Number in Binary-Coded
Decimal. This field Shall only be Valid if the device
indicates that it supports USB Type-C in the bmAttributes
field.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 521
Offset Field Size Value Description
6 bBatteryId 1 Number Value Shall be used to uniquely identify this Battery in
status Messages.
7 bReserved 1 Number Reserved and Shall be set to zero.
8 dwChargedThreshold 4 mWh Shall contain the Battery Charge value above which
this Battery is considered to be fully charged but not
necessarily “topped off.”
12 dwWeakThreshold 4 mWh Shall contain the minimum charge level of this Battery
such that above this threshold, a device can be assured
of being able to power up successfully (see Battery
Charging 1.2).
16 dwBatteryDesignCapacity 4 mWh Shall contain the design capacity of the Battery.
20 dwBatteryLastFullchargeCapacity 4 mWh Shall contain the maximum capacity of the Battery
when fully charged.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 523
9.3 PD Specific Requests and Events
A PDUSB Device that is compliant to this specification Shall support the Battery related requests if it has a battery.
A PDUSB Hub that is compliant to this specification Shall support a USB PD Bridge as described in [USBTypeCBridge
1.0] irrespective of whether the PDUSB Hub is a Provider, a Consumer, or both.
Table 9-7 gives the bRequest values for commands that are not listed in the hub/device framework chapters of [USB
2.0], [USB 3.1].
bRequest Value
GET_BATTERY_STATUS 21
Table 9-8 gives the Valid feature selectors for the PD class. Refer to Section 9.4.2.1, and Section 9.4.2.2 for a
description of the features.
CHARGING_POLICY Device 54
Page 524 USB Power Delivery Specification Revision 3.0, Version 1.1
9.4 PDUSB Hub and PDUSB Peripheral Device Requests
9.4.1 GetBatteryStatus
This request returns the current status of the Battery in a PDUSB Hub/Peripheral.
bmRequestType bRequest wValue wIndex wLength Data
Battery
10000000B Get_Battery_Status Zero Battery ID Eight
Status
The PDUSB Hub/Peripheral Shall return the Battery Status of the Battery identified by the value of wIndex field.
Every PDUSB Device that has a Battery Shall return its Battery Status when queried with this request. For Providers
or Consumers with multiple batteries, the status of each Battery Shall be reported per Battery.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 525
Offset Field Size Value Description
4 wRemainingOperatingTime 2 Number Shall contain the operating time (in minutes) until the
Weak Battery threshold is reached, based on Present
Battery Strength and the device’s present operational
power needs. Note: this value Shall exclude any additional
power received from charging.
A Battery that is not capable of returning this information
Shall return a value of 0xFFFF.
6 wRemainingChargeTime 2 Number Shall contain the remaining time (in minutes) until the
Charged Battery threshold is reached based on Present
Battery Strength, charging power and the device’s present
operational power needs. Value Shall only be Valid if the
Charging Flow is “Charging”.
A Battery that is not capable of returning this information
Shall return a value of 0xFFFF.
If wValue or wLength are not as specified above, then the behavior of the PDUSB Device is not specified.
If wIndex refers to a Battery that does not exist, then the PDUSB Device Shall respond with a Request Error.
If the PDUSB Device is not configured, the PDUSB Hub's response to this request is undefined.
If the PDUSB Hub is not configured, the PDUSB Hub's response to this request is undefined.
9.4.2 SetPDFeature
This request sets the value requested in the PDUSB Hub/Peripheral.
bmRequestType bRequest wValue wIndex wLength Data
00000000B SET_ FEATURE Feature Selector Feature Specific Zero None
Setting a feature enables that feature or starts a process associated with that feature; see Table 9-8 for the feature
selector definitions. Features that May be set with this request are:
BATTERY_WAKE_MASK.
CHARGING_POLICY.
Bit Description
0 Battery Present: When this bit is set then
the PDUSB Device Shall generate a wake
event if it detects that a Battery has been
Attached.
1 Charging Flow: When this bit is set then
the PDUSB Device Shall generate a wake
event if it detects that a Battery switched
from charging to discharging or vice versa.
2 Battery Error: When this bit is set then
the PDUSB Device Shall generate a wake
event if the Battery has detected an error
condition.
15:3 Reserved and Shall Not be used.
Page 526 USB Power Delivery Specification Revision 3.0, Version 1.1
The SPM May Enable or Disable the wake events associated with one or more of the above events by using this
feature.
If the PDUSB Hub is not configured, the PDUSB Hub's response to this request is undefined.
Value Description
00H The device Shall follow the default current limits as defined in the USB 2.0 or USB 3.1 specification,
or as negotiated through other USB mechanisms such as BC.
This is the default value.
01H The Device May draw additional power during the unconfigured and suspend states for the
purposes of charging.
For charging the device itself, the device Shall limit its current draw to the higher of these two
values:
ICCHPF as defined in the USB 2.0 or USB 3.1 specification, regardless of its USB state.
Current limit as negotiated through other USB mechanisms such as BC.
02H The Device May draw additional power during the unconfigured and suspend states for the
purposes of charging.
For charging the device itself, the device Shall limit its current draw to the higher of these two
values:
ICCLPF as defined in the USB 2.0 or USB 3.1 specification, regardless of its USB state.
Current limit as negotiated through other USB mechanisms such as BC.
03H The device Shall Not consume any current for charging the device itself regardless of its USB state.
04H-FFFFH Reserved and Shall Not be used
This is a Valid command for the PDUSB Hub/Peripheral in the Address or Configured USB states. Further, it is only
Valid if the device reports a USB PD capability descriptor in its BOS descriptor and Bit 5 of the bmAttributes in that
descriptor is set to 1. The device will go back to the wIndex default value of 0 whenever it is reset.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 527
10. Power Rules
10.1 Introduction
The flexibility of power provision on USB Type-C is expected to lead to adapter re-use and the increasingly
widespread provision of USB power outlets in domestic and public places and in transport of all kinds. Environmental
considerations could result in unbundled adapters. Rules are needed to avoid incompatibility between the Sources
and the Sinks they are used to power, in order to avoid user confusion and to meet user expectations. This section
specifies a set of rules that Sources and Sinks Shall follow. These rules provide a simple and consistent user
experience.
Page 528 USB Power Delivery Specification Revision 3.0, Version 1.1
10.2.2 Normative Voltages and Currents
The voltages and currents a Source with a PDP of x Watts Shall support are as defined in Table 10-2.
PDP (W) Current at 5V (A) Current at 9V (A) Current at 15V (A) Current at 20V (A)
0.5 ≤ x ≤ 15 x÷5
15 < x ≤ 27 3 x÷9
27 < x ≤ 45 3 3 x ÷ 15
45 < x ≤ 60 3 3 3 x ÷ 20
60 < x ≤ 100 3 3 3 x ÷ 201
1 Requires a 5A cable.
Figure 10-1 illustrates the maximum current and power rails that a Source Shall support at each voltage for a given
PDP.
4
Current (A)
5 + 9V 5 + 9 + 15V
3
1
7.5W
27W
15W
45W
0
Rp1 Rp2
0 10 20 30 40 50 60 70 80 90 100
Source Power Rating (W)
Figure 10-2 shows an example of an adapter with a rating at 50W. The adapter is required to support 20V at 2.5A,
15V at 3A, 9V at 3A and 5V at 3A.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 529
Figure 10-2 Source Power Rule Example
4
Current (A)
5 + 9V 5 + 9 + 15V
3
50W
7.5W
27W
15W
45W
0
Rp1 Rp2
0 10 20 30 40 50 60 70 80 90 100
Source Power Rating (W)
Table 10-3, Table 10-4, Table 10-5 and Table 10-6 show the Fixed Supply PDOs that Shall be supported for each of the
Normative voltages defined in Table 10-2.
Bit(s) Description
B31…30 Fixed supply
B29 Dual-Role Power
B28 USB Suspend Supported
B27 Unconstrained Power
B26 USB Communications Capable
B25 Dual-Role Data
B24…22 Reserved – Shall be set to zero.
B21…20 Peak Current
B19…10 5V
B9…0
PDP (x) Current (A)
0.5 ≤ x ≤ 15 x÷5
15 < x ≤ 100 3
Page 530 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 10-4 Fixed Supply PDO – Source 9V
Bit(s) Description
B31…30 Fixed Supply
B29…22 Reserved – Shall be set to zero.
B21…20 Peak Current
B19…10 9V
B9…0
PDP (x) Current (A)
0.5 ≤ x ≤ 15 PDO not required
15 < x ≤ 27 x÷9
27 < x ≤ 100 3
Bit(s) Description
B31…30 Fixed Supply
B29…22 Reserved – Shall be set to zero.
B21…20 Peak Current
B19…10 15V
B9…0
PDP (x) Current (A)
0.5 ≤ x ≤ 27 PDO not required
27 < x ≤ 45 x ÷ 15
45 < x ≤ 100 3
Bit(s) Description
B31…30 Fixed Supply
B29…22 Reserved – Shall be set to zero.
B21…20 Peak Current
B19…10 20V
B9…0
PDP (x) Current (A)
0.5 ≤ x ≤ 45 PDO not required
45 < x ≤ 100 x ÷ 20
More current May be offered in the PDOs when Optional voltages/currents are supported and a 5A cable is being
used (see Section 10.2.3).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 531
10.2.3 Optional Voltages/Currents
10.2.3.1 Optional Normative Fixed, Variable and Battery Supply
In addition to the voltages and currents specified in Section 10.2.2 a Source that is optimized for use with a specific
Sink or a specific class of Sinks May Optionally supply additional voltages and increased currents. When Optional
voltages and increased currents are provided, the following requirements Shall apply:
The Source Shall be able to meet its PDP at the Normative voltages and currents as specified in Section 10.2.2.
A Source Shall Not advertise Fixed Supply PDO Optional voltages and currents that exceed the PDP.
A Source Shall Not advertise Variable Supply PDO Optional maximum voltages and currents that exceed the PDP.
A Source Shall Not advertise a Battery Supply PDO Optional maximum allowable power that exceeds the PDP.
Table 10-7 Programmable Power Supply PDOs and APDOs based on the PDP
PDP (W) 5V fixed 9V fixed 15V fixed 20V fixed 5V Prog 9V Prog 15V Prog 20V Prog
x <= 15W PDP/5 - - - PDP/5 - - -
15 < x <= 27W 3A PDP/9 - - 3A or PDP/9 - -
PDP/52
27 < x <= 45W 3A 3A PDP/15 - PDP/51 3A or PDP/15 -
PDP/92
45 < x <= 100W 3A 3A 3A PDP/20 - PDP/91 3A or PDP/202
PDP/152
Notes:
1. This PPS APDO is Optional.
2. The PPS May offer more than 3A when a 5A cable is present.
Page 532 USB Power Delivery Specification Revision 3.0, Version 1.1
Table 10-8 Programmable Power Supply Voltage Ranges
The voltage output at the Source’s connector Shall be +/-5% for both the Maximum Voltage and the Minimum Voltage.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 533
Low power Sources (e.g., 5V) are expected to be very common and will be used with Sinks designed for a higher
PDP.
Optimizing the user experience when Sources with a high PDP are used with low power Sinks.
Preventing Sinks that only function well (or at all) when using Optional voltages and currents.
Page 534 USB Power Delivery Specification Revision 3.0, Version 1.1
A. CRC calculation
A.1 C code example
//
// USB PD CRC Demo Code.
//
#include <stdio.h>
int crc;
//-----------------------------------------------------------------------------
int ret = 0;
int j, bit;
c = ~c;
printf("~crc=0x%x\n", c);
for(int i=0;i<32;i++) {
j = 31-i;
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 535
}
return ret;
//-----------------------------------------------------------------------------
int main(){
int txCrc=0,rxCrc=0,residue=0,data;
crc = 0xffffffff;
crcBits(data,16);
txCrc = crcWrap(crc);
crc = 0xffffffff;
crcBits(data,16);
rxCrc = crcWrap(crc);
printf("should be 0xc704dd7b\n");
Page 536 USB Power Delivery Specification Revision 3.0, Version 1.1
A.2 Table showing the full calculation over one Message
CRC register CRC register CRC register CRC register
Function Nibble Symbol Bits bit nr. Function Nibble Symbol Bits bit nr.
transmitter receiver transmitter receiver
0 FFFFFFFF FFFFFFFF 1 1 FFFFFFFF FFFFFFFF 85
1 FFFFFFFF FFFFFFFF 2 0 FFFFFFFE FFFFFFFF 86
#1
0 FFFFFFFF FFFFFFFF 3 #09 0 FB3EE24B FFFFFFFF 87
1 FFFFFFFF FFFFFFFF 4 1 F2BCD921 FFFFFFFF 88
0 FFFFFFFF FFFFFFFF 5 0 E1B8AFF5 FFFFFFFF 89
1 FFFFFFFF FFFFFFFF 6 0 E1B8AFF5 FFFFFFFF 90
0 FFFFFFFF FFFFFFFF 7 1 C7B0425D FFFFFFFE 91
#0
1 FFFFFFFF FFFFFFFF 8 #1E 1 8BA1990D FB3EE24B 92
0 FFFFFFFF FFFFFFFF 9 1 13822FAD F2BCD921 93
GoodCRC
1 FFFFFFFF FFFFFFFF 10 1 27045F5A E1B8AFF5 94
Header
0 FFFFFFFF FFFFFFFF 11 1 27045F5A E1B8AFF5 95
#0101
1 FFFFFFFF FFFFFFFF 12 0 4AC9A303 C7B0425D 96
#1
0 FFFFFFFF FFFFFFFF 13 #09 0 95934606 8BA1990D 97
1 FFFFFFFF FFFFFFFF 14 1 2FE791BB 13822FAD 98
0 FFFFFFFF FFFFFFFF 15 0 5FCF2376 27045F5A 99
1 FFFFFFFF FFFFFFFF 16 0 5FCF2376 27045F5A 100
0 FFFFFFFF FFFFFFFF 17 1 BF9E46EC 4AC9A303 101
#0
1 FFFFFFFF FFFFFFFF 18 #1E 1 7BFD906F 95934606 102
0 FFFFFFFF FFFFFFFF 19 1 F7FB20DE 2FE791BB 103
1 FFFFFFFF FFFFFFFF 20 1 EB375C0B 5FCF2376 104
0 FFFFFFFF FFFFFFFF 21 0 EB375C0B 5FCF2376 105
1 FFFFFFFF FFFFFFFF 22 1 EB375C0B BF9E46EC 106
#8
0 FFFFFFFF FFFFFFFF 23 #12 0 EB375C0B 7BFD906F 107
1 FFFFFFFF FFFFFFFF 24 0 EB375C0B F7FB20DE 108
0 FFFFFFFF FFFFFFFF 25 1 EB375C0B EB375C0B 109
1 FFFFFFFF FFFFFFFF 26 0 EB375C0B EB375C0B 110
0 FFFFFFFF FFFFFFFF 27 0 EB375C0B D2AFA5A1 111
#2
1 FFFFFFFF FFFFFFFF 28 #14 1 EB375C0B A19E56F5 112
P 0 FFFFFFFF FFFFFFFF 29 0 EB375C0B 47FDB05D 113
r 1 FFFFFFFF FFFFFFFF 30 1 EB375C0B 8B3A7D0D 114
e 0 FFFFFFFF FFFFFFFF 31 1 EB375C0B 8B3A7D0D 115
a 1 FFFFFFFF FFFFFFFF 32 0 EB375C0B 12B5E7AD 116
#3
m 0 FFFFFFFF FFFFFFFF 33 #15 1 EB375C0B 21AAD2ED 117
b 1 FFFFFFFF FFFFFFFF 34 0 EB375C0B 4355A5DA 118
l 0 FFFFFFFF FFFFFFFF 35 1 EB375C0B 86AB4BB4 119
e 1 FFFFFFFF FFFFFFFF 36 1 EB375C0B 86AB4BB4 120
0 FFFFFFFF FFFFFFFF 37 0 EB375C0B 0D569768 121
CRC-32 = #1
1 FFFFFFFF FFFFFFFF 38 #09 0 EB375C0B 1E6C3367 122
swapped
0 FFFFFFFF FFFFFFFF 39 1 EB375C0B 3CD866CE 123
and
1 FFFFFFFF FFFFFFFF 40 0 EB375C0B 79B0CD9C 124
inverted
0 FFFFFFFF FFFFFFFF 41 1 EB375C0B 79B0CD9C 125
EB375C0B
1 FFFFFFFF FFFFFFFF 42 1 EB375C0B F7A0868F 126
= #5
0 FFFFFFFF FFFFFFFF 43 #0B 0 EB375C0B EB8010A9 127
2FC51328
1 FFFFFFFF FFFFFFFF 44 1 EB375C0B D3C13CE5 128
0 FFFFFFFF FFFFFFFF 45 0 EB375C0B A343647D 129
1 FFFFFFFF FFFFFFFF 46 0 EB375C0B A343647D 130
0 FFFFFFFF FFFFFFFF 47 1 EB375C0B 4686C8FA 131
#C
1 FFFFFFFF FFFFFFFF 48 #1A 0 EB375C0B 8D0D91F4 132
0 FFFFFFFF FFFFFFFF 49 1 EB375C0B 1A1B23E8 133
1 FFFFFFFF FFFFFFFF 50 1 EB375C0B 343647D0 134
0 FFFFFFFF FFFFFFFF 51 1 EB375C0B 343647D0 135
1 FFFFFFFF FFFFFFFF 52 0 EB375C0B 686C8FA0 136
#F
0 FFFFFFFF FFFFFFFF 53 #1D 1 EB375C0B D0D91F40 137
1 FFFFFFFF FFFFFFFF 54 1 EB375C0B A1B23E80 138
0 FFFFFFFF FFFFFFFF 55 1 EB375C0B 43647D00 139
1 FFFFFFFF FFFFFFFF 56 0 EB375C0B 43647D00 140
0 FFFFFFFF FFFFFFFF 57 0 EB375C0B 8209E7B7 141
#2
1 FFFFFFFF FFFFFFFF 58 #14 1 EB375C0B 0413CF6E 142
0 FFFFFFFF FFFFFFFF 59 0 EB375C0B 0CE6836B 143
1 FFFFFFFF FFFFFFFF 60 1 EB375C0B 1D0C1B61 144
0 FFFFFFFF FFFFFFFF 61 1 EB375C0B 1D0C1B61 145
1 FFFFFFFF FFFFFFFF 62 0 EB375C0B 3A1836C2 146
0 FFFFFFFF FFFFFFFF 63 EOP #0D 1 EB375C0B 70F17033 147
1 FFFFFFFF FFFFFFFF 64 1 EB375C0B E1E2E066 148
0 FFFFFFFF FFFFFFFF 65 0 EB375C0B C704DD7B 149
0 FFFFFFFF FFFFFFFF 66
Sync1
0 FFFFFFFF FFFFFFFF 67
(#18) Note: CRC transmitter is calculated over data bytes
1 FFFFFFFF FFFFFFFF 68
only, in casu marked nibbles, and calculation results
1 FFFFFFFF FFFFFFFF 69
are available one (bit-) clock later
0 FFFFFFFF FFFFFFFF 70
0 FFFFFFFF FFFFFFFF 71
Sync1
0 FFFFFFFF FFFFFFFF 72
(#18) Note: CRC receiver is calculated over data bytes and
1 FFFFFFFF FFFFFFFF 73
S received CRC bytes, in casu marked nibbles, and
1 FFFFFFFF FFFFFFFF 74
O calculation results are available five (bit-) clocks later
0 FFFFFFFF FFFFFFFF 75
P
0 FFFFFFFF FFFFFFFF 76
Sync1
0 FFFFFFFF FFFFFFFF 77 Fixed residual
(#18)
1 FFFFFFFF FFFFFFFF 78
1 FFFFFFFF FFFFFFFF 79
1 FFFFFFFF FFFFFFFF 80
0 FFFFFFFF FFFFFFFF 81
Sync2
0 FFFFFFFF FFFFFFFF 82
(#11)
0 FFFFFFFF FFFFFFFF 83
1 FFFFFFFF FFFFFFFF 84
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 537
B. PD Message Sequence Examples
The following examples are intended to show how the Device Policy Manager might operate and the sequence of
Power Delivery messaging which will result. The aim of this section is to inform implementer’s how some of the
mechanisms detailed in this specification might be applied; it does not contain any Normative requirements.
All ports are assumed to be Enhanced SuperSpeed capable, with a default operating voltage of 5V and a unit load of
150mA. This 0.75W is assumed to be enough power to enable an externally powered device to maintain
communication over USB and is enough to allow such a device to enumerate but not operate until more power is
negotiated.
Although the Hubs in these illustrations support Power Delivery on both their UFPs and DFPs this is only one possible
Hub implementation.
HDDs are assumed to spin up immediately after they are Attached. This follows the typical operation of current
systems.
Ideal power transmission is assumed so that there are no power losses through a device; in practice these would need
to be taken into account when requesting power.
Laptop
AC
Display 1
Display 2
Configuration:
1. Laptop with an AC supply. AC supply provides sufficient power to charge the laptop and, in addition, to provide up to
60W downstream via its Enhanced SuperSpeed Port. According to the Source Power Rules described in Section 10.2
this means that the Port has a PD Power of 60W and so can supply: 5V@3A, 9V@3A, 15V@3A and 20V@3A.
2. Display 1 requires 30W to display and therefore a PD Power of 60W to operate itself plus Display 2 connected
downstream. Display 1 initially uses 15V@2A to operate itself, since this also allows operation with a Source of 30W
PD Power. On connection of Display 2, Display 1 will move to operation at 20V@3A to allow operation of the
additional 30W ganged display. According to the Sink Power Rules described in Section 10.3 this means that Display 1
Page 538 USB Power Delivery Specification Revision 3.0, Version 1.1
requires a Source with a PD Power of 60W to fully operate. Display 1 contains a Hub allowing Display 2 to be
connected to Display 1.
3. Display 2 requires 30W operate itself and does not support an additional display connected downstream. Display 1 uses
15V@2A to operate itself from a Source of 30W PD Power.
4. In USB suspend Display 1 and Display 2 will power down but can maintain USB connection using the PD power
provided.
Display 1
Display 2
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 539
Step Laptop Display 1 Display 2 Device Policy Power (W)
Manager
Page 540 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Laptop Display 1 Display 2 Device Policy Power (W)
Manager
USB Suspend
25 Laptop OS goes into Display 1 turns off but Display 2 turns off No changes in 60
suspend (S3), VBUS draws 50mW, 25mW but draws 25mW to Contract. This is a
remains on but USB to maintain PDUSB maintain USB/PD power reduction
bus is also suspended. Hub functions. The functions. purely based on
additional 25mW is the USB state.
used to supply the
Port used by Display 2.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 541
Step Laptop Display 1 Display 2 Device Policy Power (W)
Manager
Display 1
Display 2
AC
Configuration:
1. Tablet with no AC supply. Tablet is a USB host and can use 5V@0.2A (1W) during normal operation and up to
5V@2.4A (12W) in order to charge.
2. Display 1 requires 30W to operate and therefore a PD Power of 42W to operate itself and charge the tablet. Display 1
uses 15V@2A to operate itself, since this allows operation with a Source of 30W PD Power and then moves to operation
at 20V@2.1A to allow charging of the laptop. According to the Sink Power Rules described in Section 10.3 this means
that the Display 1 requires a Source with a PD Power of 42W to fully operate.
3. Display 2 has an AC supply connected. AC supply provides sufficient power to power Display 2 and, in addition, to
provide up to 60W PD Power upstream.
Page 542 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Tablet Display 1 Display 2 Device Policy Power (W)
Manager
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 543
Step Tablet Display 1 Display 2 Device Policy Power (W)
Manager
Page 544 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Tablet Display 1 Display 2 Device Policy Power (W)
Manager
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 545
Step Tablet Display 1 Display 2 Device Policy Power (W)
Manager
Tablet – Charge
Page 546 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Tablet Display 1 Display 2 Device Policy Power (W)
Manager
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 547
Step Tablet Display 1 Display 2 Device Policy Power (W)
Manager
Page 548 USB Power Delivery Specification Revision 3.0, Version 1.1
B.3 Giving back power
Figure B-3 Giving Back Power
Laptop
AC
Hub
Hard Hard
Disk Disk Phone
Drive 1 Drive 2
Configuration:
1. Laptop with an AC supply. AC supply provides sufficient power to charge the laptop and, in addition, to provide up to
60W PD Power downstream.
2. A Hub with 4 downstream ports which initially provides 1 unit load (150mA) per Port plus 1 unit load for its internal
functions.
3. Two Hard Disk Drives both of which require 5V@2A (10W) to spin up and 5V@1A (5W) while being accessed.
4. A phone which uses 5V@2A (10W) to charge and can give back all of this power when requested.
Connect Hub
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 549
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
Page 550 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 551
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
Page 552 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 553
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
34 Hub sends out a set Source Capabilities Hub offers Hard 11.5
of capabilities to received by Hard Disk Drive 2
Hard Disk Drive 2 Disk Drive 2 enough power to
including: enumerate.
5V@0.15A. The
Unconstrained
Power and USB
suspend bits are set.
Phone charge
Page 554 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
42 The Hub powers VBUS Source Capabilities The Hub offers the 12.5
and sends out a set received by the Phone 1 unit load
of capabilities to the Phone to enumerate.
Phone including:
5V@0.15A. The
Unconstrained
Power and USB
suspend bits are set.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 555
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
51 The Hub sends out a Source Capabilities The Hub now has 21.6
set of capabilities to received by the the power that the
the Phone including: Phone Phone needs and
5V@2A. The so sends out a new
Unconstrained set of Capabilities.
Power and USB
suspend bits are set.
Page 556 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 557
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
63 The Hub instructs Goto Min received Hub assess that 17.1
the Phone to Goto by the Phone there is additional
Minimum operation. power available
from the Phone
and so tells it to
Goto Min. In this
case it is
reallocating the
Phone’s Charging
power as the
Power Reserve for
the Hard Disk
Drives.
Page 558 USB Power Delivery Specification Revision 3.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
69 Hub sends out a set Source Capabilities The Hub now has 21.6
of capabilities to received by Hard the power that
Hard Disk Drive 2 Disk Drive 2 Hard Disk Drive 2
including: 5V@0.5A needs so it sends
and 20V@0.5A. The out new
Unconstrained Capabilities.
Power and USB
suspend bits are set.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 559
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
76 The Hub sends out a Source Capabilities The Hub now has 21.6
set of capabilities to received by the the power
the Phone including: Phone available to charge
5V@2A. The the phone so it
Unconstrained sends out new
Power bit is set and Capabilities
the USB suspend bit
is set.
Page 560 USB Power Delivery Specification Revision 3.0, Version 1.1
C. VDM Command Examples
C.1 Discover Identity Example
C.1.1 Discover Identity Command request
Table C-1 below shows the contents of the key fields in the Message Header and VDM header for an Initiator sending a
Discover Identity Command request.
Table C-2 Discover Identity Command response from Active Cable Responder Example
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 561
Bit(s) Field Value
VDM Header
B31…16 Standard or Vendor ID (SVID) 0xFF00 (PD SID)
B15 VDM Type 1 (Structured VDM)
B14…13 Structured VDM Version 01b (Version 2.0)
B12…11 Reserved 00b
B10…8 Object Position 000b
B7…6 Command Type 01b (Responder ACK)
B5 Reserved 0
B4…0 Command 2 (Discover Identity)
ID Header VDO
B31 Data Capable as USB Host 0 (not data capable as a Host)
B30 Data Capable as a USB Device 0 (not data capable as a Device)
B29…27 Product Type 100b (Active Cable)
B26 Modal Operation Supported 1 (supports Modes)
B25…16 Reserved. Shall be set to zero. 0
B15…0 16-bit unsigned integer. USB Vendor ID USB-IF assigned VID for this cable vendor
Cert Stat VDO
B31…0 32-bit unsigned integer USB-IF assigned XID for this cable
Product VDO
B31…16 16-bit unsigned integer. USB Product ID Product ID assigned by the cable vendor
B15…0 16-bit unsigned integer. bcdDevice Device version assigned by the cable vendor
Cable VDO returned for Product Type “Active Cable”
B31…28 HW Version Cable HW version number (vendor defined)
B27…24 Firmware Version Cable FW version number (vendor defined)
B23…21 VDO Version 00b (Version 1.0)
B20 Reserved 0
B19…18 USB Type-C plug to USB Type-C/Captive 10b (USB Type-C)
B17 Reserved 0
B16…13 Cable Latency 0001b ( <10ns (~1m))
B12…11 Cable Termination Type 11b (Both ends Active, VCONN required)
B10…9 Maximum VBUS Voltage 00b (20V)
B8…7 Reserved 0
B6…5 VBUS Current Handling Capability 01b (3A)
B4 VBUS through cable 1 (Yes)
B3 SOP” controller present? 1 (SOP” controller present)
B2…0 USB SuperSpeed Signaling Support 010b ([USB 3.1] Gen1 and Gen2)
Page 562 USB Power Delivery Specification Revision 3.0, Version 1.1
Table C-3 Discover Identity Command response from Hub Responder Example
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 563
C.2 Discover SVIDs Example
C.2.1 Discover SVIDs Command request
Table C-4 below shows the contents of the key fields in the Message Header and VDM header for an Initiator sending a
Discover SVIDs Command request.
Page 564 USB Power Delivery Specification Revision 3.0, Version 1.1
Bit(s) Field Value
B14…13 Structured VDM Version 01b (Version 2.0)
B12…11 Reserved 00b (Reserved)
B10…8 Object Position 000b
B7…6 Command Type 01b (Responder ACK)
B5 Reserved 0
B4…0 Command 2 (Discover SVIDs)
VDO 1
B31…16 SVID 0 SVID value
B15…0 SVID 1 SVID value
VDO 2
B31…16 SVID 2 0x0000
B15…0 SVID 3 0x0000
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 565
C.3 Discover Modes Example
C.3.1 Discover Modes Command request
Table C-6 shows the contents of the key fields in the Message Header and VDM header for an Initiator sending a
Discover Modes Command request. The Initiator of the Discover Modes Command sequence sends a Message Header
with the Number of Data Objects field set to 1 followed by a VDM Header with the Command Type (B7…6) set to zero
indicating the Command is from an Initiator and the Command (B4…0) is set to 3 indicating Mode discovery.
Page 566 USB Power Delivery Specification Revision 3.0, Version 1.1
Bit(s) Field Value
7…6 Specification Revision 10b (Revision 3.0)
5…4 Reserved 0
3…0 Message Type 1111b (Vendor Defined Message)
VDM Header
B31…16 Standard or Vendor ID (SVID) SVID for which Modes were requested
B15 VDM Type 1 (Structured VDM)
B14…13 Structured VDM Version 01b (Version 2.0)
B12…11 Reserved 00b
B10…8 Object Position 000b
B7…6 Command Type 01b (Responder ACK)
B5 Reserved 0
B4…0 Command 3 (Discover Modes)
Mode VDO
B31…0 Mode 1 Standard or Vendor defined Mode value
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 567
C.4 Enter Mode Example
C.4.1 Enter Mode Command request
The Initiator of the Enter Mode Command request sends a Message Header with the Number of Data Objects field set
to 1 followed by a VDM Header with the Message Source (B5) set to zero indicating the Command is from an Initiator
and the Command (B4…0) set to 4 to request the Responder to enter its mode of operation and sets the Object
Position field to the desired functional VDO based on its offset as received during Discovery.
Table C-8 shows the contents of the key fields in the Message Header and VDM Header for an Initiator sending an
Enter Mode Command request.
Page 568 USB Power Delivery Specification Revision 3.0, Version 1.1
Bit(s) Field Value
7…6 Specification Revision 10b (Revision 3.0)
5…4 Reserved 0
3…0 Message Type 1111b (Vendor Defined Message)
VDM Header
B31…16 Standard or Vendor ID (SVID) SVID for the Mode entered
B15 VDM Type 1 (Structured VDM)
B14…13 Structured VDM Version 01b (Version 2.0)
B12…11 Reserved 00b
B10…8 Object Position 001b (offset of the Mode entered)
B7…6 Command Type 01b (Responder ACK)
B5 Reserved 0
B4…0 Command 4 (Enter Mode)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 569
C.5 Exit Mode Example
C.5.1 Exit Mode Command request
The Initiator of the Exit Mode Command request sends a Message Header with the Number of Data Objects field set
to 1 followed by a VDM Header with the Message Source (B5) set to zero indicating the Command is from an Initiator
and the Command (B4…0) set to 5 to request the Responder to exit its Mode of operation.
Table C-11 shows the contents of the key fields in the Message Header and VDM header for an Initiator sending an
Exit Mode Command request.
Page 570 USB Power Delivery Specification Revision 3.0, Version 1.1
Bit(s) Field Value
7…6 Specification Revision 10b (Revision 3.0)
5…4 Reserved 0
3…0 Message Type 1111b (Vendor Defined Message)
VDM Header
B31…16 Standard or Vendor ID (SVID) SVID for the Mode exited
B15 VDM Type 1 (Structured VDM)
B14…13 Structured VDM Version 01b (Version 2.0)
B12…11 Reserved 00b
B10…8 Object Position 001b (offset of the Mode to be exited)
B7…6 Command Type 01b (Responder ACK)
B5 Reserved 0
B4…0 Command 5 (Exit Mode)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 571
C.6 Attention Example
C.6.1 Attention Command request
The Initiator of the Attention Command request sends a Message Header with the Number of Data Objects field set to
1 followed by a VDM Header with the Message Source (B5) set to zero indicating the Command is from an Initiator
and the Command (B4…0) set to 6 to request attention from the Responder.
Table C-11 shows the contents of the key fields in the Message Header and VDM header for an Initiator sending an
Attention Command request.
Table C-14 Attention Command request from Initiator with additional VDO Example
Page 572 USB Power Delivery Specification Revision 3.0, Version 1.1
Bit(s) Field Value
3…0 Message Type 1111b (Vendor Defined Message)
VDM Header
B31…16 Standard or Vendor ID (SVID) SVID for which attention is being requested
B15 VDM Type 1 (Structured VDM)
B14…13 Structured VDM Version 01b (Version 2.0)
B12…11 Reserved 00b
B10…8 Object Position 001b (offset of the Mode requesting attention)
B7…6 Command Type 000b (Initiator)
B5 Reserved 0
B4…0 Command 6 (Attention)
Including Optional Mode specific VDO
B31…0 Mode specific
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 573
D. BMC Receiver Design Examples
The BMC signal is DC-coupled so that the voltage level is affected by the ground IR drop. The DC offset of the BMC
signal at Power Source and Power Sink are in the opposite directions. When the VBUS current is increased from 0A, the
BMC signal waveform shifts downward at Power Sink and shifts upward at Power Source. This section introduces two
sample BMC receiver circuit implementations, which are immune from DC offset and high current load step. They can
be used in Power Source, Power Sink and inside cables.
D.1.2 Theory
This section describes the fundamental theory of Finite Difference Scheme to recover the received BMC signal with
the input and output signal waveforms of the circuit blocks shown in Figure D-1. To illustrate the robustness of the
implementation, the VBUS current load step rate is intentionally increased to 2A/µs at the sink load. In Figure D-2(a),
the red curve represents the VBUS current measured at the Power Sink when the current is increased at 9 µs from 0A to
5A and the blue dash curve represents the VBUS current measured at the USB Type-C connector of the power sink. In
this example, the peak current overshoot with larger load step rate is increased to 518 mA which exceeds iOvershoot.
Figure D-2(b) shows the total BMC noise at Power Sink, coupled from VBUS and D+/D- through the worst [USB Type-C
1.2] compliant cable, after the Rx bandwidth limiting filter with the time constant tRxFilter is applied. The noise can
be decomposed into 3 components. The first is the DC offset, IVBUS(t)*RGND, while IVBUS is the VBUS current and RGND is the
ground DC resistance of the cable. The offset is negative in Power Sink and positive at Power Source. The second
noise component is the inductive VBUS noise, M*d IVBUS(t)/dt, while M is the mutual inductance between the VBUS and CC
wires in the cable and d IVBUS(t)/dt is the load step rate. The third component is [USB 2.0] Full Speed SE0 coupling
noise which would normally occur randomly but was assumed to occur periodically in the simulation to account for
the crosstalk in any phase between the BMC and [USB 2.0] signals. In Figure D-3, the blue dash curve represents the
BMC signal when there is no VBUS current and the red solid curve represents the BMC signal affected by the VBUS
coupling noise shown in Figure D-2(b). The green solid curve is the sample [USB 2.0] noise, after the Rx bandwidth
limiting filter with the time constant tRxFilter is applied.
Page 574 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure D-2 BMC AC and DC noise from VBUS at Power Sink
Figure D-3 Sample BMC Signals (a) without [USB 2.0] SE0 Noise (b) with [USB 2.0] SE0 Noise
(a) (b)
The BMC signals shown in Figure D-3 are sampled every 50ns and the scaled derivative waveforms, Vcc(t) - Vcc(t -
50ns), without and with [USB 2.0] noise are shown in Figure D-4(a) and D-4(b), respectively. In Figure D-4(a), if there
is no [USB 2.0] noise, the derivative waveform just changes slightly before and after the VBUS current transition. That
means, the slope of the BMC waveform is not sensitive to the DC offset and is very useful to be used to design a robust
receiver against a large DC offset. However, the derivative waveforms with [USB 2.0] noise have large perturbation as
shown in Figure D-4(b).
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 575
Figure D-4 Scaled BMC Signal Derivative with 50ns Sampling Rate
(a) without [USB 2.0] Noise (b) with [USB 2.0] Noise
(a) (b)
To remove the high frequency content of the [USB 2.0] noise, Finite Difference technique with the proper time interval
is applied to the BMC waveform with [USB 2.0] noise in Figure D-3(b). Using Backward Finite Difference Calculator,
DVcc = Vcc (t) - Vcc(t-Dt), Figure D-5 shows the Finite Difference Output while Dt = 500ns. The larger the time interval
Dt is, the larger the peak-to-peak magnitude of the Finite Difference Output will be. However, the time interval is
bounded by the rise time of the BMC signal so that 300ns to 500ns is a good range of the time interval.
Figure D-5 BMC Signal and Finite Difference Output with Various Time Steps
Page 576 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure D-6 Output of Finite Difference in dash line and Edge Detector in solid line
The duty cycle of the output signal from the edge detector varies depending on the thresholds, V th, H and Vth, L, as well
as jitter and noise from silicon and channel. The techniques such as integrating receiver can be used to recover the
BMC signal.
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 577
D.2 Subtraction Scheme
D.2.1 Sample Circuitry
The sample Subtraction BMC receiver shown in Figure D-8 consists of the two Low Pass Filters (LPF1 and LPF2), a
Subtractor, an Edge Detector and a logic block for bit recognition. The time constant of the first and second LPF are
200ns and 300ns, respectively. The Subtractor subtracts the LPF1 output from the LPF2 output. The Edge Detector
controlled by two voltage thresholds, Vth, H and Vth, L to recover the data.
Figure D-9 (a) Output of LPF1 and LPF2 (b) Subtraction of LPF1 and LPF2 Output
(a) (b)
Page 578 USB Power Delivery Specification Revision 3.0, Version 1.1
Figure D-10 Output of the BMC LPF1 in blue dash curve and the Subtractor in red solid curve
(a)
(b)
USB Power Delivery Specification Revision 3.0, Version 1.1 Page 579