Usb - PD - R2 - 0 V1.1 - 20150507
Usb - PD - R2 - 0 V1.1 - 20150507
Contributors
Joseph Scanlon Advanced Micro Devices
Sridharan
Intel Corporation
Ranganathan
All product names are trademarks, registered trademarks, or service marks of their respective owners.
Copyright © 2010-2015 Hewlett-Packard Company, Intel Corporation, LSI Corporation, Microsoft Corporation,
Renesas, STMicroelectronics, and Texas Instruments
All rights reserved.
Contributors ................................................................................................................ 2
Revision History ..........................................................................................................11
Table of Contents .......................................................................................................12
List of Tables ...............................................................................................................22
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 .......................................................................................................................................................................... 37
1.5 Related Documents ............................................................................................................................................................... 38
1.6 Terms and Abbreviations ................................................................................................................................................... 38
1.7 Parameter Values................................................................................................................................................................... 43
2. Overview..............................................................................................................44
2.1 Introduction ............................................................................................................................................................................. 44
2.2 Section Overview ................................................................................................................................................................... 45
2.3 USB Power Delivery Capable Devices ........................................................................................................................... 46
2.4 SOP* Communication with Cable Plugs ........................................................................................................................ 47
2.4.1 SOP’ Communication....................................................................................................................................................... 47
2.4.2 SOP’’ Communication...................................................................................................................................................... 48
2.5 Operational Overview .......................................................................................................................................................... 49
2.5.1 DFP Operation ................................................................................................................................................................... 49
2.5.2 UFP Operation.................................................................................................................................................................... 52
2.5.3 Cable Plug Operation ...................................................................................................................................................... 55
2.6 Architectural Overview ....................................................................................................................................................... 56
2.6.1 Policy ..................................................................................................................................................................................... 58
1.1 Overview
This specification defines how USB Devices may negotiate for more current and/or higher or lower voltages over the
USB cable (using VBUS or CC wire as the communications channel) than are defined in the [USB 2.0], [USB 3.1],
[USBType-C 1.0] or [BC 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:
1) Works seamlessly with legacy USB Devices
2) Compatible with existing spec-compliant USB cables
3) Minimizes potential damage from non-compliant cables (e.g. ‘Y’ cables etc.)
4) 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.
[BC1.2] mechanisms for supplying higher power (not mandated by this specification).
[USBType-C 1.0] mechanisms for supplying higher power
Initial operating conditions remain the USB Default Operation as defined in [USB 2.0], [USB 3.1], [USBType-C 1.0] or
[BC 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], [USBType-C 1.0] and [BC 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], [USBType-C 1.0] and [BC 1.2] Platforms, Devices and cable
assemblies.
Normative information is provided to allow interoperability of components designed to this specification. Informative
information, when provided, may illustrate 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
Discarded is a keyword 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
Ignored is a keyword indicating Messages or Message fields which, when received, shall result in no action by the
receiver, aside from returning a GoodCRC Message to acknowledge Message receipt.
1.4.2.5 May
May is a keyword that indicates a choice with no implied preference.
1.4.2.6 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.8 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.9 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.10 Should
Should is a keyword indicating flexibility of choice with a preferred alternative. Equivalent to the phrase “it is
recommended that”.
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 to determine its characteristics in addition to other
Structured VDM Commands (Electronically Marked Cable see [USBType-C 1.0]).
Active Mode A Mode which has been entered and not exited.
Alternate Mode As defined in [USBType-C 1.0]. Equivalent to Mode in the PD Specification.
Alternate Mode Adapter A PDUSB Device which supports Alternate Modes as defined in [USBType-C 1.0]. Note that
(AMA) since an AMA is a PDUSB Device it has a single UFP that is only addresseable by SOP Packets.
Attached USB Power Delivery ports which are mechanically joined with USB cable.
Binary Frequency Shift BFSK uses a pair of discrete frequencies to transmit binary (0s and 1s) information. In the
Keying (BFSK) Power Delivery BFSK system:
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 VBUS or the CC wire as the communications channel. The mechanisms used, operate
independently of other USB methods used to negotiate power. Type-C connectors can support the CC wire as the
communications channel and in addition can support VBUS communication but not concurrently. Type-A and Type-B
connectors can only support VBUS communication.
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], [USBType-C 1.0] or [BC 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 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, in dead battery operation or when operating with a low power device). Except for the case of low power
devices, Implicit Contracts are temporary; Port Pairs are required to immediately negotiate an Explicit Contract. In
the low power device case the Implicit Contract persists for as long as the Port Pair remains attached and the Source
continues to supply power.
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], [USBType-C 1.0] or [BC 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 to exchange the power supply roles such that the DFP receives power and the UFP
supplies power. For a Type-C connector it is possible 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 [USBType-C 1.0] 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 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 may 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 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 (a Consumer).
o Optionally source power (a Consumer/Provider).
o Optionally communicate via USB.
o Communicate using SOP Packets.
DFPs that:
o Source power (a Provider).
o Optionally Sink power (a Provider/Consumer).
o Optionally communicate via USB.
o Communicate using SOP Packets
Optionally Communicate using SOP* Packets.
A Source that may 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).
A Sink that may be:
o Power Storage (e.g. a battery).
o Used to power internal functions.
o Used to power devices attached to other devices (e.g. a bus-powered Hub).
Figure 2-2 SOP’ Communication between Source and Cable Plug with no Explicit Contract or an Implicit Contract
Cable
Source Port Electronically Marked Cable Sink Port
Plug1
SOP’
signaling
SOP signaling
1
Cable Plug can be physically attached to either the Source or Sink Port.
Figure 2-3 SOP’ Communication between DFP and Cable Plug with PD Explicit Contract
Cable
DFP Electronically Marked Cable UFP
Plug1
SOP’
signaling
SOP signaling
1
Cable Plug can be physically attached to either the DFP or UFP.
Cable Cable
DFP Plug Electronically Marked Cable Plug UFP
(SOP’) (SOP’’)
SOP’
signaling
SOP’’
signaling
SOP signaling
Provider Consumer
Device Policy Device Policy
Manager Manager
Protocol Protocol
VBUS/CC
Additionally USB Power Delivery devices which can operate as USB devices may communicate over USB (see Figure
2-6). 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
VBUS/CC
Figure 2-7 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 Device: one or more Sources providing power to one or more ports.
For a Consumer or Dual-Role Device: a Sink consuming power.
A Cable Detection module (see Section4.4) that:
o Detects presence of VBUS for Sink Ports
o Identifies the type of PD cable attached
USB Power Delivery uses either Type-A and Type-B PD Cabling is defined in Section 3 or standard cabling
defined in [USB 2.0], [USB 3.1], and [USBType-C 1.0].
The Device Policy Manager talks to the communication stack, Source/Sink and the cable detection block in order to
manage the resources in the Provider or Consumer.
Figure 2-7 illustrates a Provider and a Consumer. Dual-Role Devices such as Provider/Consumers or
Consumer/Providers 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 cable
detection.
Provider Consumer
VBUS
CC
2.6.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.6.3.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.
3.1.1 Connectors
The USB PD specification defines the following connectors:
PD Standard-A plug and receptacle
PD Standard-B plug and receptacle
PD Micro-A plug
PD Micro-AB receptacle
PD Micro-B plug and receptacle
USB PD connectors are differentiated from their standard USB counterparts in their current carrying capability as well
as electrical markings or physical features, while remaining mechanically compatible. The USB PD Micro connectors
are mechanically identical to their non-PD counterparts. The USB PD Standard connector mechanical differences are
specified in this chapter.
PD Micro-A, PD Micro-AB, and PD Micro-B connectors shall be capable of carrying 3A current as specified in
Section 3.6.5.1.
PD Standard-A and PD Standard-B connectors shall be capable of carrying 5A current as specified in Section
3.6.5.2.
Refer to Section 3.4 for marking details. For details on the usage of the PD icon refer to Section 3.5.
Appendix D illustrates mating conditions of Standard-A connector combinations.
Table 3-1 lists the compatible plugs and receptacles and possible roles which may be supported in each case. Note
that for AB receptacles it is not required that if the Provider/Consumer role is supported with an A-plug inserted, that
the Consumer/Provider role is supported with a B-plug inserted or vice-versa. Standard, non-PD, receptacles used in
USB Power Delivery capable products are limited to a nominal vSafe5V at 1.5A as defined in [BC 1.2].
USB 3.1 PD Micro-AB USB 2.0 PD Micro-A, or USB 2.0 Micro-A Provider, Provider/Consumer
USB 3.1 PD Micro-A, USB 3.1 Micro-A
USB 2.0 PD Micro-B, USB 2.0 Micro-B, Consumer, Consumer/Provider
USB 3.1 PD Micro-B, USB 3.1 Micro-B
See Appendix D for mechanical details of different connector mating situations. See Section 3.6.1 and 3.6.2 for the
electrical performance requirements.
Figure 3-6 Insertion Detect Zone Mechanical Dimensions for the Standard-A Receptacle
The physical location of the pins in the connector is illustrated in Figure 3-9.
The physical location of the pins in the connector is illustrated in Figure 3-12. Note: pins 1 to 4 are referred to as the
USB 2.0 pins, while pins 5 to 9 are referred to as the Enhanced SuperSpeed pins.
The physical locations of the pins in the connector are illustrated in Figure 3-15 and Figure 3-14.
The physical locations of the pins in the connector are illustrated in Figure 3-16 and Figure 3-17.
Standard-A
Micro
VBUS
ID
< Ra_PLUG_ID
Ground
Figure 3-21 shows the schematic diagram of the Micro-A plug termination in a legacy cable assembly. Note the ID pin
is connected to ground through an impedance of Ra_PLUG_ID (as defined in the Micro-USB Cables and Connectors
specification v1.01 in [USB 2.0]) to indicate that the plug is an A plug. For PD to remain backward compatible, the low
Figure 3-22 Schematic of a Micro-A Plug Marker Indicating Low Power Capability
VBUS
cPlug
ID
rID
Ground
VBUS
ID
rID
Ground
VBUS
ID
cPlug
Ground
VBUS
cPlug
ID
Ground
3.6.6 Differential Crosstalk between VBUS and the D+/D- Pair (EIA-360-90)
The differential, near-end, and far-end, crosstalk between the D+/D- pair and VBUS shall be managed not to exceed the
limit shown in Figure 3-26.
Figure 3-26 Differential Near-End and Far-End Crosstalk Requirement between the D+/D- Pair and VBUS
-25
-27
X: 100
Y: -30
-29
Differential Crosstalk, dB
-31
-33
-35
-37 X: 15 X: 30
Y: -40 Y: -40
-39
-41
-43
-45
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
Freq, MHz
Source Sink
Source
VVBUS_DROP
Sink
VGND_DROP
As shown in Figure 3-27, voltage drop across the cable is measured independently on both the GND and the VBUS
connections. It is inclusive of the cable and connectors at both ends.
Note 1: For charging-only cables (e.g. cables without data lines), the maximum value of either VVBUS_DROP or
VGND_DROP may be exceeded; however VVBUS_DROP plus VGND_DROP shall not exceed vIRDrop_Cable.
DBSourceOffTimer timeout
Ensure Bit Stream off
P/C not powering VBUS Start DBDetectTimer
within tBitStreamOff of
(e.g. Dead Battery)
vSafe0V on VBUS
Apply vSafe0V to VBUS
Start DBSourceOffTimer
No No
No Wants to be powered?
DBDetectTimer
expired?
Yes
Yes
No vSafeDB present? Output vSafeDB on VBUS
Start BitStreamDetectTimer
Yes
No Yes
PD System Ready
for Capabilities?
Start
DeviceReadyTimer
Yes
No No
No
Bit Stream
Capabilities Message stopped?
Received
Yes
Yes
Operate as a Source
Operate as a Sink
Start
Std-A
Micro-AB
Std B
ID-pin to GND
< rID max
Yes
No
Page 100 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 4-3 Standard-A Plug PD Capabilities Flow
Standard-A
Plug
Insertion
Contact
Closed Open
PD Contact
Closed Open
Figure 4-3 illustrates how the detection contacts in the A receptacle shall be used. Insertion Detect is an optional
feature (see Section 3.1.5). When not present, the path through the Figure 4-3 follows the Insertion Detect ‘Closed’
arc.
100kΩ
62Ω VBUS
TX
Q1 1kΩ C2
Q2 Q3
ID
RX
(~10K input)
Q4 C1
33Ω
Ground
The example circuit shown in Figure 4-4 is used to detect the electronic markings on the ID pin indicating the type of
Micro connector.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 101
The TX is used to put a carrier signal on the VBUS line and the RX is used to detect whether a signal is present or not
(typically the Squelch is used for this purpose). Q1 - Q4 are used to create a series of circuits where the voltage output
(as measured by the RX) in each step is used to determine the configuration of the plug in accordance with to Table
4-2.
It is important that B-Plug type detection takes place when the line is idle and connected at the remote end. The ideal
measurement opportunity is after sending the GoodCRC Message in response to the Source_Capabilities Message and
before sending the Request Message as the line can be expected to be connected and idle because the sink will be the
next to transmit.
Note: If the far-end is not terminated or not terminated correctly (see Section 5.8.2.5) then the cable-type detection
described below may give erroneous results if signal levels at the cable input are reduced excessively by the
reflections of the cable.
In normal operation Q1 is conducting (turned ON) and Q2, Q3 and Q4 are not conducting (turned OFF).
In order to check the plug type using the circuit in Figure 4-4, a series of steps are performed; the result of each step is
recorded as a "0" or "1". The steps are:
1) Q1, Q3 and Q4 not conducting (turned OFF)
2) Q2 conducting (turned ON)
3) Check Squelch -> open - "1", else "0" -> bit 1
4) Q3 conducting (turned ON)
5) Check Squelch -> open - "1", else "0" -> bit 2
6) Q4 conducting (turned ON)
7) Check Squelch -> open - "1", else "0" -> bit 3
Table 4-2 summarizes the results.
Page 102 USB Power Delivery Specification Revision 2.0, Version 1.1
1. The Source detects a Low Power Device is attached (see Table 4-2).
2. The Port Pair then operates on an Implicit Contract:
a. The Source supplies a voltage in the range vLowPower and at least pLowPower nominal
b. The Sink shall be able to operate on a voltage on the range vLowPower and shall draw no more than
pLowPower nominal.
3. The Source may monitor the voltage and when it falls below vLowPower min reapply vSafe5V in an attempt to
continue operating. Alternatively, the Source may not monitor VBUS and when it falls to this level; both it and the
Low Power Device will likely fail for lack of power.
Exit from Low Power operation occurs when the Low Power plug is detached.
Sources that are not able to detect the Low Power plug shall treat the plug as a PD micro-A plug. These sources would
therefore supply vSafe5V constantly to a Low Power Device (Sink).
tDBDetect 10 15 s 4.1
tDBDischargeVbus 90 ms 4.1
tDeviceReady 60 90 s 4.1
tSendBitStream 95 ms 4.1
tWaitForPower 20 ms 4.1.1
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 103
5. Physical Layer
5.1 Physical Layer Overview
The Physical Layer (PHY Layer) defines the signaling technology for USB Power Delivery. This chapter defines the
electrical requirements and parameters of the PD Physical Layer required for interoperability between USB PD
devices.
Page 104 USB Power Delivery Specification Revision 2.0, Version 1.1
5.3 Symbol Encoding
Except for the Preamble, all communications on the line shall be encoded with a line code to ensure a reasonable level
of DC-balance and a suitable number of transitions. This encoding makes receiver design less complicated and allows
for more variations in the receiver design.
4b5b line code shall be used. This encodes 4-bit data to 5-bit symbols for transmission and decodes 5-bit symbols to
4-bit data for consumption by the receiver.
The 4b5b code provides data encoding along with special symbols. Special symbols are used to signal Hard Reset,
and delineate packet boundaries.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 105
5.4 Ordered Sets
Ordered sets shall be interpreted according to Figure 5-1.
An ordered set consists of 4 K-codes sent as shown in Figure 5-1.
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 at least three in the correct place, it may interpret it as
a valid ordered set (see Table 5-3).
Page 106 USB Power Delivery Specification Revision 2.0, Version 1.1
5.5 Transmitted Bit Ordering
This section describes the order of bits on the wire that shall be used when transmitting data of varying sizes. Table
5-4 shows the different data sizes that are possible.
Figure 5-2 shows the transmission order that shall be followed.
Unencoded Encoded
Byte 8-bits 10-bits
Word 16-bits 20- bits
DWord 32-bits 40-bits
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 107
5.6 Packet Format
The packet format shall consist of a Preamble, an SOP*, (see Section 5.6.1.2), packet data including the Message
Header, a CRC and an EOP (see Section 5.6.1.5). The packet format is shown in Figure 5-3 and indicates which parts of
the packet shall be 4b/5b encoded. Once 4b/5b encoded, the entire Packet shall be transmitted either using BFSK
over VBUS or BMC over CC. Note that when using BMC the Preamble is BMC encoded.
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 Provider, Provider/Consumer, Consumer or Consumer/Provider 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 DFPs and UFPs only (i.e. 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.
Page 108 USB Power Delivery Specification Revision 2.0, Version 1.1
5.6.1.2.2 Start of Packet Sequence Prime (SOP’)
The SOP’ ordered set is defined as: two Sync-1 K-codes followed by two Sync-3 K-codes (see Table 5-6).
A Cable Plug capable of SOP’ Communications shall only detect and communicate with packets starting with SOP’.
A DFP or Source 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. The DFP or Source shall co-ordinate SOP and SOP’
Communication so as to avoid collisions.
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 the DFP or Source 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 an Explicit Contract in place a
UFP shall not send SOP’ Packets and shall Discard all packets starting with SOP’. 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 DFP 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 DFP 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 DFP if a valid SOP* is not detected (see Table 5-3) then the whole
transmission shall be Discarded. A UFP shall not send SOP’’ Packets and shall Discard all Packets starting with SOP’’.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 109
Table 5-8 SOP’_Debug ordered set
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].
Figure 5-4 is an illustration of CRC-32 generation. The output bit ordering shall be as detailed in Table 5-10.
Page 110 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-4 CRC 32 generation
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 111
CRC-32 Result bit Position in CRC-32 Field
25 6
26 5
27 4
28 3
29 2
30 1
31 0
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.7.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.7.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 VBUS is not idle, wait for it to become idle (see Section 5.8.2.6.4 for the definition of BFSK idle and Section
5.8.3.6.1 for the definition of BMC idle)
3. Wait tInterFrameGap.
4. If VBUS 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.
Page 112 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-5 Line format of Hard Reset
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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 113
5.8 Physical Layer Signaling Schemes
5.8.1 Common Signaling Scheme Specifications
This section defines receiver and transmitter requirements which are common across different signaling schemes.
The transmitter shall have the same pBitRate for all packet types. The BIST Carrier Mode 2and 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 .
Page 114 USB Power Delivery Specification Revision 2.0, Version 1.1
5.8.1.4 Inter-Frame Gap
Figure 5-7 illustrates the inter-Frame gap timings.
tInterFrameGap
tEndDriveBFSK or tStartDrive
tEndDriveBMC
The transmitter shall drive the bus for no longer than tEndDriveBFSK or tEndDriveBMC (as appropriate) after
transmitting the final bit of the Frame. Detailed requirements for terminating the Frame and ceasing to drive the bus
are given separately for BFSK and BMC.
Before starting to transmit the next Frame’s Preamble the transmitter of the next Frame shall ensure that it waits for
tInterFrameGap after either:
1. Transmitting the previous frame, or
2. Receiving the previous frame, or
3. Observing an idle condition on VBUS or CC (see Section 5.7).
Note: the transmitter is also required to verify a bus idle condition immediately prior to starting transmission of the
next Frame.
The transmitter of the next Frame may vary the start of the Preamble by tStartDrive (see Section 5.8.2.5.2).
See also Section 5.8.3.1 for figures detailing the timings relating to transmitting, receiving and observing idle in
relating to Frames.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 115
5.8.2 Binary Frequency Shift Keyed (BFSK) Signaling Scheme
The Binary Frequency Shift Keyed (BFSK) Signaling Scheme over VBUS uses a carrier of fCarrier modulated with the
information to avoid the noise from the power supplies. Continuous Phase Binary Frequency Shift Keying (BFSK)
shall be used to encode bits for transmission on the channel. In this specification, BFSK shall be understood to mean
continuous phase BFSK. A signal of amplitude vTX shall be injected onto VBUS using a carrier frequency, fCarrier. The
following logic states shall be used:
Logic 0 is indicated by a frequency fCarrier - fDeviation.
Logic 1 is indicated by a frequency fCarrier + fDeviation.
The PHY Layer functions are shown in Figure 5-8, Figure 5-9, and Figure 5-10. The PHY Layer is expected to keep
power consumption low, especially when only the squelch detector is required to be active. In the active mode, where
any of the functions listed above may be executed, the PHY Layer Block power consumption should be minimized. In
the squelch mode, when only the squelch detector is required, the power consumption should be minimized.
Page 116 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-10 Channel Diagram (Cable Type Detection not shown)
TX TX
rTX rTX
RX RX
cAC-Coupling cAC-Coupling
zIsolation zIsolation
VBUS VBUS
...
Supply Lines Lines
GND GND
SHIELD SHIELD
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 117
Table 5-16 BFSK Common Normative Requirements
One example implementation of a transceiver isolation impedance using the parameters listed in Table 5-17 is a 1µH
inductor (see Appendix C).
Page 118 USB Power Delivery Specification Revision 2.0, Version 1.1
Name Description Min Nom Max Units Comment
vTX TX voltage injected on VBUS 100 150 200 mVRMS This is the voltage on
VBUS when terminated by
a nominal rTX through a
cable no longer than
250mm whose
characteristic impedance
matches the termination
impedance.
The transmitter shall have the same pCarrierFreq for all packet types. The BIST Carrier Mode 3 signal is an example
of a continuous signal without a Preamble. When checking pCarrierFreq any set of 1044 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 refCarrierFreq.
The transmitter shall have the same fDeviation for all packet types. The BIST Carrier Mode 0 and BIST Carrier Mode
1 signals are examples of continuous signals without a Preamble. When checking pDevFreq any set of 1044 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 for computing refDevFreq.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 119
When starting to transmit a frame the transmitter shall enable its carrier tStartDrive before the start of the first
preamble bit. It shall stop transmitting a carrier within tEndDriveBFSK of the end of the last transmitted symbol.
In order to manage the noise emitted from the cables, the emitted spectrum, on VBUS at the transmitting device
receptacle, shall comply with the mask in Figure 5-12 when VBUS is terminated by a nominal rTX at the connector
through a cable no longer than 250mm whose characteristic impedance matches the termination impedance. Normal
rules and regulations for noise emissions shall still be applicable.
Side lobes outside the coverage of Figure 5-12 shall be kept below the level as the figure shows.
Page 120 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-12 BFSK Transmit Spectral Mask, given in absolute terms relative to the maximum value of vTX
D E
0
-5
dB relative to 200mVrms
A
-10
-15
B C F G
-20
-25
H
-30
-35
1 2
10 10
frequency [MHz]
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 121
The receiver shall meet the nBER performance requirement in Table 5-20 when the voltage received on VBUS is within
the allowable range of vRX. Cables close to a quarter wavelength with characteristic impedance higher or lower than
rTX may attenuate or amplify the signal level, so the allowable range of vRX includes margin above and below the
allowable vTX. The ranges for vRX were selected to cover the variation seen in legacy cables.
Page 122 USB Power Delivery Specification Revision 2.0, Version 1.1
5.8.2.6.4 Definition of Idle
For the BFSK Signaling Scheme VBUS shall be declared idle when the signal level is less than vSquelchOperating. The
power supply noise allowed by Figure 7-8 and Figure 7-11 shall not cause the receiver to indicate the channel is busy.
LEGEND:
Preamble provided by the Physical layer,
not encoded with 4b5b
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 123
5.8.3 Biphase Mark Coding (BMC) Signaling Scheme
Biphase Mark Coding (BMC) is an alternative physical layer for carrying USB Power Delivery Messages. This encoding
assumes a dedicated DC connection, identified as the CC wire, which is used for sending PD Messages.
Biphase Mark Coding is a version of Manchester coding (see [IEC 60958-1]). In BMC, there is a transition at the start
of every bit time (UI) and there is a second transition in the middle of the UI when a 1 is transmitted. BMC is
effectively DC balanced, (each 1 is DC balanced and two successive zeroes are DC balanced, regardless of the number
of intervening 1’s). It has bounded disparity (limited to 1 bit over an arbitrary packet, so a very low DC level).
Figure 5-14 illustrates Biphase Mark Coding. This example shows the transition from a Preamble to the Sync-1 K-
codes of the SOP Ordered Set at the start of a Message. Note that other K-codes can occur after the Preamble for
Signaling such as Hard Reset and Cable Reset.
CRC
Page 124 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-16 BMC Receiver Block Diagram
CRC
The USB PD baseband signal shall be driven on the CC wire with a tri-state driver that shall cause a vSwing swing on
CC. The tri-state driver is slew rate limited (see min rise/fall time in Section 5.8.3.5) to limit coupling to D+/D- and to
other signal lines in the Type-C fully featured cables (see [USBType-C 1.0]). 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-17).
The transmitter shall terminate the final bit of the Frame by an edge (the “trailing edge”) to help ensure that the
receiver clocks the final bit. If the trailing edge results in the transmitter driving CC low (i.e. the final half-UI of the
frame is high), then the transmitter:
1. Shall continue to drive CC low for tHoldLowBMC.
2. Then shall continue to drive CC low for tEndDriveBMC measured from the trailing edge of the final bit of the
Frame.
3. Then shall release CC to high impedance.
Figure 5-18 illustrates the end of a BMC encoded Frame with an encoded zero for which the final bit of the Frame is
terminated by a high to low transition. Figure 5-19 illustrates the end of a BMC Encoded frame with an encoded one
for which the final bit of the Frame is terminated by a high to low 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.1.4).
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 125
Figure 5-18 Transmitting or Receiving BMC Encoded Frame Terminated by Zero with High-to-Low Last Transition
Figure 5-19 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-20 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-21 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. 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.1.4).
Figure 5-20 Transmitting or Receiving BMC Encoded Frame Terminated by Zero with Low to High Last Transition
Page 126 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-21 Transmitting or Receiving BMC Encoded Frame Terminated by One with Low to High Last Transition
Figure 5-22 illustrates the end of a BMC encoded Frame with an encoded zero for which the final bit of the Frame is
terminated by a high to low transition. The figure also illustrates the tTransitionWindow followed tInterFrameGap
timing requirement before the start of the next Frame, when the Port did not either transmit or receive the previous
Frame and is waiting for bus idle before transmission of the next Frame (see Section 5.8.1.4).
Figure 5-22 Waiting for idle after a BMC Encoded Frame Terminated by Zero with High-to-Low Last Transition
Note: There is no requirement to maintain a timing phase relationship between back-to-back packets.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 127
Figure 5-23 BMC Tx ‘ONE’ Mask
Page 128 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 5-21 BMC Tx Mask Definition, X Values
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 129
Cable Plugs shall meet the receiver requirements for both a Provider and a Consumer during any transmission using
the BMC Signaling Scheme.
The parameters used in the masks are specified to be appropriate to either edge triggered or oversampling receiver
implementations.
The masks are defined for ‘ONE’ and ‘ZERO’ separately as BMC enforces a transition at the midpoint of the unit
interval while a ‘ONE’ is transmitted.
The Rx masks are defined to bound the Rx noise after the Rx bandwidth limiting filter with the time constant tRxFilter
has been applied.
The boundaries of Rx outer mask, Y1Rx and Y5Rx, are specified according to vSwing max and accommodate half of
vNoiseActive from cable noise coupling and the signal offset vIRDropGNDC due to the ground offset when current is
flowing in the cable.
The vertical dimension of the Rx inner mask, Y4Rx - Y2Rx, for power neutral is derived by reducing the vertical
dimension of the Tx inner mask, Y7Tx - Y3Tx, at time location X3Tx by vNoiseActive to account for cable noise
coupling. The received signal is composed of a waveform compliant to the Tx mask plus vNoiseActive.
The vertical dimension of the Rx inner mask for sourcing power is derived by reducing the vertical dimension of the
Tx inner mask by vNoiseActive and vIRDropGNDC to account for both cable noise coupling and signal DC offset. The
received signal is composed of a waveform compliant to the Tx mask plus the maximum value of vNoiseActive plus
vIRDropGNDC where the vIRDropGNDC value transitions between the minimum and the maximum values as allowed
in this spec.
The vertical dimension of the Rx inner mask for sinking power is derived by reducing the vertical dimension of the Tx
inner mask by vNoiseActive max and vIRDropGNDC max for account for both cable noise coupling and signal DC
offset. The received signal is composed of a waveform compliant to the Tx mask plus the maximum value of
vNoiseActive plus vIRDropGNDC where the vIRDropGNDC value transitions between the minimum and the maximum
values as allowed in this spec.
The center line of the Rx inner mask, Y3Rx, is at half of the nominal vSwing for power neutral, and is shifted up by half
of vIRDropGNDC max for sourcing power and is shifted down by half of vIRDropGNDC max for sinking power.
The receiver sensitivity shall be set such that the receiver does not treat noise on an undriven signal path as an
incoming signal. Signal amplitudes below vNoiseIdle max shall be treated as noise when BMC is idle.
Page 130 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-25 BMC Rx ‘ONE’ Mask when Sourcing Power
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 131
Figure 5-27 BMC Rx ‘ONE’ Mask when Power neutral
Page 132 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-29 BMC Rx ‘ONE’ Mask when Sinking Power
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 133
Table 5-23 BMC Rx Mask Definition
Transmitter Load
Model Output
Cable Model Receiver
Rp Load Model
rOutput Connector La
cCablePlug
cCablePlug
cShunt ca ca Rd cReceiver
2 2
Page 134 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 5-32 Transmitter Load Model for BMC Tx from a Sink
Transmitter Load
Model Output
Cable Model Receiver
Rp Load Model
rOutput Connector La
cCablePlug
cCablePlug
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.3.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 is the modeled signal propagation delay through the cable, and zCable is the modeled cable impedance.
The modeled cable inductance is 640 nH for a cable with zCablemin = 32 Ω and tCableDelaymax = 20 nS.
The value of the modeled cable capacitance, Ca, (in pF) shall be calculated from the following formula:
tCableDelay𝑚𝑎𝑥
𝐶𝑎 =
zCable𝑚𝑖𝑛
The modeled cable capacitance is Ca = 625 pF for a cable with zCablemin = 32 Ω and tCableDelaymax = 20 nS.
Therefore, Ca/2 = 312.5 pF.
cCablePlug 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 135
Table 5-24 BMC Common Normative Requirements
cReceiver is the capacitance that a DFP or UFP shall present on the CC line when the DFP or UFP’s receiver is not
transmitting on the line. The transmitter may have more capacitance than cReceiver while driving the CC line, but
must meet the waveform mask requirements. Once transmission is complete, the transmitter shall disengage
capacitance in excess of cReceiver from the CC wire within tInterFrameGap.
Source output impedance zDriver is determined by the driver resistance and the shunt capacitance of the source and
is hence a frequency dependent term. zDriver impacts the noise ingression in the cable. It is specified such that the
noise at the Receiver is bounded.
zDriver is defined by the following equation:
Page 136 USB Power Delivery Specification Revision 2.0, Version 1.1
𝑟𝑂𝑢𝑡𝑝𝑢𝑡
𝑧𝐷𝑟𝑖𝑣𝑒𝑟 =
1 + 𝑠 ∗ 𝑟𝑂𝑢𝑡𝑝𝑢𝑡 ∗ 𝑐𝑆ℎ𝑢𝑛𝑡
rOutput
cShunt zDriver
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 137
5.8.3.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-34 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. 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.
Since sourcing VCONN is not mandated for UFPs, it is possible to have a configuration where there is no switch in the
UFP as outlined in Figure 5-35. In this configuration, the capacitance on the CC line contained within the UFP shall
still be within cReceiver except when transmitting.
Page 138 USB Power Delivery Specification Revision 2.0, Version 1.1
5.8.4 Interoperability with BFSK and BMC
In order to interoperate with systems supporting either BFSK or BMC, without requiring an adapter to convert
between the two Signaling Schemes, manufacturers may choose to support both BMC over the CC wire and BFSK over
VBUS on a Type-C connector. Products with Type-C connectors shall not support BFSK without supporting BMC. Note
that any system utilizing the Type-C connector can see BFSK signaling on VBUS when a suitable Type-A/B to Type-C
adapter is used.
When both BMC and BFSK Signaling Schemes are supported by a [USBType-C 1.0] Port:
A Source shall first attempt to become Connected with its Port Partner, using BMC; the attempt failing when the Source
enters the PE_SRC_Disabled state for a Source (see Section 8.3.3.2).
If the Source cannot become Connected using BMC then the Source may attempt to become Connected with its Port
Partner using BFSK over VBUS (re-entering the PE_SRC_Startup state for a Source see Section 8.3.3.2).
A Sink shall be able to receive, in the PE_SNK_Wait_for_Capabilities state (see Section 8.3.3.3), a
Source_Capabilities Message sent either over the CC wire using BMC or over VBUS using BFSK.
The Sink, after the SinkWaitCapTimer has timed out in the PE_SNK_Wait_for_Capabilities state (see Section 8.3.3.3),
shall issue Hard Reset Signaling over both BMC and BFSK.
Once the Port Partners are Connected they shall continue to use the same signaling scheme, either BMC or BFSK, until a
Detach or Hard Reset occurs.
If either Port Partner issues Hard Reset Signaling it shall issue Hard Reset Signaling over both BMC and BFSK.
A Source or DFP may communicate using BMC with a Cable Plug regardless of the Signaling Scheme currently being
used with its Port Partner.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 139
5.9 Built in Self-Test (BIST)
5.9.1 BIST PRBS Pattern
The generator polynomial for the PRBS-8 pattern shall be x8 + x6 + x5 + x4 + 1.
Figure 5-36 shows an example implementation of the PRBS-generator and checker.
The preloaded pattern shall be "all ones" i.e. all 8 bits in the shift register shall be set to "1". The pattern shall be
preloaded when the request to enter test mode is given or received.
In BIST Transmit or Receiver Test Frames are constructed as shown in Figure 5-37 with a test pattern as defined in
Section 5.9.1. Note that the Test Frame does not include an EOP. At least nBISTConfidence of these Test Frames shall
be sent/received without error (see Section 5.9.1.1).
SOP* (Start
Preamble(training for receiver) PRBS-data 1024 bits
Of Packet)
LEGEND:
Preamble, not encoded Provided by the Physical Provided by the Physical layer, not
with 4b5b layer, encoded with 4b5b encoded with 4b5b – 1024 bits
The PRBS data shall be continued without change in the PRBS generator between Test Frames. If the payloads from
all Test Frames were concatenated the resulting stream shall look like it was generated directly by the BIST generator.
The Test Frame shall have a fixed length and the only other signaling that shall be recognized in the test mode is the
Hard Reset Signaling, which shall be used to exit the test mode.
Since the payload length (nBISTPayload) and the BIST pattern cycle length are relatively prime, every pattern will
eventually appear in every position providing a test of all pattern related weaknesses.
Page 140 USB Power Delivery Specification Revision 2.0, Version 1.1
5.9.1.1 Test Frame Transmission
The number of bits transferred needed to demonstrate the required nBER (see Table 5-27) at a 99% confidence level
is 4.61x106 (see [Maxim37]). To reach this level of confidence, a minimum of nBISTConfidence Test Frames shall be
transmitted. To end the test sequence, Hard Reset Signaling shall be sent.
If errors are detected more bits shall be sent, see [Maxim37]). The number of Test Frames versus the number of
allowable error is given in Table 5-27.
N (number of allowable errors) Minimum number of Test Frames required for Confidence level 99%
0 4502
1 6483
2 8209
3 9810
4 11333
5 12802
6 14230
7 15625
8 16995
10 19673
15 26117
20 32328
30 44337
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 141
5.9.7 BIST Test Data
A BIST Test Data Message is used by the Tester to send various Tester generated test patterns to the UUT in order to
test the UUT’s receiver.
Figure 5-38 shows the Test Data Frame which shall be sent by the Tester to the UUT. The BIST Message, with a BIST
Test Data BIST Data Object consists of a Preamble, followed by SOP*, followed by the Message Header with a data
length of 7 Data Objects, followed a BIST Test Data BIST Data Object, followed by 6 Data Objects containing Test data,
followed by the CRC and then an EOP.
... CRC
EOP (End Of
Packet)
LEGEND:
Page 142 USB Power Delivery Specification Revision 2.0, Version 1.1
6. Protocol Layer
6.1 Overview
This chapter describes the requirements of the USB Power Delivery Specification’s protocol layer including:
Details of how Messages are constructed and used
Use of timers and timeout values
Use of Message and retry counters
Reset operation
Error handling
State behavior
Refer to Section 2.5 for an overview of the theory of operation of USB Power Delivery.
6.2 Messages
This specification defines two 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. There are three types of Data Messages:
o Those used to expose capabilities and negotiate power
o Those used for the BIST
o Those that are Vendor Defined
Figure 6-2 illustrates the Message as part of a Packet showing the parts are provided by the Protocol and PHY Layers.
Figure 6-2 USB Power Delivery Packet Format including Message Payload
Legend:
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 143
6.2.1.1 Message Header
Every Message shall start with a 16-bit Message Header, as shown in Figure 6-1 and defined in Table 6-1. The
Message Header contains basic information about the Message and the PD Port Capabilities. The Message Header may
be used standalone as a Control Message when the Number of Data Objects field is zero or as the first part of a Data
Message when the Number of Data Objects field is non-zero.
6.2.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: during BIST, when sending Test Frames, the MessageID is not incremented by the sender
and is Ignored by the receiver.
The MessageID field shall apply to all SOP* Packet types.
Page 144 USB Power Delivery Specification Revision 2.0, Version 1.1
Note that the GoodCRC Message sent by the initial Sink in response to the PS_RDY Message from the initial Source will
have its Port Power Role field set to Sink since this is initiated by the Protocol Layer. Subsequent Messages initiated
by the Policy Engine, such as the PS_RDY Message sent to indicate that VBUS is ready, will have the Port Power Role
field set to Source.
The Port Power Role field of a received Message shall not be verified by the receiver and no error recovery action
shall be taken if it is incorrect.
The Port Power Role field shall only be defined for SOP Packets.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 145
6.3 Control Message
A Message is defined as a Control Message when the Number of Data Objects field in the Message Header is set to 0.
The Control Message consists only of a Message Header and a CRC. The Protocol Layer originates the Control
Messages (i.e. Accept Message, Reject Message etc.).
The Control Message types are specified in the Message Header’s Message Type field (bits 3...0) and are summarized
in Table 6-2. The Sent by column indicates entities which may send the given Message (Source, Sink or Cable Plug);
entities not listed shall not issue the corresponding Message. The “Valid Start of Packet” column indicates the
Messages which shall only be issued in SOP Packets and the Messages which may be issued in SOP* Packets.
Page 146 USB Power Delivery Specification Revision 2.0, Version 1.1
The Source sends this Message as a means to harvest power in order to meet a request for power that it cannot
otherwise meet. The Device Policy Manager determines which Port or ports will receive the Message.
The Sink shall respond to a GotoMin Message by reducing its power consumption to less than or equal to the pre-
negotiated value (Minimum Operating Current) within tSnkNewPower time.
The Source sends a GotoMin Message as a shortcut in the power negotiation process since the Source and Sink have
already made a Contract with respect to the power to be returned. In essence, the Source does not have to advertise
its Capabilities and the Sink does not have to make a Request based on them. The Source simply sends the GotoMin
Message in place of the Accept Message normally sent during the power negotiation process (see step 19 in Figure
8-5). The power negotiation process then completes from this point in the normal manner with the Source sending a
PS_RDY Message once the power supply transition is complete. The steps of the GotoMin process are fully described
in Figure 8-6.
The Source shall return power to the Sink(s) it has ‘borrowed’ from using the GotoMin mechanism before it can
allocate any ‘new’ power to other devices.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 147
The system is not operating in USB Power Delivery Mode (i.e. in standard [USB 2.0], [USB 3.1], [USBType-C 1.0]
or [BC 1.2] operation).
A Provider or Provider/Consumer is operating as a Source at vSafe5V in the PE_SRC_Ready state (i.e. power
negotiation has already taken place see Section 8.3.3.2.6).
Page 148 USB Power Delivery Specification Revision 2.0, Version 1.1
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, Type-C error recovery actions, such as disconnect, as
defined in [USBType-C 1.0] will be necessary.
See Sections 0, 8.3.3.6.2.1 and 8.3.3.6.2.2 for further details.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 149
If a Wait Message is sent, the requester is informed that a VCONN Swap might be possible in the future but that no
immediate action shall be taken.
The DFP (Host), UFP (Device) roles and Source of VBUS shall remain unchanged as well as the Rp/Rd resistors on the CC
wire during the VCONN Swap process.
Note: VCONN shall be continually sourced during the VCONN Swap process in order to maintain power to the Cable
Plug(s) i.e. make before break.
Page 150 USB Power Delivery Specification Revision 2.0, Version 1.1
6.3.13 Soft Reset Message
A Soft_Reset Message may be initiated by either the Source or Sink to its Port Partner requesting a Soft Reset. The
Soft_Reset Message shall cause a Soft Reset of the connected Port Pair (see Section 6.7.1). If the Soft_Reset Message
fails a Hard Reset shall be initiated within tHardReset of the last CRCReceiveTimer expiring after nRetryCount
retries have been completed.
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.7).
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.
If, after a Power or Data Role Swap, a different Port starts to communicate with a given Cable Plug, the Cable Plug’s
Protocol Layer needs to be reset in order to ensure MessageID synchronization. If the Source or DFP 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 Source or DFP 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 151
Bits 3..0 Type Sent by Description Valid Start of
Packet
1111 Vendor_Defined Source, Sink or Cable See Section 6.4.4 SOP*
Plug
Header
Object1 Object2
No. of Data Objects = 2
In Figure 6-3, the Number of Data Objects field is 2: vSafe5V plus one other voltage.
Power Data Objects (PDO) 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.
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.
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 Section 3.1.1 and [USBType-C 1.0]). The Source shall limit its
offered capabilities to the maximum current supported by its receptacle and attached plug. A Sink with a Type-A or a
Type-B receptacle shall limit its requested capabilities to the maximum current supported by its receptacle and
attached plug. A Sink with a Type-C receptacle may 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-4).
Page 152 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 6-4 Power Data Object
Bit(s) Description
B31..30 Value Parameter
00b Fixed supply (Vmin = Vmax)
01b Battery
10b Variable Supply (non-battery)
11b Reserved
B29..0 Specific Power Capabilities are described by the PDOs in the following sections.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 153
A Sink shall evaluate every Source_Capabilities Message it receives and shall respond with a Request Message. If its
power consumption exceeds the Source’s capabilities it shall re-negotiate so as not to exceed the Source’s most
recently advertised capabilities.
Page 154 USB Power Delivery Specification Revision 2.0, Version 1.1
For a Source offering no capabilities, the Voltage (B19..10) shall be set to 5V and the Maximum Current shall be set to
0mA. This is used in cases such as a Dual-Role device which offers no capabilities in its default role or when external
power is required in order to offer power.
When a Source wants a Sink, consuming power from VBUS, to go to its lowest power state, the Voltage (B19..10) shall
be set to 5V and the Maximum Current shall be set to 0mA. This is used in cases where the Source wants the Sink to
draw pSnkSusp.
Bit(s) Description
B31..30 Fixed supply
B29 Dual-Role Power
B28 USB Suspend Supported
B27 Externally Powered
B26 USB Communications Capable
B25 Data Role Swap
B24..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 2.0, Version 1.1 Page 155
6.4.1.2.3.4 USB Communications Capable
The USB Communications Capable bit shall only be set for devices capable of communication over the USB data lines
(e.g. D+/- or SS Tx/Rx).
Page 156 USB Power Delivery Specification Revision 2.0, Version 1.1
The voltage fields shall define the range that output voltage shall fall within. This does not indicate the voltage that
will actually be supplied, except it shall fall within that range. The absolute voltage, including any voltage variation,
shall not fall below the Minimum Voltage and shall not exceed the Maximum Voltage.
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 2.0, Version 1.1 Page 157
Since all USB Consumers support vSafe5V, the required vSafe5V Fixed Supply Power Data Object is also used to
convey additional information that is returned in bits 29 through 20. All other Fixed Supply Power Data Objects shall
set bits 29...20 to zero.
For a Sink requiring no power from the Source, the Voltage (B19..10) shall be set to 5V and the Operational Current
shall be set to 0mA.
Bit(s) Description
B31..30 Fixed supply
B29 Dual-Role Power
B28 Higher Capability
B27 Externally Powered
B26 USB Communications Capable
B25 Data Role Swap
B24..20 Reserved – shall be set to zero.
B19..10 Voltage in 50mV units
B9..0 Operational Current in 10mA units
Page 158 USB Power Delivery Specification Revision 2.0, Version 1.1
including any voltage variation, shall not fall below the Minimum Voltage and shall not exceed the Maximum Voltage.
Required operating current is defined as the amount of current a given device needs to be functional. This value could
be the maximum current the Sink will ever require or could be sufficient to operate the Sink in one of its modes of
operation.
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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 159
Table 6-13 Fixed and Variable Request Data Object
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..20 Reserved - shall be set to zero.
B19..10 Operating current in 10mA units
B9..0 Maximum Operating Current 10mA units
Table 6-14 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
B25 USB Communications Capable
B24 No USB Suspend
B23..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..20 Reserved - shall be set to zero.
B19..10 Operating Power in 250mW units
B9..0 Maximum Operating Power in 250mW units
Page 160 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 6-16 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..20 Reserved - shall be set to zero.
B19..10 Operating Power in 250mW units
B9..0 Minimum Operating Power in 250mW units
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 161
Else if the GiveBack flag is set to one i.e. there is a Minimum Operating Current/Power field:
o The Minimum Operating Current/Power field shall contain a value less than the Operating
Current/Power field.
Page 162 USB Power Delivery Specification Revision 2.0, Version 1.1
GiveBack Flag is set) is used by the Device Policy Manager to calculate the amount of power which can be reclaimed
using a GotoMin Message. The Operating Current value shall be greater than the Minimum Operating Current value.
This field shall apply to the Fixed and Variable RDO.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 163
Figure 6-4 BIST Message
All ports shall be able to be a Unit Under Test (UUT) only when operating at vSafe5V. BIST Modes to be supported are
defined in Section 5.9.9. For each supported BIST Mode the following operations shall be implemented based on the
reception of the appropriate BIST Message BIST Data Object (see Table 6-17):
Process reception of a BIST Receiver Mode BIST Data Object
Process reception of a BIST Transmit Mode BIST Data Object
Generate a Returned BIST Counters BIST Data Object response within a BIST Message in response to each
received Test Frame.
Process reception of a BIST Carrier Mode 0 BIST Data Object that shall result in the generation of the appropriate
carrier signal
Process reception of a BIST Carrier Mode 1 BIST Data Object that shall result in the generation of the appropriate
carrier signal
Process reception of a BIST Carrier Mode 2 BIST Data Object that shall result in the generation of the appropriate
carrier signal.
Process reception of a BIST Carrier Mode 3 BIST Data Object that shall result in the generation of the appropriate
carrier signal.
Process reception of a BIST Eye Pattern 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.5.8.4).
It is anticipated that dedicated Testers will exist. Those testers may not be required to implement a local receiver test.
However, a Tester shall always be able to complete the operations required when a BIST Message with BIST Data
Object BIST Transmit Mode is sent by the Tester.
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 0 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-17.
Page 164 USB Power Delivery Specification Revision 2.0, Version 1.1
Bit(s) Value Parameter Description Reference
0010b Returned BIST Counters Returned error counters See Section 6.4.3.3
0011b BIST Carrier Mode 0 Requests transmitter to enter BIST Carrier See Section 6.4.3.4
Mode 0
0100b BIST Carrier Mode 1 Requests transmitter to enter BIST Carrier See Section 6.4.3.5
Mode 1
0101b BIST Carrier Mode 2 Request Transmitter to enter BIST Carrier See Section 6.4.3.6
Mode 2
0110b BIST Carrier Mode 3 Request Transmitter to enter BIST Carrier See Section 6.4.3.7
Mode 3
0111b BIST Eye Pattern Requests transmitter to enter BIST Eye See Section 6.4.3.8
Pattern.
1000b BIST Test Data Sends a Test Data Frame. See Section 6.4.3.9
1001b- All values not explicitly defined are
1111b Reserved and shall not be used.
B27..16 Reserved and shall be set to zero.
B15..0 16-bit unsigned integer When Request Type is Returned BIST See Section 6.4.3.3
Counters, this field shall contain the
contents of BISTErrorCounter otherwise it
shall be set to zero.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 165
The Tester shall preload its PRBS checker with the designated pattern and start counting errors. After receiving a
suitable number of Test Frames, the Tester shall freeze its error counter. The UUT shall be reset by sending Hard
Reset Signaling instead of a BIST Message.
Page 166 USB Power Delivery Specification Revision 2.0, Version 1.1
6.4.4 Vendor Defined Message
The Vendor_Defined Message (VDM) is provided to allow vendors to exchange information outside of that defined by
this specification.
A Vendor_Defined Message shall consist of at least one Vendor Data Object, the VDM Header, and may contain up to a
maximum of six additional VDM Objects (VDO).
To ensure vendor uniqueness of Vendor_Defined Messages, all Vendor_Defined Messages shall contain a valid USB
Standard or Vendor ID (SVID) allocated by USB-IF in the VDM Header.
Two types of Vendor_Defined Messages are defined: Structured VDMs and Unstructured VDMs. A Structured VDM
defines an extensible structure designed to support Modal Operation. An Unstructured VDM does not define any
structure and Messages may be created in any manner that the vendor chooses.
Vendor_Defined Messages shall not be used for direct power negotiation. They may however be used to alter Local
Policy, affecting what is offered or consumed via the normal PD Messages. For example a Vendor_Defined Message
could be used to enable the Source to offer additional power via a Source_Capabilities Message.
The Message format shall be as shown in Figure 6-5.
Header
VDM Header 0-6 VDOs
No. of Data Objects = 1-7
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-18. 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-19.
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) is in place in order to discover Cable capabilities
(see Section 8.3.3.10.11). 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 167
Table 6-18 illustrates the VDM Header bits.
Page 168 USB Power Delivery Specification Revision 2.0, Version 1.1
Bit(s) Field Description
B10..8 Object Position For the Enter Mode, Exit Mode and Attention
Commands:
000b = Reserved and shall not be used.
001b..110b = Index into the list of VDOs to
identify the desired Mode VDO
111b = Exit all Active Modes (equivalent of a
power on reset). Shall only be used with the
Exit Mode Command.
Commands 0..3, 7..15:
000b
001b..111b = Reserved and shall not be
used.
SVID Specific Commands (16..31) defined by the
SVID.
B7..6 Command Type 00b = Initiator
01b = Responder ACK
10b = Responder NAK
11b = Responder BUSY
B5 Reserved Shall be set to 0 and shall be Ignored
B4..0 Command 1 0 = Reserved, shall not be used
1 = Discover Identity
2 = Discover SVIDs
3 = Discover Modes
4 = Enter Mode
5 = Exit Mode
6 = Attention
7-15 = Reserved, shall not be used
16..31 = SVID Specific Commands
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-20 shows the Commands, which SVID to use with each Command and the only SOP* values which shall be
used.
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-21 lists specific SVID values referenced by this specification.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 169
Table 6-21 SVID Values
6.4.4.2.6 Command
This field is used to identify devices and manage their operational Modes. The commands defined in this specification
shall be used to manage Modes on the USB Type-C connector. There is a further range of Command values left for the
vendor to use to manage additional extensions.
A Structured VDM Command is deemed to be completed (and if applicable, the transition to the requested
functionality is made) when the GoodCRC Message has been successfully sent by the Initiator in reply to the
Responder’s response.
If the Structured VDM Command request is not recognized it shall be NAKed.
Page 170 USB Power Delivery Specification Revision 2.0, Version 1.1
6.4.4.3 Use of Commands
The VDM Header for a Structured VDM Message defines Commands used to retrieve a list of SVIDs the device
supports, to discover the Modes associated with each SVID, and to enter/exit the Modes. The Commands include:
Discover Identity
Discover SVIDs
Discover Modes
Enter Mode
Exit Mode
Attention
Additional Command space is also reserved for Standard and Vendor use and for future extensions.
The Command sequences use the terms Initiator and Responder to identify messaging roles the ports are taking on
relative to each other. This role is independent of the Port’s power capability (Provider, Consumer etc.) or its present
power role (Source or Sink). The Initiator is the Port sending the initial Command request and the Responder is the
Port replying with the Command response. See Section 6.4.4.3.6.
All Ports that support Modes shall support the Discover Identity, Discover SVIDs, the Discover Modes, the Enter Mode and
Exit Mode Commands.
Table 6-22 details the responses a Responder may issue to each Command request. Responses not listed for a given
Command shall not be sent by a Responder. A NAK response should be taken as an indication not to retry that
particular Command.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 171
The SVID in the Discover Identity Command shall be set to the PD SID (see Table 6-21) by both the Initiator and the
Responder for this Command.
The Discover Identity Command sent back by the Responder contains an ID Header VDO, a Cert Stat VDO, a Product
VDO and some Product Type VDOs which depend on the Product Type (see Figure 6-6). This specification defines the
following Product Type VDOs:
Cable VDO (see Section 6.4.4.3.1.9).
Alternate Mode Adapter VDO (see Section 6.4.4.3.1.10)
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 responder shall be Ignored.
Page 172 USB Power Delivery Specification Revision 2.0, Version 1.1
6.4.4.3.1.3 Data Capable as a USB Device
The Data Capable as a USB Device field is used to indicate whether or not the Port has a USB Device Capability.
6.4.4.3.1.6 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]).
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. For USB Devices or Hubs which
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 173
support USB communications the Product ID and bcdDevice fields shall be identical to the Product ID and bcdDevice
fields defined in the product’s USB Device Descriptor (see [USB 2.0] and [USB 3.1]).
Page 174 USB Power Delivery Specification Revision 2.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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 175
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.
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 DFP becomes corrupted the
Cable Plug will consider the Discover SVIDs Command ACK unsent and will send the same list of SVIDs again.
Figure 6-7 shows an example response to the Discover SVIDs Command request with two VDOs containing three SVIDs.
Figure 6-8 shows an example response with two VDOs containing four SVIDs followed by an empty VDO to terminate
the response. Figure 6-9 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)
Figure 6-9 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)
Page 176 USB Power Delivery Specification Revision 2.0, Version 1.1
6.4.4.3.3 Discover Modes
The Discover Modes Command is used by an Initiator (DFP) to determine the Modes a Responder (UFP or Cable Plug)
supports for a given ID. The Responder to the Discover Modes Command request shall return a Message Header with
the Number of Data Objects field set to a value of 1 to 7 (the actual value is the number of Mode objects plus one). If
the ID is a VID, the structure and content of the VDO is left to the Vendor. If the ID is a SID, the structure and content
of the VDO is defined by the relevant Standard. A Responder that does not support any Modes shall return a NAK.
Figure 6-10 shows an example of a Discover Modes Command response from a Responder which supports three Modes
for a given SVID.
Figure 6-10 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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 177
Figure 6-11 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-12 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
USB or USB Safe State
Enter Mod
e
GoodCRC
USB Safe State
NAK
GoodCRC
USB
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 disconnected
A Cable Reset (only exits the Cable Plug’s Active Modes)
Page 178 USB Power Delivery Specification Revision 2.0, Version 1.1
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).
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 (UFP) to notify the Responder (DFP) 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-10) 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 179
The Number of Data Objects field in the Message Header shall be set to 1 or 2. 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. No more than nAttentionCount Commands shall be sent during any given tAttentionAverage (max)
period. The spacing between successive Attention Commands shall be at least tAttentionSpacing except that a single
burst of no more than 2 Attention Commands with a spacing of at least tAttentionBurstSpacing may be sent during
any given tAttentionAverage (max) period.
DFP UFP
(Responder) (Initiator)
)
(Attention
Command
GoodCRC
Command Complete
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
Page 180 USB Power Delivery Specification Revision 2.0, Version 1.1
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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 181
Figure 6-16 Enter/Exit Mode Process
Discover SVID
s
s
List of SVID
For every DFP supported SVID
Discover Mod
es (SVID)
r SV ID
Modes fo
Enter Mode
ode)
ched to M
nder swit
ACK (Respo
Page 182 USB Power Delivery Specification Revision 2.0, Version 1.1
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 will need to be re-sent after the USB PD Message sequence has completed.
The overall Message flow is illustrated in Figure 6-17.
Initiator Responder
VDM (que
ry)
GoodCRC
nse)
VDM (respo
GoodCRC
Command Complete
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 183
6.5 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.5.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 (see Section 6.6.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.5.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.
6.5.3.1 SourceActivityTimer
A PD Source that is not using a Type-C connector is required to maintain a minimal level of bus traffic in order to
detect Sink detach. It does so by periodically sending a Ping Message during a connection to a PD Sink, whenever
there is no other Message traffic.
Page 184 USB Power Delivery Specification Revision 2.0, Version 1.1
In order to maintain bus activity the Source shall start its SourceActivityTimer as described in Section 8.3.3.2.
Whenever the timer expires, after tSourceActivity, the Source shall send a Ping Message. It shall then initialize and
restart the SourceActivityTimer ready for the next Ping Message. This ensures that Message activity is maintained in
cases where the time between normal Messages would exceed the Sink’s activity timeout. For example power supply
transitions may take longer than the activity timeout meaning that a Ping is sent prior to the PS_RDY Message.
The SourceActivityTimer shall be reset and restarted on entry to the PE_SRC_Ready state (see Section 8.3.3.2). This
occurs when:
The last bit of the GoodCRC Message EOP has been received by the Physical Layer (i.e. a Message has been
successfully sent prior to entering the PE_SRC_Ready state).
The last bit of any Message EOP has been received by the Physical Layer.
The SenderResponseTimer times out.
A failure to see a GoodCRC Message in response to a Ping Message within tReceive (after nRetryCount retries) is
indicative of a communications failure. This shall cause the Source to send a Soft_Reset Message, transmission of
which shall be completed within tSoftReset of the CRCReceiveTimer expiring (see Section 6.7.1).
See Section 8.3.3.6 for more details of when Ping Messages are transmitted.
6.5.3.2 SinkActivityTimer
The Sink shall support the SinkActivityTimer. Sinks shall observe an absence of a Ping, or other Messages within
tSinkActivity, as an indication of communications failure and as such shall issue Hard Reset Signaling in order to
return to USB Default Operation. Initialization and restarting of the SinkActivityTimer is described in Section
8.3.3.3.7. Any additional action taken is Device implementation specific. Sinks shall also use the absence of VBUS to
return to USB Default Operation unless this is part of an ongoing Power Role Swap sequence.
The SinkActivityTimer shall be re-initialized and re-started when the last bit of a Ping, or any other Message EOP, has
been received by the Physical Layer.
Note: to avoid triggering unnecessary Hard Resets the SinkActivityTimer shall not be run when the Sink is:
Using a [USBType-C 1.0] connector or
Using a Type-A operating in its default Source role or using a Type-B connector operating in its default Sink role,
at vSafe5V, in the PE_SNK_Ready state. This is because Ping Messages are optional in these cases, (see Section
6.3.5).
See Section 8.3.3.3 for more details of when the SinkActivityTimer is run.
6.5.4.1 SourceCapabilityTimer
Prior to a successful negotiation a Source shall use the SourceCapabilityTimer to periodically send out a
Source_Capabilities Message every tTypeCSendSourceCap for the Type-C connector and tSendSourceCap for all
other connectors while:
An A-plug 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 185
6.5.4.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 for the Type-C connector and tSinkWaitCap for all other
connectors the Sink shall issue Hard Reset Signaling in order to restart the sending of Source_Capabilities Messages
by the Source (see Section 6.6.4).
See Section 8.3.3.3 for more details of when the SinkWaitCapTimer are run.
6.5.4.3 tFirstSourceCap
After Port Partners are attached or after a Hard Reset or after a Power 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.5.5 SinkRequestTimer
The SinkRequestTimer is used to ensure that the time between Sink Request Messages, after a Wait Message has
been received from the Source, is a minimum of tSinkRequest (see Section 6.3.12).
The SinkRequestTimer shall be started when a Wait Message has been received and shall be stopped if any other
Message is received or during a Hard Reset.
The Sink shall wait at least tSinkRequest, after receiving a Wait Message, before issuing a new Request Message.
Whenever there is a SinkRequestTimer timeout the Sink may send a Request Message. It shall then re-initialize and
restart the SinkRequestTimer.
6.5.6.2 PSSourceOffTimer
The PSSourceOffTimer is used by the Policy Engine in Dual-Role Device that is currently acting as a Sink to timeout
on a PS_RDY Message during a Power Role Swap sequence. This condition leads to a Hard Reset and return to USB
Default Operation.
If a PR_Swap Message request has been sent by the Dual-Role Device currently acting as a Source the Sink can
respond with an Accept Message. When the last bit of the EOP of the GoodCRC Message corresponding to this Accept
Message is received by the Sink, then the PSSourceOffTimer shall be started.
If a PR_Swap Message request has been sent by the Dual-Role Device currently acting as a Sink the Source can
respond with an Accept Message. When the last bit of the EOP of this Accept Message is received by the Sink then the
PSSourceOffTimer shall be started.
The PSSourceOffTimer shall be stopped when:
The last bit of the EOP of the PS_RDY Message is received.
The PSSourceOffTimer relates to the time taken for the remote Dual-Role Device to stop supplying power (see also
Sections 7.3.9 and 7.3.10). The timer shall time out if a PS_RDY Message has not been received from the remote Dual-
Role Device within tPSSourceOff indicating this has occurred.
Page 186 USB Power Delivery Specification Revision 2.0, Version 1.1
6.5.6.3 PSSourceOnTimer
The PSSourceOnTimer is used by the Policy Engine in Dual-Role Device that has just stopped sourcing power and is
waiting to start sinking power to timeout on a PS_RDY Message during a Power Role Swap. This condition leads to a
Hard Reset and return to USB Default Operation.
The PSSourceOnTimer shall be started when:
The last bit of the EOP of the GoodCRC Message corresponding to the transmitted PS_RDY Message is received by
the Physical Layer
The PSSourceOnTimer shall be stopped when:
The last bit of the EOP of the PS_RDY Message is received by the Physical Layer
The PSSourceOnTimer relates to the time taken for the remote Dual-Role Device to start sourcing power (see also
Sections 7.3.9 and 7.3.10) and will time out if a PS_RDY Message indicating this has not been received within
tPSSourceOn.
6.5.7 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 Sink fails to receive a Source_Capabilities Message received 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 Sink shall issue additional Hard Resets up to nHardResetCount times (see Section 6.7.2).
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.7.2).
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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 187
6.5.8.2 tBISTResponse
tBISTResponse defines the maximum time which a UUT has to respond with a Test Frame when operating in BIST
Transmit Mode (see Section 6.4.3.2).
6.5.8.3 BISTStartTimer
The BISTStartTimer is used by the Tester to ensure that there is a delay of more than tBISTMode before sending the
first Test Frame after requesting BIST Receiver Mode. The BISTStartTimer is initialized and run once the BIST
Message containing the BIST Data Object has been sent i.e. a GoodCRC Message has been received. The first Test
Frame is not sent until after the BISTStartTimer has expired.
6.5.8.4 BISTContModeTimer
The BISTContModeTimer is used by a UUT to ensure that a Continuous BIST 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.5.8.5 BISTReceiveErrorTimer
The BISTReceiveErrorTimer shall be used by the sender’s Protocol Layer during BIST operation to detect when a
Test Frame has been lost and to trigger the transmission of the next Test Frame. Failure to receive an
acknowledgement of a Test Frame (BIST Message with a BIST Data Object of Returned BIST Counters) whether
caused by a bad CRC on the receiving end or by a garbled Message within tBISTReceive is detected when the
BISTReceiveErrorTimer expires.
The sender’s Protocol Layer response when a BISTReceiveErrorTimer expires shall be to continue operation.
The BISTReceiveErrorTimer shall be started when the nBISTPayload bit past the last bit of the SOP* has been
transmitted by the Physical Layer. The BISTReceiveErrorTimer shall be stopped when the last bit of the EOP
corresponding to the BIST Message with a BIST Data Object of Returned BIST Counters has been received by the
Physical Layer.
The Protocol Layer receiving a Test Frame shall respond with a BIST Message with a BIST Data Object of Returned
BIST Counters within tTransmit in order to ensure that the sender’s BISTReceiveErrorTimer does not expire. The
tTransmit shall be measured from when the last bit of the Test Frame has been received by the Physical Layer until
the first bit of the Preamble of the BIST Message has been transmitted by the Physical Layer.
6.5.9.2 SwapSourceStartTimer
The SwapSourceStartTimer shall be used by the new Source, after a Power Role Swap, to ensure that it does not send
Source_Capabilities Message before the new Sink is ready to receive the Source_Capabilities Message. The new
Source shall not send the Source_Capabilities Message earlier than tSwapSourceStart after the last bit of the EOP of
GoodCRC Message sent in response to the PS_RDY Message sent by the new Source indicating that its power supply is
ready. The Sink shall be ready to receive a Source_Capabilities Message tSwapSinkReady after having sent the last
bit of the EOP of GoodCRC Message sent in response to the PS_RDY Message sent by the new Source indicating that its
power supply is ready.
Page 188 USB Power Delivery Specification Revision 2.0, Version 1.1
6.5.10 Hard Reset Timers
6.5.10.1 HardResetCompleteTimer
The HardResetCompleteTimer is used by the Protocol Layer in the case where it has asked the PHY Layer to send
Hard Reset Signaling and the PHY Layer is unable to send the Signaling within a reasonable time due to a non-idle
channel. If the PHY Layer does not indicate that the Hard Reset Signaling has been sent within tHardResetComplete
of the Protocol Layer requesting transmission, then the Protocol Layer shall inform the Policy Engine that the Hard
Reset Signaling has been sent in order to ensure the power supply is reset in a timely fashion.
6.5.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 V BUS. The Source shall wait tPSHardReset after
sending Hard Reset Signaling before starting to transition the VBUS voltage to vSafe0V.
6.5.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.5.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.9.5).
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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 189
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.5.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.9.6).
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.5.11.4 tVDMBusy
The Initiator shall wait at least tVDMBusy, after receiving a BUSY Command response, before repeating the Structured
VDM request again.
6.5.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.
6.5.13 tCableMessage
The sender of an SOP’ or SOP’’ packet (either a DFP or Cable Plug), that is not a GoodCRC Message, shall wait
tCableMessage after the last bit of the EOP of the GoodCRC transmitted in response to the previous SOP’ or SOP’’
Packet before sending another SOP’ or SOP’’ Packet. This ensures that there is sufficient idle time between packets for
Page 190 USB Power Delivery Specification Revision 2.0, Version 1.1
a UFP to generate an asynchronous Message. Retransmission shall occur as described in Section 6.5.1 with
tCableMessage applying to the last transmitted SOP’ or SOP’’ Packet.
6.5.14 DiscoverIdentityTimer
The DiscoverIdentityTimer is used by a DFP 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 the DFP shall not send any further
SOP’/SOP’’ Messages.
tBISTContMode 30 60 ms 6.5.8.4
tBISTResponse 15 ms 6.5.8.2
tCableMessage 750 µs 6.5.13
tDiscoverIdentity 40 50 ms 6.5.13
tDRSwapHardReset 15 ms 6.5.10.3
tFirstSourceCap 250 ms
tHardReset 5 ms 6.3.13
tHardResetComplete 4 5 ms 6.5.10
tPSHardReset 25 35 ms 6.5.10.2
tPSSourceOff 750 920 ms 6.5.6.2
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 191
Parameter Value (min) Value (max) Units Section
tRetry 75 µs 6.5.1
tSenderResponse 24 30 ms 6.5.2
tSendSourceCap 1 2 s 6.5.4.1
tSourceActivity 40 50 ms 6.5.3.1
tSwapSinkReady 15 ms 6.5.9.2
tSwapSourceStart 20 ms 6.5.9.2
tVCONNSourceOff 25 ms 6.5.12
tVDMEnterMode 25 ms 6.5.11.2
tVDMExitMode 25 ms 6.5.11.3
tVDMReceiverResponse 15 ms 6.5.11.1
tVDMSenderResponse 24 30 ms 6.5.11.1
tVDMWaitModeEntry 40 50 ms 6.5.11.2
tVDMWaitModeExit 40 50 ms 6.5.11.3
Page 192 USB Power Delivery Specification Revision 2.0, Version 1.1
Timer Parameter Used By Section
SinkWaitCapTimer tSinkWaitCap, Policy Engine 6.5.4.2
tTypeCSinkWaitCap
SourceActivityTimer tSourceActivity Policy Engine 6.5.3.1
SourceCapabilityTimer tSendSourceCap, Policy Engine 6.5.4.1
tTypeCSendSourceCap
SwapRecoveryTimer tSwapRecover Policy Engine 6.5.9
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 193
6.6 Counters
6.6.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 DFP or Source 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.
Page 194 USB Power Delivery Specification Revision 2.0, Version 1.1
When the CapsCounter is implemented and the Source detects that a Sink is attached then after nCapsCount
Source_Capabilities Messages have been sent the Source shall decide that the Sink is non-responsive, stop sending
Source_Capabilities Messages and disable PD.
A Sink shall use the SinkWaitCapTimer to trigger the resending of Source_Capabilities Messages by a USB Power
Delivery capable Source which has previously stopped sending Source_Capabilities Messages. Any Sink which is
attached and does not detect a Source_Capabilities Message, shall issue Hard Reset Signaling when the
SinkWaitCapTimer times out in order to reset the Source. Resetting the Source shall also reset the CapsCounter and
restart the sending of Source_Capabilities Messages.
6.6.7 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 [USBType-C 1.0]
requirements for Mode entry should use an nBusyCount of 1.
6.6.8 nAttentionCount
Structured VDM Attention Commands are limited to a rate of no more than nAttentionCount Attention Commands
during any given tAttentionAverage period (see Section 6.4.4.3.6).
nBusyCount 5 6.6.7
nCapsCount 50 6.6.4
nDiscoverIdentityCount 20 6.6.6
nHardResetCount 2 6.6.3
nMessageIDCount 7 6.6.1
nRetryCount 3 6.6.2
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 195
Counter Max Section
CapsCounter nCapsCount 6.6.4
6.7 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.
Page 196 USB Power Delivery Specification Revision 2.0, Version 1.1
6.7.2.2 Type-A/B and Hard Reset
When there has been a Type-A/B Power Role Swap, a Hard Reset shall cause the Port Partners to return to their
default Source/Sink roles. A Type-A Port shall return to Source operation. A Type-B Port shall return to Sink
operation.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 197
6.8 State behavior
6.8.1 Introduction to state diagrams used in Chapter 6
The state diagrams defined in Section 6.8 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-18 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-19 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.)
Page 198 USB Power Delivery Specification Revision 2.0, Version 1.1
6.8.2.1 Protocol Layer Message Transmission
Figure 6-20 shows the state behavior for the Protocol Layer when transmitting a Message.
PRL_Tx_Discard_Message
PRL_Tx_PHY_Layer_Reset Actions on entry: Protocol Layer
If any message is currently awaiting message reception
Actions on entry: Discarding transmission discard and increment in PRL_Rx_Store_MessageID state
Reset PHY Layer complete MessageID Counter
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.5.1).
2This indication is sent by the PHY Layer when a message has been discarded due to VBUS or CC being busy, and
after VBUS or CC becomes idle again (see Section 5.7). The CRCReceiveTimer is not running in this case since no
message has been sent.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 199
When the PHY Layer reset is complete.
Page 200 USB Power Delivery Specification Revision 2.0, Version 1.1
6.8.2.1.7 PRL_Tx_Message_Sent state
On entry to the PRL_Tx_Message_Sent state the Protocol Layer shall increment the MessageIDCounter and inform
the Policy Engine that the Message has been sent.
The Protocol Layer shall transition to the PRL_Tx_Wait_for_Message_Request state when:
The Policy Engine has been informed that the Message has been sent.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 201
Figure 6-21 Protocol layer Message reception
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 V BUS or CC being busy, and
after VBUS or 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.
Page 202 USB Power Delivery Specification Revision 2.0, Version 1.1
6.8.2.2.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.8.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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 203
Figure 6-22 Hard/Cable Reset
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
1 If the HardResetTimer 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.
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 signalling is only recognised by a Cable Plug.
4 Cable Reset signaling cannot be generated by Cable Plugs
Page 204 USB Power Delivery Specification Revision 2.0, Version 1.1
6.8.2.3.1 PRL_HR_Reset_Layer state
The PRL_HR_Reset_Layer State defines the mode of operation of both the Protocol Layer transmission and reception
state machines during a Hard Reset or Cable Reset. During Hard Reset no USB Power Delivery protocol Messages are
sent or received; only Hard Reset Signaling is present after which the communication channel is assumed to have
been disabled by the Physical Layer until completion of the Hard Reset. During Cable Reset no USB Power Delivery
protocol Messages are sent to or received by the Cable Plug but other USB Power Delivery communication may
continue.
The Protocol Layer shall enter the PRL_HR_Reset_Layer state from any other state when:
A Hard Reset Request is received from the Policy Engine or
Hard Reset Signaling is received from the Physical Layer or
A Cable Reset Request is received from the Policy Engine or
Cable Reset Signaling is received from the Physical Layer
On entry to the PRL_HR_Reset_Layer state the Protocol Layer shall reset the MessageIDCounter. It shall also reset
the states of the Protocol Layer transmission and reception state machines to their starting points. The Protocol Layer
transmission state machine shall transition to the PRL_Tx_Wait_for_Message_Request state. The Protocol Layer
reception state machine shall transition to the PRL_Rx_Wait_for_PHY_Message state.
The Protocol Layer shall transition to the PRL_HR_Request_Hard_Reset state when:
The Protocol Layer’s reset is complete and
o The Hard Reset request has originated from the Policy Engine or
o The Cable Reset request has originated from the Policy Engine.
The Protocol Layer shall transition to the PRL_HR_Indicate_Hard_Reset state when:
The Protocol Layer’s reset is complete and
o The Hard Reset request has been passed up from the Physical Layer or
o A Cable Reset request has been passed up from the Physical Layer (Cable Plug only).
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 205
A Cable Reset complete indication is received from the PHY Layer or
The HardResetCompleteTimer times out.
6.8.2.3.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.
Page 206 USB Power Delivery Specification Revision 2.0, Version 1.1
6.8.3 BIST Operation
6.8.3.1 BIST Transmitter Test
Figure 6-23 shows the state behavior for the Protocol Layer when in BIST Transmitter Test mode and transmitting
BIST Transmitter Test Frames. The Protocol Layer changes from normal operation for Protocol Message Layer
Transmission (see Section 6.8.2.1) to BIST Transmitter Test Mode when directed by the Policy Engine.
PRL_Tx_Wait_For_
Message_Request
PRL_BIST_Tx_Init_PRBS
Actions on entry:
Request Physical Layer to Reset
BISTErrorCounter and preload PRBS
PRBS initialized
PRL_BIST_Tx_Wait_Test
_Frame_Request
Actions on entry:
Wait for Tx Test Frame request from
Policy Engine
PRL_BIST_Tx_Test_Frame
Actions on entry:
Request PHY to Construct Tx Test
Frame Error Counter response
received from PHY |
BISTReceiveErrorTimer
timeout
Tx Test Frame request
sent to PHY
PRL_BIST_Tx_PHY_Response
Actions on entry:
Wait for PHY response
Initialize and run
BISTReceiveErrorTimer
Actions on exit:
Inform Policy Engine of Error Count or
timeout
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 207
6.8.3.1.2 PRL_BIST_Tx_Wait_Test_Frame_Request state
On entry to the PRL_BIST_Tx_Wait_Test_Frame_Request state the Protocol Layer shall wait for a Test Frame from the
Policy Engine.
The Protocol Layer shall transition to the PRL_BIST_Tx_Test_Frame state when:
When a request to transmit a Test Frame is received from the Policy Engine.
Page 208 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 6-24 BIST Receiver Test
PRL_Rx_Wait_for_PHY_Message
PRL_BIST_Rx_Reset_Counter
Actions on entry:
Request Physical Layer to Reset
BISTErrorCounter and preload PRBS
BISTErrorCounter
reset
PRL_BIST_Rx_Test_Frame
Actions on entry:
Wait for test Frame from PHY
(Receiver Test)
BISTErrorCounter
received from PHY
PRL_BIST_Rx_Error_Count
Actions on entry:
Construct and send BIST error Policy Engine informed
count message to PHY
PRL_BIST_Rx_Inform_Policy
Actions on entry:
Inform Policy Engine Error Count
has been sent
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 209
6.8.3.2.3 PRL_BIST_Rx_Error_Count state
On entry to the PRL_BIST_Rx_Error_Count state the Protocol Layer shall construct a BIST Message with a BIST Data
Object of Returned BIST Counters using the BISTErrorCounter value returned by the Physical Layer. This BIST
Message shall be passed to the Physical Layer for transmission.
The Protocol Layer shall transition to the PRL_BIST_Rx_Inform_Policy state when:
The BIST Message has been sent.
Page 210 USB Power Delivery Specification Revision 2.0, Version 1.1
6.8.4 List of Protocol Layer States
Table 6-34 lists the states used by the various state machines.
PRL_Tx_Wait_for_Message_Request 6.8.2.1.2
PRL_Tx_Layer_Reset_for_Transmit 6.8.2.1.3
PRL_Tx_Construct_Message 6.8.2.1.4
PRL_Tx_Wait_for_PHY_Response 6.8.2.1.5
PRL_Tx_Match_MessageID 6.8.2.1.6
PRL_Tx_Message_Sent 6.8.2.1.7
PRL_Tx_Check_RetryCounter 6.8.2.1.8
PRL_Tx_Transmission_Error 6.8.2.1.9
PRL_Tx_Discard_Message 6.8.2.1.10
Protocol Layer Message Reception
PRL_Rx_Wait_for_PHY_Message 6.8.2.2.1
PRL_Rx_Layer_Reset_for_Receive 6.8.2.2.2
PRL_Rx_Send_GoodCRC 6.8.2.2.3
PRL_Rx_Check_MessageID 6.8.2.2.4
PRL_Rx_Store_MessageID 6.8.2.2.5
Hard Reset Operation
PRL_HR_Reset_Layer 6.8.2.3.1
PRL_HR_Indicate_Hard_Reset 6.8.2.3.2
PRL_HR_Request_Hard_Reset 6.8.2.3.3
PRL_HR_Wait_for_PHY_Hard_Reset_Complete 6.8.2.3.4
PRL_HR_PHY_Hard_Reset_Requested 6.8.2.3.5
PRL_HR_Wait_for_PE_Hard_Reset_Complete 6.8.2.3.6
PRL_HR_PE_Hard_Reset_Complete 6.8.2.3.7
BIST Transmitter Test
PRL_BIST_Tx_Init_PRBS 6.8.3.1.1
PRL_BIST_Tx_Wait_Test_Frame_Request 6.8.3.1.2
PRL_BIST_Tx_Test_Frame 6.8.3.1.3
PRL_BIST_Tx_PHY_Response 6.8.3.1.4
BIST Receiver Test
PRL_BIST_Rx_Reset_Counter 6.8.3.2.1
PRL_BIST_Rx_Test_Frame 6.8.3.2.2
PRL_BIST_Rx_Error_Count 6.8.3.2.3
PRL_BIST_Rx_Inform_Policy 6.8.3.2.4
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 211
6.9 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:
M – Mandatory; shall be supported by this Port/Cable Plug
CM – Conditionally Mandatory; 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 not by transmitted by this Port/Cable Plug and shall be Ignored by this Port/Cable Plug
when received.
RJ – Reject; this Port/Cable Plug shall return a Reject Message when received
NK – NAK; this Port/Cable Plug shall return Responder NAK to this Command when received
For the case of Conditional Mandatory a note has been added to indicate the condition. “CM/” 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.7.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.
Table 6-35 details Control Messages (except for those specific to the Type-C connector) that shall/should/shall not be
transmitted and received by a Source, Sink or Cable Plug. Requirements for Dual-Role Power Ports shall override any
requirements for Source-only or Sink-Only Ports.
Accept M M M
Reject M M NS
Ping CM2/O NS NS
PS_RDY M NS M NS
Get_Source_Cap O M M NS
Get_Sink_Cap M O M NS
PR_Swap NS NS M NS
Wait CM3/O NS O NS
Soft_Reset M M NS
Received Message
GoodCRC M M M
Page 212 USB Power Delivery Specification Revision 2.0, Version 1.1
Message Type Source Sink Dual-Role Cable Plug
Power
GotoMin NS R4 NS
Accept M M NS
Reject M M NS
Ping NS NS NS
PS_RDY NS M M NS
Get_Source_Cap M RJ M NS
Get_Sink_Cap RJ M M NS
PR_Swap RJ RJ M NS
Wait NS M M NS
Soft_Reset M M M
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 by BFSK systems.
Note 3: Shall be supported when transmission of GotoMin Messages is supported.
Note 4: Should be supported by Sinks which use PD power for charging.
Table 6-36 details Control Messages specific to the Type-C connector that shall/should/shall not be transmitted and
received by a DFP, UFP or Cable Plug. Requirements for Dual-Role Data Ports shall override any requirements for
DFP-only or UFP-Only Ports.
Wait O
VCONN_Swap R R NS
Received Message
DR_Swap RJ RJ M NS
Wait M
Table 6-37 details Data Messages (except for VDM Commands) that shall/should/shall not be transmitted and
received by a Source, Sink or Cable Plug. Requirements for Dual-Role Power Ports shall override any requirements for
Source-only or Sink-Only Ports.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 213
Message Type Source Sink Dual-Role Cable Plug
Power
BIST M2 M2 NS
Sink_Capabilities NS M M NS
Received Message
Source_Capabilities NS1 M M NS
Request M NS NS
BIST M2 M2 M2
Sink_Capabilities M NS M NS
Note 1: See Section 6.4.1.2.2.
Note 2: For details of which BIST Modes and Messages shall be supported see Sections 5.9.9 and
6.4.3.
Table 6-38 details VDM Commands that shall/should/shall not be transmitted and received by a DFP, UFP or Cable
Plug. Requirements for Modal Operation shall override any requirements for DFP or UFP Ports or Cable Plugs without
Modal Operation.
Attention O/NS NK NS
Note 1: Shall only be supported by a DFP.
Note 2: May be transmitted by a UFP/Source during discovery (see Sections 6.4.4.3.1 and
8.3.3.10.11).
Note 3: Shall only be supported by a UFP or Cable Plug.
Page 214 USB Power Delivery Specification Revision 2.0, Version 1.1
7. Power Supply
7.1 Source Requirements
7.1.1 Behavioral Aspects
The Source in a Provider or Provider/Consumer exhibits the following behaviors.
Shall be backward compatible with legacy VBUS ports.
Shall supply the default [USB 2.0], [USB 3.1], [USBType-C 1.0] or [BC 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], [USBType-C 1.0] or [BC 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.
The Source in a Consumer/Provider exhibits the following behaviors.
Shall support Dead Battery operation as defined in Section 4.1.1 for Type-A to Type-B connections and as defined
in [USBType-C 1.0] for Type-C to Type-C connections.
Shall return to Sink operation when Hard Reset Signaling is received.
Shall control VBUS voltage transitions as bound by undershoot, overshoot and transition time requirements.
SOURCE CABLE
TX
rTX
RX
zIsolation* VBUS
Power Ohmic VBUS
Supply Interconnect
Data Data
...
...
C1
C2 Lines Lines
GND GND
SHIELD SHIELD
Source Bulk Capacitance
* zIsolation is only required where BFSK over VBUS signaling is implemented otherwise this can be omitted
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 215
7.1.3 Types of Sources
Consistent with the Power Data Objects discussed in Section 6.4.1, the three possible power supply types that are
available as Sources in a USB Power Delivery System are:
Fixed Supply is used to expose well regulated fixed voltage power supplies. Sources shall support at least one
fixed power source capable of supplying vSafe5V. The output voltage of a Fixed Supply shall be specified in terms
of an absolute tolerance, vSrcNew, relative to the nominal value. Refer to Table 7-22 for the output voltage
tolerance specification.
Variable power supply (non-battery) is used to expose very poorly regulated Sources. The output voltage of a
Variable power supply (non-battery) shall be specified as vSrcNew, in terms of an absolute maximum output
voltage and an absolute minimum output voltage.
Battery Supply is used to expose batteries than can be connected directly as a Source to VBUS. The output voltage
of a Battery Supply shall be specified as vSrcNew, in terms of an absolute maximum output voltage and an
absolute minimum output voltage.
vSrcNew(max)
vSrcNew(typ)
vSrcNew(min)
vSrcValid(min)
Lower bound of valid Source range
≈
vSrcSlewPos
Starting voltage
≈
t0 tSrcSettle tSrcReady
When a positive voltage transition is started, the VBUS voltage may decrease at the onset of the transition. When the
starting voltage on VBUS for the transition is vSafe5V, the VBUS voltage shall not droop below vSafe5V min. When the
starting voltage on VBUS is any voltage other than vSafe5V, the VBUS voltage shall not droop below vSrcValid min.
Page 216 USB Power Delivery Specification Revision 2.0, Version 1.1
During normal operation, not including VBUS transitions or discharge, VBUS shall not go beyond the limits of vSrcValid
(or vSafe5V if VBUS is 5V). This limitation shall apply to static and transient VBUS behavior across all single port and
multi-port power configurations.
Starting voltage
vSrcSlewNeg
vSrcNew(max)
vSrcNew(typ)
vSrcNew(min)
vSrcValid(min)
Lower bound of valid Source range
≈
t0 tSrcSettle tSrcReady
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 217
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-4.
Old voltage
≈
vSafe5V(max)
vSafe0V(max)
0V
t0
vSrcNeg(max)
tSafe5V
tSrcRecover
tSafe0V tSrcTurnOn
The Source shall meet tVConnDischarge relative to the start of the voltage transition as shown in Figure 7-5. The
source shall meet tVconnOn relative to VBUS reaching vSafe5V. Note: tVConnDischarge, vVConnDischarge and
tVconnOn are defined in [USBType-C 1.0].
VConn
vVConnDischarge
0V
t0 tVConnOn
tVConnDischarge tSrcTurnOn
Page 218 USB Power Delivery Specification Revision 2.0, Version 1.1
7.1.7 Changing the Output Power Capability
Some USB Power Delivery negotiations will require the Source to adjust its output power capability without changing
the output voltage. In this case the Source shall be able to supply a higher or lower load current within tSrcReady.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 219
Figure 7-6 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 may 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 when compensation may be necessary is left to the discretion of the implementation.
Page 220 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 7-7). When the overload capability is exceeded, the Source is expected take whatever action is necessary to
prevent electrical or thermal damage to the Source. The Source may send a new Source_Capabilities Message with
the Fixed Supply PDO Peak Current bits set to 00b to prohibit overload operation even if an overload capability was
previously negotiated with the Sink.
vSrcNew(min)
vSrcPeak(min)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 221
Table 7-1 does not include any other regulations (such as FCC regulations) that govern signal emissions.
The VBUS-to-GND noise measurement shall be made at the connector. The noise measurement can be made using a
breakout board or equivalent method that does not introduce additional loading of the AC impedance of the VBUS wire.
Such measurement access methods will require calibration to ensure accurate measurement results.
Figure 7-8 Noise Spectral Mask, given in absolute terms relative to the maximum value of vTX
-5
A
-10
-15
dB relative to 200mVrms
-20
-25
D
-30
-35
B C
-40
1 2
10 10
frequency [MHz]
Page 222 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-1 Noise Spectral Mask Corners
5.5V
C/P area of operation during Dead Battery mode.
4V
3V
P/C area of operation during
Dead Battery mode.
C/P min current supplied @ 2V = 35 mA
2V
P/C may draw up to 1 mA while C/P output voltage is < 2V for UVLO
startup. This is in addition to the bulk capacitance charging current.
1V
0V
0 mA 30 mA 60 mA 90 mA
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 223
7.2 Sink Requirements
7.2.1 Behavioral Aspects
The Sink in a Consumer or Consumer/Provider exhibits the following behaviors.
Shall be backward compatible with legacy VBUS ports.
Shall draw the default [USB 2.0], [USB 3.1], [USBType-C 1.0] or [BC 1.2] VBUS current when the USB cable is
attached (USB Default Operation).
Shall draw the default [USB 2.0], [USB 3.1], [USBType-C 1.0] or [BC 1.2] VBUS current when a Contract does not
exist (USB Default Operation).
Shall return to the default [USB 2.0], [USB 3.1], [USBType-C 1.0] or [BC 1.2] VBUS when responding to a Hard Reset
(USB Default Operation).
Shall control VBUS in-rush current when increasing current consumption.
The Sink in a Provider/Consumer exhibits the following behaviors.
May support Dead Battery operation as defined in Section 4.1.1 for Type-A to Type-B connections and as defined
in [USBType-C 1.0] for Type-C to Type-C connections.
Shall return to Source operation when responding to a Hard Reset.
Shall control VBUS in-rush current when increasing and decreasing current consumption.
CABLE SINK
TX
rTX
RX
VBUS zIsolation*
VBUS Ohmic
Load
Interconnect
Data Data
...
...
Lines Lines C3 C4
GND GND
SHIELD SHIELD
Sink Bulk Capacitance
* zIsolation is only required where BFSK over VBUS signaling is implemented otherwise this can be omitted
Page 224 USB Power Delivery Specification Revision 2.0, Version 1.1
7.2.3 Sink Standby
The Sink shall transition to Sink Standby before a positive or negative voltage transition of V BUS. During Sink Standby
the Sink shall reduce its average power draw to pSnkStdby and its peak power draw shall not exceed
pSnkStdbyLimit. This allows the Source to manage the voltage transition as well as supply sufficient operating
current to the Sink to maintain PD operation during the transition. The Sink shall complete this transition to Sink
Standby within tSnkStdby after evaluating the Accept Message from the Source. The transition when returning to
Sink operation from Sink Standby shall be completed within tSnkNewPower. The pSnkStdby requirement shall only
apply if the Sink power draw is higher than this level.
Page 226 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 7-11 Noise Spectral Mask, given in absolute terms relative to the maximum value of vTX
-5
A
-10
-15
dB relative to 200mVrms
-20
-25
D
-30
-35
B C
-40
1 2
10 10
frequency [MHz]
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 227
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 must 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 205 ms. At this point,
with VBUS well below vSrcValid (min) an approximate 100 mW 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 VBUS has decayed to
vSafe5V or lower.
Page 228 USB Power Delivery Specification Revision 2.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
o New Source issues Hard Reset Signaling and New Sink Receives Hard Reset Signaling.
o New Source issues Hard Reset Signaling and New Sink Does Not Receive Hard Reset Signaling.
o New Sink issues Hard Reset Signaling and New Source Receives Hard Reset Signaling.
o New Sink issues Hard Reset Signaling and New Source Does Not Receive Hard Reset Signaling.
Dead Battery Operation.
No change in Current or Voltage.
The transition from [USB 2.0], [USB 3.1], [USBType-C 1.0] or [BC 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], [USBType-C 1.0] or [BC 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 2.0, Version 1.1 Page 229
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-12. The sequence that shall be followed is described in Table 7-3. The timing
parameters that shall be followed are listed in Table 7-22 and Table 7-23. 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 230 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-3 Sequence Description for Increasing the Current
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 231
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-13. The sequence that shall be followed is described in Table 7-4. The timing parameters
that shall be followed are listed in Table 7-22, Table 7-23 and Table 7-24. 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 232 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-4 Sequence Description for Increasing the Voltage
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 233
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-14. The sequence that shall be followed is described in Table 7-5. The
timing parameters that shall be followed are listed in Table 7-22, Table 7-23 and Table 7-24. Note in this figure, the
Sink has previously sent a Request Message to the Source.
Figure 7-14 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 234 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-5 Sequence Diagram for Increasing the Voltage and Current
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 235
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-15. The sequence that shall be followed is described in Table
7-6. The timing parameters that shall be followed are listed in Table 7-22, Table 7-23 and Table 7-24. Note in this
figure, the Sink has previously sent a Request Message to the Source.
Figure 7-15 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 236 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-6 Sequence Description for Increasing the Voltage and Decreasing the Current
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 237
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-16. The sequence that shall be followed is described in Table
7-7. The timing parameters that shall be followed are listed in Table 7-22, Table 7-23 and Table 7-24. Note in this
figure, the Sink has previously sent a Request Message to the Source.
Figure 7-16 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 238 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-7 Sequence Description for Decreasing the Voltage and Increasing the Current
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 239
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-17. The sequence that shall be followed is described in Table 7-8. The timing
parameters that shall be followed are listed in Table 7-22, Table 7-23 and Table 7-24. 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 240 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-8 Sequence Description for Decreasing the Current
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 241
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-18. The sequence that shall be followed is described in Table 7-9. The timing parameters
that shall be followed are listed in Table 7-22, Table 7-23 and Table 7-24. 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 242 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-9 Sequence Description for Decreasing the Voltage
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 243
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-19. The sequence that shall be followed is described in Table 7-10. The
timing parameters that shall be followed are listed in Table 7-22, Table 7-23 and Table 7-24. 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 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 244 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-10 Sequence Description for Decreasing the Voltage and the Current
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 245
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-20. The sequence that shall be followed is described in Table 7-11. The timing
parameters that shall be followed are listed in Table 7-23. Note in this figure, the Sink has previously sent a PR_Swap
Message to the Source.
Figure 7-20 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 246 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-11 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 Initial Sink. The Policy Engine waits Source. Policy Engine then evaluates the Accept Message.
tSrcTransition before telling the Device Policy
Manager to instruct the power supply to
transition to Swap Standby.
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 After tSrcTransition, the Policy Engine tells the
Device Policy Manager to instruct the power
supply to transition to Swap Standby (see Section
7.1.11). 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 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 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 2.0, Version 1.1 Page 247
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 248 USB Power Delivery Specification Revision 2.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-21. The sequence that shall be followed is described in Table 7-12. The timing
parameters that shall be followed are listed in Table 7-22. Note in this figure, the Sink has previously sent a PR_Swap
Message to the Source.
Figure 7-21 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 2.0, Version 1.1 Page 249
Table 7-12 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 sends the GoodCRC Message to the Protocol Layer receives the GoodCRC Message from the
Initial Sink. Policy Engine evaluates the Accept Initial Source. Policy Engine starts the PSSourceOffTimer.
Message, and then waits tSrcTransition before
telling the Device Policy Manager to instruct the
power supply to transition to Swap Standby.
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 After tSrcTransition, the Policy Engine tells the
Device Policy Manager to instruct the power
supply to transition to Swap Standby (see Section
7.1.11). 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 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 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 250 USB Power Delivery Specification Revision 2.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 2.0, Version 1.1 Page 251
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-22. The sequence that shall be followed is described in Table 7-13. The timing
parameters that shall be followed are listed in Table 7-22 and Table 7-13.
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 252 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-13 Sequence Description for a GotoMin Current Decrease
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 253
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-23. The sequence that shall be followed is described in Table 7-14. The timing
parameters that shall be applied are listed in Table 7-22 and Table 7-23.
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 254 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-14 Sequence Description for a Source Initiated Hard Reset
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 255
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-24. The sequence that shall be followed is described in Table 7-15. The timing
parameters that shall be followed are listed in Table 7-22 and Table 7-23.
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 256 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-15 Sequence Description for a Sink Initiated Hard Reset
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 257
7.3.14 Type-A/B Hard Reset after a Power Role Swap
The following sections indicate the transitions made when a Hard Reset occurs between Type-A Port acting as Sink
and a Type-B Port acting as Source.
7.3.14.1 Type-B New Source Initiates Hard Reset and Type-A New Sink Receives Hard Reset
Signaling
The interaction of the System Policy, Device Policy, and power supply that shall be followed during a Hard Reset
initiated by the Type-B new Source when the Type-A new Sink receives Hard Reset Signaling is shown in Figure 7-25.
The sequence that shall be followed is described in Table 7-16. The timing parameters that shall be followed are
listed in Table 7-22 and Table 7-23.
The default roles for Provider/Consumers and Consumer/Providers after a Hard Reset are as defined in Section 6.7.2.
Figure 7-25 Transition Diagram for Type-B New Source Initiated Hard Reset and Type-A New Sink Receives Hard Reset
Signaling
2b
tSwapRecover
New Sink Port Evaluate
Policy Engine Hard Reset
Port to Port
1
Send
Messaging
New Source Port
Policy Engine Hard Reset
Source Port
VOLD vSafe5V
Voltage
≈ Source
VBUS Voltage
New Source vSafe0V
Initial Source
Sink Port
≤ IOLD default draw
Current
≈ Sink
VBUS Current
New Sink iSafe0mA
Initial Sink
Page 258 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-16 Sequence Description for Type-B New Source Initiated Hard Reset and Type-A New Sink Receives Hard Reset
Signaling
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 259
7.3.14.2 Type-B New Source Initiates Hard Reset and Type-A New Sink Does Not Receive Hard
Reset Signaling
The interaction of the System Policy, Device Policy, and power supply that shall be followed during a Hard Reset
initiated by the Type-B new Source when the Type-A new Sink does not receive the Hard Reset Signaling is shown in
Figure 7-26. The sequence that shall be followed is described in Table 7-17. The timing parameters that shall be
followed are listed in Table 7-22 and Table 7-23.
The default roles for Provider/Consumers and Consumer/Providers after a Hard Reset are as defined in Section 6.7.2.
Figure 7-26 Transition Diagram for Type-B New Source Initiated Hard Reset and Type-A New Sink Does Not Receive Hard
Reset Signaling
2b
tSwapRecover
New Sink Port Send
≈
Source Port
VOLD vSafe5V
Voltage
≈ Source
New Source Initial Source
VBUS Voltage
vSafe0V
Sink Port
≤ IOLD default current
Current
≈ Sink
New Sink Initial Sink
VBUS Current
iSafe0mA
Page 260 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-17 Sequence Description for Type-B New Source Initiated Hard Reset and Type-A New Sink Does Not Receive Hard
Reset Signaling
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 261
7.3.14.3 Type-A New Sink Initiates Hard Reset and Type-B New Source Receives Hard Reset
Signaling
The interaction of the System Policy, Device Policy, and power supply that shall be followed during a Hard Reset
initiated by the Type-A new Sink when the Type-B new Source receives the Hard Reset Signaling is shown in Figure
7-27. The sequence that shall be followed is described in Table 7-18. The timing parameters that shall be followed
are listed in Table 7-22 and Table 7-23.
The default roles for Provider/Consumers and Consumer/Providers after a Hard Reset are as defined in Section 6.7.2.
Figure 7-27 Transition Diagram for Type-A New Sink Initiated Hard Reset and Type-B New Source Receives Hard Reset
Signaling
1
tSwapRecover
New Sink Port Send
Policy Engine Hard Reset
Port to Port
2
Evaluate Messaging
New Source Port
Policy Engine Hard Reset
Source Port
VOLD vSafe5V
Voltage
≈ Source
New Source Initial Source
VBUS Voltage
vSafe0V
Sink Port
≤ IOLD default current
Current
≈ Sink
New Sink Initial Sink
VBUS Current
iSafe0mA
Page 262 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-18 Sequence Description for Type-A New Sink Initiated Hard Reset and Type-B New Source Receives Hard Reset
Signaling
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 263
7.3.14.4 Type-A New Sink Initiates Hard Reset and Type-B New Source Does Not Receive Hard
Reset Signaling
The interaction of the System Policy, Device Policy, and power supply that shall be followed during a Hard Reset
initiated by the Type-A new Sink when the Type-B new Source does not receive the Hard Reset Signaling is shown in
Figure 7-28. The sequence that shall be followed is described in Table 7-19. The timing parameters that shall be
followed are listed in Table 7-22 and Table 7-23.
The default roles for Provider/Consumers and Consumer/Providers after a Hard Reset are as defined in Section 6.7.2.
Figure 7-28 Transition Diagram for Type-A New Sink Initiated Hard Reset and Type-B New Source Does Not Receive Hard
Reset Signaling
1
tSwapRecover
New Sink Port Send
Policy Engine Hard Reset
Port to Port
2
Send Messaging
New Source Port
≈
Source Port
VOLD vSafe5V
Voltage
≈ Source
New Source Initial Source
VBUS Voltage
vSafe0V
Sink Port
≤ IOLD default current
Current
≈ Sink
New Sink Initial Sink
VBUS Current
iSafe0mA
Page 264 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-19 Sequence Description for Type-A New Sink Initiated Hard Reset and Type-B New Source Does Not Receive Hard
Reset Signaling
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 265
7.3.15 Type-A to Type-B Dead Battery Operation
The interaction of the System Policy, Device Policy, and power supply that shall be followed during Type-A to Type-B
Dead Battery operation is shown in Figure 7-29. The sequence that shall be followed is described in Table 7-20. The
timing parameters that shall be followed are listed in Table 4-4, Table 7-22 and Table 7-23. The Initial Source Port is
not applying power to VBUS at the beginning of this sequence.
Figure 7-29 Type-A to Type-B Transition Diagram for Dead Battery Operation
tWaitForPower & 7 10
4
Ready for Capabilities
Sending Stopped Evaluate
Initial Source Port ... Bit Stream Bit Stream Capabilities
Policy Engine
2 BitStreamDetectTimer 5 DeviceReadyTimer 8 9
Port to Port
(running) (running) Messaging
Initial Sink Port Waiting for Detected Detected Send
Policy Engine Bit Stream Stream Start Stream End Capabilities
3
Initial Source Port Power Up as
Device Policy Mgr Sink
6a
Source Port
Source à Sink
Not Sourcing, ready to power up as Sink t2 Implied Sink New Sink
Interaction
Power Supply
1 6
Initial Sink Port Source Source
Device Policy Mgr vSafeDB vSafe5V
Sink Port
Sink à Source
Nothing attached t1 Implied Source t3 New Source
Interaction
Power Supply
Source Port
vSafe5V
Voltage
Source
≈
vSafeDB
VBUS Voltage
≈
vSafe0V
Sink Port
1 unit load
Current
Sink
VBUS Current
≈
Page 266 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-20 Sequence Description for Type-A to Type-B Dead Battery Operation
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 267
7.3.19 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-30. The sequence that shall be
followed is described in Table 7-21. The timing parameters that shall be followed are listed in Table 7-22 and Table
7-23.
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 268 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 7-21 Sequence Description for no change in Current or Voltage
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 269
7.4 Electrical Parameters
7.4.1 Source Electrical Parameters
The Source Electrical Parameters that shall be followed are specified in Table 7-22 and Table 4-4.
Page 270 USB Power Delivery Specification Revision 2.0, Version 1.1
Parameter Description MIN TYP MAX UNITS Reference
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 271
7.4.2 Sink Electrical Parameters
The Sink Electrical Parameters that shall be followed are specified in Table 7-23 and Table 4-4.
Page 272 USB Power Delivery Specification Revision 2.0, Version 1.1
Parameter Description MIN TYP MAX UNITS Reference
tNewSnkRevertToSrc Hard Reset during Power 90 ms
Role Swap timing parameter.
Figure 7-25,
Figure 7-26,
Figure 7-27,
Figure 7-28
Note 1: If more bypass capacitance than cSnkBulk max or cSnkBulkPd max is required in the device, then the device
must incorporate some form of VBUS surge current limiting as described in [USB 3.1] Section 11.4.4.1.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 273
7.4.3 Common Electrical Parameters
Electrical Parameters that are common to both the Source and the Sink that shall be followed are specified in Table
7-24.
Page 274 USB Power Delivery Specification Revision 2.0, Version 1.1
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.6.
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 Provider/Consumer or Consumer/Provider 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.
Page 276 USB Power Delivery Specification Revision 2.0, Version 1.1
The Device Policy Manager for a Consumer/Provider shall be able to detect and handle cases where back-powering is
required due to a Dead Battery on the Provider/Consumer side. It shall determine the absence of VBUS and the
Provider/Consumer’s ability to be back-powered from the Cable Detection module. It shall then initiate Provider role
and instruct the power supply to start providing default output power. Refer to Section 4.1.
The Device Policy Manager for a Provider/Consumer may be able to detect and handle cases where back-powering is
possible due to a Dead Battery. Where supported it shall determine the presence of VBUS from the Cable Detection
module. It shall then initiate Consumer role and instruct the power supply to start sinking default input power.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 277
8.2.5.1 Managing the Power Reserve
There may be some products where a Device has certain functionality at one power level and a greater functionality at
another, for example a Printer/Scanner that operates only as a printer with one power level and as a scanner if it can
get more power. Visibility of the linkage between power and functionality will only be apparent at the USB Host;
however the Device Policy Manager provides the mechanisms to manage the power requirements of such Devices.
Devices with the GiveBack flag cleared report Operating Current and Maximum Operating Current (see Section 6.4.2).
For many Devices the Operating Current and the Maximum Operating Current will be the same. Devices with highly
variable loads, such as Hard Disk Drives, may use Maximum Operating Current.
Devices with the GiveBack flag set report Operating Current and Minimum Operating Current (see Section 6.4.2). For
many Devices the Operating Current and the Minimum Operating Current will be the same. Devices that charge their
own batteries may use the Minimum Operating Current and GiveBack flag.
For example in the first case, a mobile device may require 500mA to operate, but would like an additional 1000mA to
charge its battery. The mobile device would set the GiveBack flag (see Section 6.4.2.2) and request 500mA in the
Minimum Operating Current field and 1500mA in the Operating Current field (provided that 1500mA was offered by
the Source) indicating to the Provider that it could temporarily recover the 1000mA to meet a transitory request.
In the second case, a Hard Disk Drive (HDD) may require 2A to spin-up, but only 1A to operate. At startup the HDD
would request Maximum Operating Current of 2A and an Operating Current of 2A. After the drive is spun-up and
ready to operate it would make another request of 1A for its Operating Current and 2A for its Maximum Operating
Current. Over time, its inactivity timers may expire and the HDD will go to a lower power state. When the HDD is next
accessed, it has to spin-up again. So it will request an Operating Current of 2A and a Maximum Operating Current of
2A. The Provider may have the extra power available immediately and can immediately honor the request. If the
power is not available, the Provider may have to harvest power, for example use the GotoMin Message to get back
some power before honoring the HDD’s request. In such a case, the HDD would be told to wait using a Wait Message.
The HDD continues to Request additional power until the request is finally granted.
It shall be the Device Policy Manager’s responsibility to allocate power and maintain a Power Reserve so as not to
over-subscribe its available power resource. A Device with multiple ports such as a Hub shall always be able to meet
the incremental demands of the Port requiring the highest incremental power from its Power Reserve.
The GotoMin Message is designed to allow the Provider to reclaim power from one Port to support a Consumer on
another Port that temporarily requires additional power to perform some short term operation. In the example
above, the mobile device that is being charged reduces its charge rate to allow a Device Policy Manager to meet a
request from an HDD for start-up current required to spin-up its platters. Any power which is available to be
reclaimed using a GotoMin Message may be counted as part of the Power Reserve.
A Consumer requesting power shall take into account its operational requirements when advertising its ability to
temporarily return power. For example, a mobile device with a Dead Battery that is being used to make a call should
make a request that retains sufficient power to continue the call. When the Consumer’s requirements change, it shall
re-negotiate its power to reflect the changed requirements.
Page 278 USB Power Delivery Specification Revision 2.0, Version 1.1
A more sophisticated Device with a user interface, e.g., a mobile device or monitor, should provide notification
through the user interface on the Device.
The Provider’s Device Policy Manager may cause a Message to be displayed to the user of the power capability
mismatch.
8.2.6.1 AC Supplies
The Externally Powered bit provided by Sources and Sinks (see Sections 6.4.1.2.3.3 and 6.4.1.3.1.3) refers to the
presence of an external AC power supply (i.e. from a wall wart) that is providing 100% of the power to a given device.
This means that the device is solely getting its power from this power supply and is not aggregating power from other,
non-external, power sources. Logically this 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 100% of its power from this power supply.
The Externally Powered 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:
If the “Externally Powered” 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 are “Externally Powered” for the power
advertised as a provider Port if 100% of the consumed power is 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 is
“Externally Powered” 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 may 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 the wall wart, to
the 1st display, by setting its “Externally Powered” bit. The 1st display will then in turn indicate the presence of an
external supply to the tablet by setting its “Externally Powered” bit. Power is transmitted through the system to all
devices, provided that there is sufficient power available from the external supply.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 279
Figure 8-1 Example of daisy chained displays
Tablet
Display 1
Display 2
AC
Page 280 USB Power Delivery Specification Revision 2.0, Version 1.1
Indication to Policy Engine when power supply transitions are complete.
Maintain a Power Reserve for devices operating on a Port at less than maximum power.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 281
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
A state diagram of the Policy Engine for a Source Port
A state diagram of the Policy Engine for a Sink Port
A state diagram of the Policy Engine for Dual-Role Ports
State diagrams for handling Soft Reset
State diagrams for handling Ping Messages
State diagrams for the Provider/Consumer and Consumer/Provider dead-battery/back-powering case
State diagrams for Hard Reset
State diagrams for BIST
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
Page 282 USB Power Delivery Specification Revision 2.0, Version 1.1
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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 283
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).
Page 284 USB Power Delivery Specification Revision 2.0, Version 1.1
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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 285
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.
Page 286 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-5 Successful Power Negotiation
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
Start SourceActivityTimer
(if ping required)
Table 8-4 below provides a detailed explanation of what happens at each labeled step in Figure 8-5 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 287
Table 8-4 Steps for a successful Power Negotiation
Page 288 USB Power Delivery Specification Revision 2.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. If the time taken to settle
exceeds tSourceActivity then a Ping Message will be
sent.
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 2.0, Version 1.1 Page 289
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 and starts the
SinkActivityTimer to monitor for Ping Message
timeout if required (see Section 6.3.5).
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. The
Policy Engine starts the SourceActivityTimer in
order to start pinging if required (see Section 6.3.5).
Page 290 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.4 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
Start SourceActivityTimer
(ping)
The table below provides a detailed explanation of what happens at each labeled step in Figure 8-6 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 291
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. If the time taken to
settle exceeds tSourceActivity then a Ping Message
will be sent (if required see Section 6.3.5).
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 and optionally
starts the SinkActivityTimer to monitor for Ping
Message timeout (if required see Section 6.3.5).
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. The
Policy Engine starts the SourceActivityTimer in
order to start pinging (if required see Section 6.3.5).
Page 292 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.5 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-6 below provides a detailed explanation of what happens at each labeled step in Figure 8-7 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 293
Step Reset Initiator Reset Responder
5 Protocol Layer does not check the MessageID in the
incoming Message and resets MessageIDCounter 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-synchronise their state machines.
Page 294 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.6 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 295
Figure 8-8 Source initiated Hard Reset
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
Start NoResponseTimer
Reset Power Sink
Reset Port Data Role to UFP
Turn off VCONN
Channel enabled
Channel enabled
Stop NoResponseTimer
Start SenderResponseTimer
Page 296 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-7 Steps for Source initiated Hard Reset
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 297
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. The Policy Engine
stops the NoResponseTimer.
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 298 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.6.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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 299
Table 8-8 Steps for Sink initiated Hard Reset
Page 300 USB Power Delivery Specification Revision 2.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. The Policy Engine
stops the NoResponseTimer.
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 2.0, Version 1.1 Page 301
8.3.2.6.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
Page 302 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-9 Steps for Source initiated Hard Reset – Sink long reset
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 303
Step Source Sink
12 The Protocol Layer informs the PHY Layer that the
Hard Reset is complete.
The PHY Layer enables the PHY Layer
communications channel for transmission and
reception.
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. The Policy Engine
stops the NoResponseTimer.
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.
Page 304 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.7 Type-A/B specific Message Sequence Diagrams
8.3.2.7.1.1 Type-A/B Source Initiated Power Role Swap without subsequent Power Negotiation
This is an example of a successful Power Role Swap operation initiated by a Type-A or Type-B Dual-Role Port which
initially, at the start of this Message sequence, is acting as a Source. It does not include any subsequent Power
Negotiation which is required in order to establish an Explicit Contract (see previous section for the details of a Power
Negotiation).
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 original Source sets its power output to vSafe0V and sends a PS_RDY Message when it gets there.
4. The new Source 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 305
Figure 8-11 Type-A or Type-B Successful Power Role Swap Sequence Initiated by the Source
Dual-Role Port (Initially Source Port) Dual-Role Port (initially Sink Port)
: Policy Engine : Protocol : PHY : PHY : Protocol : Policy Engine
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
Start CRCReceiveTimer 22: PS_RDY
Start PSSourceOnTimer
Reset CapsCounter
Reset Protocol Layer
Start SwapSourceStartTimer
Table 8-10 below provides a detailed explanation of what happens at each labeled step in Figure 8-11 above.
Page 306 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-10 Steps for a Successful Type-A or Type-B Source Initiated Power Role Swap Sequence
Step Dual-RolePort (initially Source Port) Dual-Role Port (initially Sink Port)
1 Port Power Role starts as Source. Policy Engine Port Power Role starts as Sink.
directs the Protocol Layer to send a PR_Swap
Message.
2 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
3 Physical Layer appends CRC and sends the PR_Swap Physical Layer receives the PR_Swap Message and
Message. checks the CRC to verify the Message.
4 Physical Layer removes the CRC and forwards the
PR_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 PR_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
PR_Swap Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine evaluates the PR_Swap Message sent by
the Source and decides that it is able and willing to do
the Power Role Swap. It 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 Accept
the CRC it calculated with the one sent to verify the Message.
Accept 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 PR_Swap
Message information to the Policy Engine that
consumes it.
14 The Policy Engine requests its power supply to stop
supplying power and stops the
SenderResponseTimer.
If the time taken to stop supplying power exceeds
tSourceActivity then a Ping Message will be sent(if
required see Section 6.3.5).
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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 307
Step Dual-RolePort (initially Source Port) Dual-Role 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, it 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 and starts switching the power
supply to vSafe5V Source operation.
If the time taken to start supplying power exceeds
tSourceActivity then a Ping Message will be sent (if
required see Section 6.3.5).
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.
31 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
Page 308 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Dual-RolePort (initially Source Port) Dual-Role Port (initially Sink 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.
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.
8.3.2.7.1.2 Type-A/B Sink Initiated Power Role Swap without subsequent Power Negotiation
This is an example of a successful Power Role Swap operation initiated by a Type-A or Type-B Dual-Role Port which
initially, at the start of this Message sequence, is acting as a Sink. It does not include any subsequent Power
Negotiation which is required in order to establish an Explicit Contract (see Section 8.3.2.3).
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 original Source sets its power output to vSafe0V and sends a PS_RDY Message when it gets there.
4) The new Source 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 2.0, Version 1.1 Page 309
Figure 8-12 Type-A or Type-B Successful Power Role Swap Sequence Initiated by the Sink
Dual-Role Port (Initially Sink Port) Dual-Role Port (Initially Source Port)
: Policy Engine : Protocol : PHY : PHY : Protocol : Policy Engine
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 310 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-11 Steps for a Successful Type-A or Type-B Sink Initiated Power Role Swap Sequence
Step Dual-Role Port (initially Sink Port) Dual-Role Port (initially Source Port)
1 Port Power Role starts as Sink. Policy Engine directs Port Power Role starts as Source.
the Protocol Layer to send a PR_Swap Message.
2 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
3 Physical Layer appends CRC and sends the PR_Swap Physical Layer receives the PR_Swap Message and
Message. checks the CRC to verify the Message.
4 Physical Layer removes the CRC and forwards the
PR_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 PR_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
PR_Swap Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine evaluates the PR_Swap Message sent by
the Sink and decides that it is able and willing to do
the Power Role Swap. It 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 Accept
the CRC it calculated with the one sent to verify the Message.
Accept 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 PR_Swap
Message information to the Policy Engine that
consumes it.
14 The Policy Engine stops the SenderResponseTimer,
starts the PSSourceOffTimer and tells the power
supply to stop sinking current.
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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 311
Step Dual-Role Port (initially Sink Port) Dual-Role Port (initially 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.
If the time taken to stop supplying power exceeds
tSourceActivity then a Ping Message will be sent (if
required see Section 6.3.5).
19 The Policy Engine determines its power supply is no
longer supplying VBUS, it 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 and starts switching the power
supply to vSafe5V Source operation.
If the time taken to start supplying power exceeds
tSourceActivity then a Ping Message will be sent (if
required see Section 6.3.5).
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.
Page 312 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Dual-Role Port (initially Sink Port) Dual-Role Port (initially Source 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. The Policy Engine stops the
PSSourceOnTimer, informs the power supply that it
can start consuming power and optionally starts the
SinkActivityTimer to check for Ping Messages.
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 2.0, Version 1.1 Page 313
8.3.2.7.1.3 Type-A/B Source Initiated Hard Reset (Power Role Swapped)
This is an example of a Hard Reset operation when initiated by a Type-A or Type-B Dual-Role device which is
currently Power Role Swapped and initially acting as a Source at the start of this Message sequence. In this example
both Dual-Role devices return to their original roles after the Hard Reset. Figure 8-13 shows the Messages as they
flow across the bus and within the devices to accomplish the Hard Reset.
Figure 8-13 Type-A or Type-B Source initiated Hard Reset (Power Role Swapped)
Provider/Consumer (initially Sink Port) Consumer/Provider (Initially Source Port)
Start NoResponseTimer
2: Send Hard Reset Tell Power Supply to stop sourcing power
3: Hard Reset
Reset MessageIDCounter, stored
Channel disabled copy of MessageID and
RetryCounter
4: Hard Reset received
Reset MessageIDCounter, stored Channel disabled Port Power Role -> Sink
copy of MessageID and
RetryCounter
Start NoResponseTimer
Tell Power Sink to stop
sinking current
Channel enabled
Stop NoResponseTimer
Start SenderResponseTimer
Page 314 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-12 Steps for Type-A or Type-B Source initiated Hard Reset (Power Role Swapped)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 315
Step Provider/Consumer (InitiallySink Port) Consumer/Provider (InitiallySource Port)
13 Physical Layer removes the CRC and forwards the
Source_Capabilities Message to the Protocol Layer.
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.
The Policy Engine stops the NoResponseTimer.
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 316 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.7.1.4 Type-A/B Sink Initiated Hard Reset (Power Role Swapped)
This is an example of a Hard Reset operation when initiated by a Type-A or Type-B Dual-Role device which is
currently Power Role Swapped and initially acting as a Sink at the start of this Message sequence. In this example
both Dual-Role devices return to their original roles after the Hard Reset. Figure 8-14 shows the Messages as they
flow across the bus and within the devices to accomplish the Hard Reset.
Figure 8-14 Type-A or Type-B Sink Initiated Hard Reset (Power Role Swapped)
Start NoResponseTimer
Tell Power Supply to stop sourcing power
Channel enabled
Stop NoResponseTimer
Start SenderResponseTimer
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 317
Table 8-13 Steps for Type-A or Type-B Sink initiated Hard Reset (Power Role Swapped)
Page 318 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Provider/Consumer (InitiallySink Port) Consumer/Provider (InitiallySource Port)
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.
The Policy Engine stops the NoResponseTimer.
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 2.0, Version 1.1 Page 319
8.3.2.8 Type-C specific Message Sequence Diagrams
8.3.2.8.1.1 Type-C Source Initiated Power Role Swap without subsequent Power Negotiation
This is an example of a successful Power Role Swap operation initiated by a [USBType-C 1.0] 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 previous
section for the details of a Power Negotiation).
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 original Source 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-15 shows the Messages as they flow across the bus and within the devices to accomplish the Power Role
Swap sequence.
Page 320 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-15 Type-C Successful Power Role Swap Sequence Initiated by the Source
Type-C Port (Initially Source Port) Type-C Port (initially Sink Port)
: Policy Engine : Protocol : PHY : PHY : Protocol : Policy Engine
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
Table 8-10 below provides a detailed explanation of what happens at each labeled step in Figure 8-15 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 321
Table 8-14 Steps for a Successful Type-C Source Initiated Power Role Swap Sequence
Step Type-C Port (initially Source Port) Type-C Port (initially Sink Port)
1 The [USBType-C 1.0] Port has Port Power Role set to The [USBType-C 1.0] Port has Port Power Role set to
Source and the Rp pull up on its CC wire. Sink with the Rd pull down on its CC wire.
Policy Engine directs the Protocol Layer to send a
PR_Swap Message.
2 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
3 Physical Layer appends CRC and sends the PR_Swap Physical Layer receives the PR_Swap Message and
Message. checks the CRC to verify the Message.
4 Physical Layer removes the CRC and forwards the
PR_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 PR_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
PR_Swap Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine evaluates the PR_Swap Message sent by
the Source and decides that it is able and willing to do
the Power Role Swap. It 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 Accept
the CRC it calculated with the one sent to verify the Message.
Accept 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 PR_Swap
Message information to the Policy Engine that
consumes it.
14 The Policy Engine requests its power supply to stop
supplying power and 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.
Page 322 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Type-C Port (initially Source Port) Type-C Port (initially Sink 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 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.
31 Physical Layer removes the CRC and forwards the
PS_RDY Message to the Protocol Layer.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 323
Step Type-C Port (initially Source Port) Type-C Port (initially Sink 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.
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 324 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.8.1.2 Type-C Sink Initiated Power Role Swap without subsequent Power Negotiation
This is an example of a successful Power Role Swap operation initiated by a [USBType-C 1.0] Port which initially, at
the start of this Message sequence, is acting as a Sink and therefore has Rd pulled down 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.3).
There are four distinct phases to the Power Role Swap negotiation:
5) A PR_Swap Message is sent.
6) An Accept Message in response to the PR_Swap Message.
7) The original Source sets its power output to vSafe0V, then asserts Rd and sends a PS_RDY Message when this
process is complete.
8) 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-16 shows the Messages as they flow across the bus and within the devices to accomplish the Power Role
Swap.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 325
Figure 8-16 Type-C Successful Power Role Swap Sequence Initiated by the Type-C Sink
Type-C Port (Initially Sink Port) Type-C Port (Initially Source Port)
: Policy Engine : Protocol : PHY : PHY : Protocol : Policy Engine
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 326 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-15 Steps for a Successful Type-C Sink Initiated Power Role Swap Sequence
Step Type-C Port (initially Sink Port) Type-C Port (initially Source Port)
1 The [USBType-C 1.0] Port has Port Power Role set to The [USBType-C 1.0] Port has Port Power Role set to
Sink with the Rd pull down on its CC wire. Source and the Rp pull up on its CC wire.
Policy Engine directs the Protocol Layer to send a
PR_Swap Message.
2 Protocol Layer creates the Message and passes to
Physical Layer. Starts CRCReceiveTimer.
3 Physical Layer appends CRC and sends the PR_Swap Physical Layer receives the PR_Swap Message and
Message. checks the CRC to verify the Message.
4 Physical Layer removes the CRC and forwards the
PR_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 PR_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
PR_Swap Message was successfully sent. Policy
Engine starts SenderResponseTimer.
10 Policy Engine evaluates the PR_Swap Message sent by
the Sink and decides that it is able and willing to do
the Power Role Swap. It 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 Accept
the CRC it calculated with the one sent to verify the Message.
Accept 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 PR_Swap
Message information to the Policy Engine that
consumes it.
14 The Policy Engine stops the SenderResponseTimer,
starts the PSSourceOffTimer and tells the power
supply to stop sinking current.
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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 327
Step Type-C Port (initially Sink Port) Type-C Port (initially 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 328 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Type-C Port (initially Sink Port) Type-C Port (initially 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 2.0, Version 1.1 Page 329
8.3.2.8.2 Type-C Data Role Swap
Figure 8-17 Type-C Data Role Swap, UFP operating as Sink initiates
Type-C DRP (Initially UFP Sink Port) Type-C DRP (initially DFP Source Port)
: Policy Engine : Protocol : PHY : PHY : Protocol : Policy Engine
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-10 below provides a detailed explanation of what happens at each labeled step in Figure 8-17 above.
Page 330 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-16 Steps for Type-C Data Role Swap, UFP operating as Sink initiates
Step Type-C DRP (initially UFP Sink Port) Type-C DRP (initially DFP Source Port)
1 Port starts as a UFP (Device) operating as a Sink with Port starts as a DFP (Host) operating as Source with Rp
Rd asserted and Port Data Role set to UFP. The asserted and Port Data Role set to DFP.
Policy Engine directs the Protocol Layer to send a
DR_Swap Message.
2 Protocol Layer creates the DR_Swap Message and
passes to Physical Layer. Starts CRCReceiveTimer.
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 Physical Layer appends a CRC and sends the Accept
checks 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 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 331
Step Type-C DRP (initially UFP Sink Port) Type-C DRP (initially 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.
Page 332 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.8.2.2 Type-C Data Role Swap, Initiated by UFP Operating as Source
This is an example of Message sequence between a Port Pair both utilizing the Type-C connector.
Figure 8-18 shows an example sequence between a [USBType-C 1.0] DRP, which is initially a UFP (Device) and a
Source (Rp asserted), and a [USBType-C 1.0] DRP 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).
Figure 8-18 Type-C Data Role Swap, UFP operating as Source initiates
Type-C DRP (Initially UFP Source Port) Type-C DRP (initially DFP Sink Port)
: Policy Engine : Protocol : PHY : PHY : Protocol : Policy Engine
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-17 below provides a detailed explanation of what happens at each labeled step in Figure 8-18 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 333
Table 8-17 Steps for Type-C Data Role Swap, UFP operating as Source initiates
Step Type-C DRP (initially UFP Source Port) Type-C DRP (initially DFP Sink Port)
1 Port starts as a UFP (Device) operating as Source with Port starts as a DFP (Host) operating as a Sink with R d
Rp asserted and Port Data Role set to UFP. The Policy asserted and Port Data Role set to DFP.
Engine directs the Protocol Layer to send a DR_Swap
Message.
2 Protocol Layer creates the DR_Swap Message and
passes to Physical Layer. Starts CRCReceiveTimer.
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.
Page 334 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Type-C DRP (initially UFP Source Port) Type-C DRP (initially DFP Sink 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), 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 2.0, Version 1.1 Page 335
8.3.2.8.2.3 Type-C Data Role Swap, Initiated by DFP Operating as Source
This is an example of Message sequence between a Port Pair both utilizing the Type-C connector.
Figure 8-19 shows an example sequence between a [USBType-C 1.0] DRP, which is initially a UFP (Device) and a Sink
(Rd asserted), and a [USBType-C 1.0] DRP 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).
Figure 8-19 Type-C Data Role Swap, DFP operating as Source initiates
Type-C DRP (Initially UFP Sink Port) Type-C DRP (initially DFP Source Port)
: Policy Engine : Protocol : PHY : PHY : Protocol : Policy Engine
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-18 below provides a detailed explanation of what happens at each labeled step in Figure 8-19 above.
Page 336 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-18 Steps for Type-C Data Role Swap, DFP operating as Source initiates
Step Type-C DRP (initially UFP Sink Port) Type-C DRP (initially DFP Source Port)
1 Port starts as a UFP (Device) operating as a Sink with Port starts as a DFP (Host) operating as Source with
Rd asserted and Port Data Role set to UFP. Rp asserted and Port Data Role set to DFP. The Policy
Engine directs the Protocol Layer to send a DR_Swap
Message.
2 Protocol Layer creates the DR_Swap Message and
passes to Physical Layer. Starts CRCReceiveTimer.
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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 337
Step Type-C DRP (initially UFP Sink Port) Type-C DRP (initially DFP Source Port)
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.
Page 338 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.8.2.4 Type-C Data Role Swap, Initiated by DFP Operating as Sink
This is an example of Message sequence between a Port Pair both utilizing the Type-C connector.
Figure 8-20 shows an example sequence between a [USBType-C 1.0] DRP, which is initially a UFP (Device) and a
Source (Rp asserted), and a [USBType-C 1.0] DRP 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).
Figure 8-20 Type-C Data Role Swap, DFP operating as Sink initiates
Type-C DRP (Initially UFP Source Port) Type-C DRP (initially DFP Sink Port)
: Policy Engine : Protocol : PHY : PHY : Protocol : Policy Engine
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-19 below provides a detailed explanation of what happens at each labeled step in Figure 8-20 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 339
Table 8-19 Steps for Type-C Data Role Swap, DFP operating as Sink initiates
Step Type-C DRP (initially UFP Source Port) Type-C DRP (initially DFP Sink Port)
1 Port starts as a UFP (Device) operating as Source with Port starts as a DFP (Host) operating as a Sink with R d
Rp asserted and Port Data Role set to UFP. asserted and Port Data Role set to DFP. The Policy
Engine directs the Protocol Layer to send a DR_Swap
Message.
2 Protocol Layer creates the DR_Swap Message and
passes to Physical Layer. Starts CRCReceiveTimer.
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.
Page 340 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Type-C DRP (initially UFP Source Port) Type-C DRP (initially DFP Sink Port)
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 2.0, Version 1.1 Page 341
8.3.2.8.3 Type-C VCONN
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-20 below provides a detailed explanation of what happens at each labeled step in Figure 8-21 above.
Page 342 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-20 Steps for Type-C DFP to UFP VCONN Source Swap
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 343
Step DFP (initially VCONN Source) UFP (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 DFP 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 UFP is now the VCONN Source and the DFP has VCONN turned off.
Page 344 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.8.3.2 Type-C UFP to DFP VCONN Source Swap
This is an example of Message sequence between a Port Pair both utilizing the Type-C connector.
Figure 8-22 shows an example sequence between a Type-C DFP and UFP, where the UFP is initially supplying VCONN
and then the DFP tells the UFP that it will become the VCONN Source. During the process the Port Partners, keep their
role as DFP or UFP, maintain their operation as either a Source or a Sink (power remains constant) but exchange the
VCONN Source from the UFP to the DFP.
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-21 below provides a detailed explanation of what happens at each labeled step in Figure 8-22 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 345
Table 8-21 Steps for Type-C UFP to DFP VCONN Source Swap
Page 346 USB Power Delivery Specification Revision 2.0, Version 1.1
Step DFP UFP
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 UFP 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 DFP is now the VCONN Source and the UFP has VCONN turned off.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 347
8.3.2.9 Structured VDM
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : UFP Policy Engine
Table 8-22 below provides a detailed explanation of what happens at each labeled step in Figure 8-23 above.
Page 348 USB Power Delivery Specification Revision 2.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 Indentity 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 2.0, Version 1.1 Page 349
8.3.2.9.2 Source Port to Cable Plug Discover Identity
This is an example of Message sequence between a Source and a Cable Plug both utilizing the Type-C connector.
Figure 8-24 shows an example sequence between a Type-C 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-23 below provides a detailed explanation of what happens at each labeled step in Figure 8-24 above.
Table 8-23 Steps for Source Port to Cable Plug Discover Identity
Page 350 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Source Port 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 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 2.0, Version 1.1 Page 351
8.3.2.9.3 DFP to Cable Plug Discover Identity
This is an example of Message sequence between a DFP and a Cable Plug both utilizing the Type-C connector.
Figure 8-25 shows an example sequence between a Type-C 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-24 below provides a detailed explanation of what happens at each labeled step in Figure 8-25 above.
Page 352 USB Power Delivery Specification Revision 2.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 2.0, Version 1.1 Page 353
8.3.2.9.4 DFP to UFP Enter Mode
This is an example of Message sequence between a DFP and a UFP both utilizing the Type-C connector.
Figure 8-26 shows an example sequence between a Type-C DFP and a UFP, where the DFP attempts to discover
supported SVIDs, then Modes before selecting and entering a Mode.
Page 354 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-26 DFP to UFP Enter Mode
DFP UFP
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : UFP Policy Engine
Start VDMResponseTimer
Start VDMResponseTimer
Table 8-25 below provides a detailed explanation of what happens at each labeled step in Figure 8-26 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 355
Table 8-25 Steps for DFP to UFP Enter Mode
Page 356 USB Power Delivery Specification Revision 2.0, Version 1.1
Step DFP UFP
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 SVIDs Command ACK response was
successfully sent.
19 The Device Policy Manager requests the Policy
Engine to discover Mode information for a given
SVID.
The Policy Engine directs the Protocol Layer to send
a Discover Modes Command request.
20 Protocol Layer creates the Discover Modes
Command request and passes to Physical Layer.
Starts CRCReceiveTimer.
21 Physical Layer appends CRC and sends the Discover Physical Layer receives the Discover Modes
Modes Command request. Command request and checks the CRC to verify the
Message.
22 Physical Layer removes the CRC and forwards the
Discover Modes Command request 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 Discover
Modes Command request information to the Policy
Engine that consumes it.
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
Discover Modes Command request was successfully
sent.
Policy Engine starts the VDMResponseTimer.
28 Policy Engine requests the Mode information from
the Device Policy Manager. The Policy Engine tells
the Protocol Layer to form a Discover Modes
Command ACK response.
29 Protocol Layer creates the Discover Modes Command
ACK response and passes to Physical Layer. Starts
CRCReceiveTimer.
30 Physical Layer receives the Discover Modes Physical Layer appends a CRC and sends the Discover
Command ACK response and compares the CRC it Modes Command ACK response.
calculated with the one sent to verify the Message.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 357
Step DFP UFP
31 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
Modes Command ACK response information to the
Policy Engine that consumes it.
32 The Policy Engine stops the VDMResponseTimer and
passes the Modes information to the Device Policy
Manager for evaluation.
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. compares the CRC it calculated with the one sent to
verify the Message.
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
Discover Modes Command ACK response was
successfully sent.
37 The DFP goes to USB Safe State. The Device Policy
Manager requests the Policy Engine to enter a Mode.
The Policy Engine directs the Protocol Layer to send
an Enter Mode Command request.
38 Protocol Layer creates the Enter Mode Command
request and passes to Physical Layer. Starts
CRCReceiveTimer.
39 Physical Layer appends CRC and sends the Enter Physical Layer receives the Enter Mode Command
Mode Command request. request and checks the CRC to verify the Message.
40 Physical Layer removes the CRC and forwards the
Enter Mode Command request to the Protocol Layer.
41 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.
42 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
43 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
44 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
45 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.
46 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.
Page 358 USB Power Delivery Specification Revision 2.0, Version 1.1
Step DFP UFP
47 Protocol Layer creates the Enter Mode Command
ACK response and passes to Physical Layer. Starts
CRCReceiveTimer.
48 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.
49 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.
50 The Policy Engine stops the VDMModeEntryTimer
and requests the Device Policy Manager to enter the
new Mode.
51 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
52 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.
53 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
54 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 2.0, Version 1.1 Page 359
8.3.2.9.5 DFP to UFP Exit Mode
This is an example of Message sequence between a DFP and a UFP both utilizing the Type-C connector.
Figure 8-27 shows an example sequence between a Type-C 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-26 below provides a detailed explanation of what happens at each labeled step in Figure 8-27 above.
Page 360 USB Power Delivery Specification Revision 2.0, Version 1.1
Step DFP UFP
4 Physical Layer removes the CRC and forwards the
Exit Mode 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 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 2.0, Version 1.1 Page 361
8.3.2.9.6 DFP to Cable Plug Enter Mode
This is an example of Message sequence between a DFP and a Cable Plug both utilizing the Type-C connector.
Figure 8-28 shows an example sequence between a Type-C DFP and a Cable Plug, where the DFP attempts to discover
supported SVIDs, then Modes before selecting and entering a Mode.
Page 362 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-28 DFP to Cable Plug Enter Mode
DFP Cable Plug
: DFP Policy Engine : Protocol : PHY : PHY : Protocol : Cable Plug Policy Engine
Start VDMResponseTimer
Start VDMResponseTimer
Table 8-27 below provides a detailed explanation of what happens at each labeled step in Figure 8-28 above.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 363
Table 8-27 Steps for DFP to Cable Plug Enter Mode
Page 364 USB Power Delivery Specification Revision 2.0, Version 1.1
Step DFP Cable Plug
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 SVIDs Command ACK response was
successfully sent.
19 The Device Policy Manager requests the Policy
Engine to discover Mode information for a given
SVID.
tCableMessage after the GoodCRC Message was sent
the Policy Engine directs the Protocol Layer to send a
Discover Modes Command request.
20 Protocol Layer creates the Discover Modes
Command request and passes to Physical Layer.
Starts CRCReceiveTimer.
21 Physical Layer appends CRC and sends the Discover Physical Layer receives the Discover Modes
Modes Command request. Command request and checks the CRC to verify the
Message.
22 Physical Layer removes the CRC and forwards the
Discover Modes Command request 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 Discover
Modes Command request information to the Policy
Engine that consumes it.
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
Discover Modes Command request was successfully
sent.
Policy Engine starts the VDMResponseTimer.
28 Policy Engine requests the Mode information from
the Device Policy Manager. tCableMessage after the
GoodCRC Message was sent the Policy Engine tells
the Protocol Layer to form a Discover Modes
Command ACK response.
29 Protocol Layer creates the Discover Modes Command
ACK response and passes to Physical Layer. Starts
CRCReceiveTimer.
30 Physical Layer receives the Discover Modes Physical Layer appends a CRC and sends the Discover
Command ACK response and compares the CRC it Modes Command ACK response.
calculated with the one sent to verify the Message.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 365
Step DFP Cable Plug
31 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
Modes Command ACK response information to the
Policy Engine that consumes it.
32 The Policy Engine stops the VDMResponseTimer and
passes the Modes information to the Device Policy
Manager for evaluation.
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. compares the CRC it calculated with the one sent to
verify the Message.
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
Discover Modes Command ACK response was
successfully sent.
37 The DFP goes to USB Safe State. The Device Policy
Manager requests the Policy Engine to enter a Mode.
tCableMessage after the GoodCRC Message was sent
the Policy Engine directs the Protocol Layer to send
an Enter Mode Command request.
38 Protocol Layer creates the Enter Mode Command
request and passes to Physical Layer. Starts
CRCReceiveTimer.
39 Physical Layer appends CRC and sends the Enter Physical Layer receives the Enter Mode Command
Mode Command request. request and checks the CRC to verify the Message.
40 Physical Layer removes the CRC and forwards the
Enter Mode Command request to the Protocol Layer.
41 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.
42 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
43 Physical Layer receives the GoodCRC Message and Physical Layer appends CRC and sends the GoodCRC
checks the CRC to verify the Message. Message.
44 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
45 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.
46 Policy Engine requests the Device Policy Manager to
enter the new Mode. tCableMessage after the
GoodCRC Message was sent the Policy Engine tells
the Protocol Layer to form an Enter Mode Command
ACK response.
Page 366 USB Power Delivery Specification Revision 2.0, Version 1.1
Step DFP Cable Plug
47 Protocol Layer creates the Enter Mode Command
ACK response and passes to Physical Layer. Starts
CRCReceiveTimer.
48 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.
49 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.
50 The Policy Engine stops the VDMModeEntryTimer
and requests the Device Policy Manager to enter the
new Mode.
51 Protocol Layer generates a GoodCRC Message and
passes it Physical Layer.
52 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.
53 Physical Layer removes the CRC and forwards the
GoodCRC Message to the Protocol Layer.
54 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 2.0, Version 1.1 Page 367
8.3.2.9.7 DFP to Cable Plug Exit Mode
This is an example of Message sequence between a DFP and a Cable Plug both utilizing the Type-C connector.
Figure 8-29 shows an example sequence between a 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-28 below provides a detailed explanation of what happens at each labeled step in Figure 8-29 above.
Page 368 USB Power Delivery Specification Revision 2.0, Version 1.1
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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 369
8.3.2.9.8 UFP to DFP Attention
This is an example of Message sequence between a DFP and a UFP both utilizing the Type-C connector.
Figure 8-30 shows an example sequence between a 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-29 below provides a detailed explanation of what happens at each labeled step in Figure 8-30 above.
Page 370 USB Power Delivery Specification Revision 2.0, Version 1.1
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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 371
8.3.2.10 Built in Self-Test (BIST)
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start BISTReceiveErrorTimer
15: BISTErrorCounter
16: Test Pattern received
17: BIST(CountersReturned)
18: BIST(CountersReturned) + CRC
19: BIST(CountersReturned)
Page 372 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-30 Steps for BIST Receiver Mode test
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 373
Step Tester UUT
19 Physical Layer removes the CRC and forwards the
BIST Message to the Protocol Layer.
20 Protocol Layer verifies and increments the
MessageIDCounter and stops
BISTReceiveErrorTimer. Protocol Layer informs the
Policy Engine that the Test Frame was successfully
sent.
Steps 12 to 20 are repeated until Hard Reset Signaling is generated at which point the UUT returns to normal
operation.
Page 374 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.2.10.2 BIST Transmit mode
This is an example of a BIST Transmit Mode test between a Tester and a UUT. Figure 8-32 shows the Messages as they
flow across the bus and within the devices. This test verifies that the UUT transmitter can transmit with sufficient
quality (see Section 6.4.3.2).
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Start BISTReceiveErrorTimer
13: Test Pattern
Calculate BER
Add to BER count
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 375
Table 8-31 Steps for BIST Transmit Mode test
Page 376 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Tester UUT
20 Protocol Layer verifies and increments the
MessageIDCounter and stops
BISTReceiveErrorTimer. Protocol Layer informs the
Policy Engine that the Test Frame was successfully
sent.
Steps 12 to 20 are repeated until Hard Reset Signaling is generated at which point the UUT returns to normal
operation.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 377
8.3.2.10.3 BIST Test Patterns
In addition to the BIST transmit and receive Test Frames there are various Test Patterns which the UUT can be made
to send continuously in order to perform measurements on the transmission spectrum, eye pattern etc. (see Section
5.9.1). The following is an example of a BIST Eye Pattern test between a Tester and a UUT but the sequence applies
equally to other continuous Test Patterns. When the UUT is connected to the Tester the sequence below is executed.
Figure 8-33 shows the Messages as they flow across the bus and within the devices. This test verifies the eye pattern
and the spectrum of the transmitted signal.
1) Connection is established and stable.
2) Tester sends a BIST Message with a BIST Eye Pattern BIST Data Object.
3) UUT answers with a GoodCRC Message.
4) UUT starts sending the Test Pattern.
5) Operator does the measurements.
6) Operator restarts the UUT. Note: that the method of operator restart for the UUT is outside the scope of this
specification. This is assumed to be some mechanism whereby the operator restores the UUT to normal PD
operation.
Refer to Sections 6.4.3.4 through 0.
Tester UUT
6: GoodCRC
7: GoodCRC + CRC
8: GoodCRC
Page 378 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 8-32 Steps for BIST Eye Pattern Test
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 379
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-34 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”, “unattached”, 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-35 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-36). It is also possible that the entry and return states are the
same. Figure 8-37 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 380 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-37 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 Cable Detection.
Note: The following state diagrams are not intended to cover all possible corner cases that may be encountered. For
example where an outgoing Message is discarded, due to an incoming Message by the Protocol Layer (see Section
6.8.2.2) 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 2.0, Version 1.1 Page 381
Figure 8-38 Source Port Policy Engine state diagram
Page 382 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.2.1 PE_SRC_Startup state
PE_SRC_Startup shall be the starting state for a Source Policy Engine either on power up or after a Hard Reset. On
entry to this state the Policy Engine shall reset the CapsCounter and reset the Protocol Layer. Note that resetting the
Protocol Layer will also reset the MessageIDCounter and stored MessageID (see Section 6.8.2.3).
The Policy Engine shall transition to the PE_SRC_Send_Capabilities state:
When the Protocol Layer reset has completed if the PE_SRC_Startup state was entered due to the system first starting
up.
When the SwapSourceStartTimer times out if the PE_SRC_Startup state was entered as the result of a Power Role
Swap.
Note: Providers or Provider/Consumers with an insertion detection mechanism (Type-C, Standard-A insertion detect
or Micro-A ID pin or Attach Detection Protocol see [USBOTG 2.0]) and without a plug attached shall remain in the
PE_SRC_Startup state, without sending any Source_Capabilities Messages until a plug is attached.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 383
Reset the HardResetCounter and CapsCounter to zero. Note that the HardResetCounter shall only be set to
zero in this state and at power up; its value shall be maintained during a Hard Reset.
Initialize and run the SenderResponseTimer.
Once a Source_Capabilities Message has been received and acknowledged by a GoodCRC Message, the Sink is required to
then send a Request Message within tSenderResponse.
The Policy Engine shall transition to the PE_SRC_Negotiate_Capability state when:
A Request Message is received from the Sink.
The Policy Engine shall transition to the PE_SRC_Discovery state when:
The Protocol Layer indicates that the Message has not been sent and we are presently not Connected. This is part
of the Capabilities sending process whereby successful Message sending indicates connection to a PD Sink Port.
The Policy Engine shall transition to the PE_SRC_Hard_Reset state when:
The SenderResponseTimer times out. In this case a transition back to USB Default Operation is required.
When:
The Port is not a Type-C Port
Or the Port is a Type-C Port and the Port Partners have not been PD Connected (the Type-C Port remains attached
to a Port it has not had a PD Connection with during this attachment)
And the NoResponseTimer times out
And the HardResetCounter > nHardResetCount
The Policy Engine shall do one of the following:
Transition to the PE_SRC_Discovery state.
Transition to the PE_SRC_Disabled state.
Note that in either case the attached device is assumed to be unresponsive. The Policy Engine should operate as if the
device is unattached until such time as a detach/reattach is detected.
The Policy Engine shall go to the ErrorRecovery state when:
The Port is a Type-C Port
And the Port Partners have previously been PD Connected (the Type-C Port remains attached to a Port it has had
a PD Connection with during this attachment)
And the NoResponseTimer times out.
And the HardResetCounter > nHardResetCount.
Page 384 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.2.5 PE_SRC_Transition_Supply state
The Policy Engine shall be in the PE_SRC_Transition_Supply state while the power supply is transitioning from one
power to another.
On entry to the PE_SRC_Transition_Supply state, the Policy Engine shall initialize and run the SourceActivityTimer
(see Section 8.3.3.6 for details of Ping messaging for Source Ports), request the Protocol Layer to either send a
GotoMin Message (if this was requested by the Device Policy Manager) or otherwise an Accept Message, wait for
tSrcTransition, and inform the Device Policy Manager that it shall transition the power supply to the Requested
power level. Note: that if the power supply is currently operating at the requested power no change will be necessary.
On exit from the PE_SRC_Transition_Supply state the Policy Engine shall request the Protocol Layer to send a PS_RDY
Message.
The Policy Engine shall transition to the PE_SRC_Ready state when:
The Device Policy Manager informs the Policy Engine that the power supply is ready.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 385
The Policy Engine shall transition to the PE_SRC_Ready state when:
There is an Explicit Contract and
A Reject Message has been sent and the present Contract is still valid or
A Wait Message has been sent.
The Policy Engine shall transition to the PE_SRC_Hard_Reset state when:
There is an Explicit Contract and
The Reject Message has been sent and the present Contract is invalid (i.e. the Sink had to request a new value so
instead we will return to USB Default Operation).
The Policy Engine shall transition to the PE_SRC_Wait_New_Capabilities state when:
There is no Explicit Contract and
A Reject Message has been sent or
A Wait Message has been sent.
Note: The Policy Engine of a Consumer/Provider, acting as the Source, transitions to the PE_SNK_Hard_Reset state as
described in the Section 8.3.3.6.1.4.
Page 386 USB Power Delivery Specification Revision 2.0, Version 1.1
The Policy Engine shall transition to the PE_SRC_Startup state when:
The Device Policy Manager indicates that the power supply has reached the default level.
8.3.3.2.14 PE_SRC_Wait_New_Capabilities
In this state the Policy Engine has been unable to negotiate an Explicit Contract and is waiting either new Capabilities
from the Device Policy Manager.
The Policy Engine shall transition to the PE_SRC_Send_Capabilities state when:
The Device Policy Manager indicates that Source Capabilities have changed.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 387
Figure 8-39 Sink Port state diagram
PE_SNK_Evaluate_Capability
Actions on entry:
Stop NoResponseTimer and reset HardResetCounter to zero.
Ask Device Policy Manager to evaluate option based on supplied
capabilities (from supplied capabilities, reserve or “Capability
Mismatch”).
Actions on entry:
Send Request based on Device Policy Manager response either:
Request from present capabilities
Indicate if other capabilities would be required (“Capability
Mismatch”)
Initialize and run SenderResponseTimer
PE_SNK_Transition_Sink
New power required | Actions on entry:
SinkRequestTimer Initialize and run PSTransitionTimer
timeout Actions on exit:
Request Device Policy Manager transitions sink
power supply to new power (if required)
Power = transition
PD = Connected
PE_SNK_Ready
Actions on entry:
Initialize and run SinkActivityTimer3
Initialize and run SinkRequestTimer4 (on receiving Wait)
Initialize and run DiscoverIdentityTimer8
Get_Sink_Cap message
Sink capabilities Update remote capabilities
received Get_Source_Cap
message sent request from
Message sent Device Policy Manager
PE_SNK_Give_Sink_Cap
Actions on entry: PE_SNK_Get_Source_Cap
Get present sink capabilities from Device Policy Manager
Send Capabilities message (based on Device Policy Actions on entry:
Manager response) Send Get_Source_Cap message
1
Source capabilities messages received in states other than PE_SNK_Wait_For_Capabilities and PE_SNK_READY constitute a Protocol Error.
2
The NoResponseTimer will be stopped upon entry to the PE_DB_CP_Check_for_VBUS state.
3
The SinkActivityTimer shall not be run when operating at vSafe5V or when two systems using the Type-C connector are communicating, since Ping messages are optional.
4
The 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 which is
not reset by a Ping message.
5
For Type-C connectors error recovery steps can be taken at this point which are defined in the USB Type-C specification and are outside the scope of this specification.
6
During 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.
7
PD Connected is defined as a situation when the Port Partners have exchanged a Message and GoodCRC response. The Port Partners remain PD Connected after a Swap or the
connector is able to identify a disconnect (Type-C, Type-A with insert detect, Micro-AB).
8
The DiscoverIdentityTimer is run when this is a DFP and a PD Connection with a Cable Plug needs to be established i.e. no GoodCRC has yet been received in response to a
DiscoverIdentity message.
Page 388 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.3.1 PE_SNK_Startup state
PE_SNK_Startup shall be the starting state for a Sink Policy Engine either on power up or after a Hard Reset. On entry
to this state the Policy Engine shall reset the Protocol Layer. Note that resetting the Protocol Layer will also reset the
MessageIDCounter and stored MessageID (see Section 6.8.2.3).
Once the reset process completes, the Policy Engine shall transition to the PE_SNK_Discovery state for a Consumer
only and to the PE_DB_CP_Check_for_VBUS state for a Type-B Consumer/Provider.
Page 390 USB Power Delivery Specification Revision 2.0, Version 1.1
If this is a DFP which needs to establish communication with a Cable Plug, the DFP shall:
Initialize and run the DiscoverIdentityTimer (no GoodCRC Message response yet received to Discover Identity
Message).
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 to the PE_SNK_Hard_Reset state when:
A SinkActivityTimer timeout occurs.
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 2.0, Version 1.1 Page 391
On entry to the PE_SNK_Transition_to_default state the Policy Engine shall:
indicate to the Device Policy Manager that the Sink shall transition to default
request a reset of the local hardware
for a Type-C connector shall request that the Port Data Role is set to UFP.
On exit from the PE_SNK_Transition_to_default state the Policy Engine shall initialize and run the NoResponseTimer
and inform the Protocol Layer that the Hard Reset is complete. Note that the NoResponseTimer shall continue to run
in every state until it is stopped or times out.
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 392 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-40 Source Port Soft Reset Diagram
Accept message
received
PE_SRC_Send_Capabilities
Accept message
sent
Hard Reset:
SenderResponseTimer
Transmission Timeout | PE_SRC_Send_Soft_Reset
PE_SRC_Soft_Reset Provider or Provider/ Transmission
Error indication
from Protocol Layer Consumer2 -> Error indication Actions on entry:
Actions on entry: from Protocol Layer
PE_SRC_Hard_Reset Reset Protocol Layer
Reset Protocol Layer
Send Soft Reset message
Send Accept message Consumer/Provider in
Initialize and run SenderResponseTimer
Source role ->
Power = DefauIt/Implicit or PE_SNK_Hard_Reset Power = DefauIt/Implicit or Explicit Contract
Explicit Contract PD = Connected
PD = Connected
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 393
8.3.3.4.1.2 PE_SRC_Soft_Reset state
The PE_SRC_Soft_Reset state shall be entered from any state when a Soft_Reset Message is received from the Protocol
Layer.
On entry to the PE_SRC_Soft_Reset state the Policy Engine shall reset the Protocol Layer and shall then request the
Protocol Layer to send an Accept Message.
The Policy Engine shall transition to the PE_SRC_Send_Capabilities state (see Section 8.3.3.2.3) when:
The Accept Message has been sent.
The Policy Engine shall transition to the PE_SRC_Hard_Reset or PE_SNK_Hard_Reset state depending on its default
role as either a Source or Sink Port (see Section 6.7.2) when:
The Protocol Layer indicates that a transmission error has occurred.
The decision as to whether to go to PE_SRC_Hard_Reset or PE_SNK_Hard_Reset shall depend on the type of device:
The Source Port in a Provider or Provider/Consumer shall go to PE_SRC_Hard_Reset.
The Source Port in a Consumer/Provider shall go to PE_SNK_Hard_Reset i.e. revert to USB Default Operation as
Sink Port.
Accept message
PE_SNK_Wait_for_Capabilities received
Accept message
sent
Hard Reset: SenderResponseTimer
PE_SNK_Soft_Reset Timeout |
Transmission error
Transmission error
PE_SNK_Send_Soft_Reset
indication from Consumer or
Actions on entry: Indication from Actions on entry:
Reset Protocol Layer
Protocol Layer Consumer/Provider2 -> Protocol Layer Reset Protocol Layer
Send Accept message PE_SNK_Hard_Reset Send Soft Reset message
Power = Default/Implicit or
Provider/Consumer in Initialize and run SenderResponseTimer
Explicit Contract Sink role ->
Power = DefauIt/Implicit or Explicit
PD = Connected PE_SRC_Hard_Reset
Contract
PD = Connected
Page 394 USB Power Delivery Specification Revision 2.0, Version 1.1
During a Power Role Swap when the power supply is in transition (see Sections 8.3.3.6.3.1 and 8.3.3.6.3.2). 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 Type-C error recovery will be
triggered directly.
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_SRC_Hard_Reset or PE_SNK_Hard_Reset state when:
A SenderResponseTimer timeout occurs.
Or the Protocol Layer indicates that a transmission error has occurred.
The decision as to whether to go to PE_SRC_Hard_Reset or PE_SNK_Hard_Reset shall depend on the type of device:
The Sink Port in a Provider/Consumer shall go to PE_SRC_Hard_Reset.
The Sink Port in a Consumer or Consumer/Provider shall go to PE_SNK_Hard_Reset i.e. revert to USB Default
Operation as Sink Port.
SourceActivityTimer
PE_SRC_Ping timeout
Actions on entry:
PE_SRC_Transition_Supply
Send Ping message Or
Ping message sent PE_SRC_Ready
Power = Transition/Explicit
Contract
PD = connected
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 395
8.3.3.5.1 PE_SRC_Ping state
On entry to the PE_SRC_Ping state (from the PE_SRC_Transition_Supply or PE_SRC_Ready states) the Policy Engine
shall request the Protocol Layer to send a Ping Message.
The Policy Engine shall transition back to the previous state (PE_SRC_Transition_Supply or PE_SRC_Ready) state (see
Figure 8-38) when:
The Ping Message has been successfully sent.
On re-entry to the PE_SRC_Transition_Supply or PE_SRC_Ready states the Policy Engine shall not perform any of the
“Actions on Entry” except for initializing and running the SourceActivityTimer.
SourceActivityTimer
PE_PRS_SRC_SNK_Ping timeout
Ping message not sent after retries
(no GoodCRC received) Actions on entry: PE_PRS_SRC_SNK_
PE_SRC_Hard_Reset Send Ping message Ping message sent Transition_to_off
Power = Transition
PD = connected
Page 396 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-44 Dual-Role (initially Sink Port) Ping State Diagram
SourceActivityTimer
PE_PRS_SNK_SRC_Ping timeout
Ping message not sent after retries
(no GoodCRC received) Actions on entry: PE_PRS_SNK_SRC_
PE_SNK_Hard_Reset Ping message sent Source_on
Send Ping message
Power = Transition
PD = connected
Figure 8-45 State Diagram for Hard Reset of P/C in Sink Role
PE_PC_SNK_Swap_Recovery
Actions on entry: SwapRecoveryTimer
Initialize and run SwapRecoveryTimer timeout
PE_SRC_Transition_to_default
Power = DefauIt (5V) or
((SinkWaitCapTimer timeout | Implicit/Explicit Contract
SinkActivityTimer timeout | PD = Connected/not Connected
PSTransitionTimer timeout |
NoResponseTimer timeout) &
(HardResetCounter ≤ nHardResetCount)) | Hard Reset complete
Hard Reset request from
Device Policy Manager
PE_PC_SNK_Hard_Reset
Actions on entry:
Generate Hard Reset signalling.
Increment HardResetCounter.
Power = DefauIt (5V) or
Implicit/Explicit Contract
PD = Connected/not Connected
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 397
PSTransitionTimer timeout |
NoResponseTimer timeout) &
(HardResetCounter ≤ nHardResetCount)) |
Hard Reset request from Device Policy Manager
The Policy Engine shall transition to the PE_PC_SNK_Swap_Recovery state when:
The Hard Reset is complete.
8.3.3.6.1.3.2 PE_PC_SNK_Swap_Recovery state
The Policy Engine shall transition to the PE_PC_SNK_Swap_Recovery state from any state when:
Hard Reset Signaling is received.
On entry to the PE_PC_SNK_Swap_Recovery state the Policy Engine shall initialize and run the SwapRecoveryTimer.
The Policy Engine shall transition to the PE_SRC_Transition_to_default state for a Source Port when:
The SwapRecoveryTimer times out.
Figure 8-46 State Diagram for the Hard Reset of a C/P in Source Role
PE_CP_SRC_Transition_to_off
PE_CP_SRC_Hard_Reset
Actions on entry:
Generate Hard Reset signalling
Increment HardResetCounter
Page 398 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.6.1.4.2 PE_CP_SRC_Transition_to_off state
The Policy Engine shall transition from any state to the PE_CP_SRC_Transition_to_off state for a Consumer/Provider
in Source Role when:
Hard Reset Signaling is detected.
On entry to the PE_CP_SRC_Transition_to_off state the Policy Engine shall tell the Device Policy Manager to turn off
the power supply.
The Policy Engine shall transition to the PE_SNK_Transition_to_default when:
The power supply has been turned off.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 399
8.3.3.6.1.5 Type-A/B Consumer/Provider Dead Battery/Power Loss State Diagram
Figure 8-47 shows the additional state diagram required for a Consumer/Provider to handle Dead Battery detection.
After the Consumer/Provider Policy Engine has transitioned to the PE_SRC_Send_Capabilities state, its subsequent
state operation shall conform to that of a Consumer/Provider which has completed a Power Role Swap (see Section
8.3.3.6.3.2). The Consumer/Provider has effectively undergone a Power Role Swap without the requirement of
protocol negotiation. The Consumer/Provider will not respond to received Source_Capabilities Messages until it
transitions to the PE_SNK_Wait_for_Capabilities state.
PE_SNK_Startup
PE_DB_CP_Check_
for_VBUS
DBSourceOffTimer timeout Actions on entry: VBUS > vSafe0V
Initialize and run DBDetectTimer PE_SNK_Wait_for_Capabilities
Stop NoResponseTimer
Power = Default
PD = unknown
PE_DB_CP_PS_ PE_DB_CP_Power_
Discharge VBUS_DB
Actions on entry: Actions on entry:
Initialize and run Tell Device Policy Manager
DBSourceOffTimer apply vSafeDB to VBUS
Power=unknown Power=transition
PD = unknown PD = unknown
PE_DB_CP_Unpower_ PE_DB_CP_Wait_for_
VBUS Bit StreamDetectTimer Bit_Stream
Timeout Actions on entry:
Actions on entry:
Initialize and run
Tell Device Policy Manager
BitStreamDetectTimer
apply vSafe0V to VBUS
Power=vSafeDB
Power=vSafeDB or vSafe5V PD = unknown
PD = unknown
Bit Stream detected
by PHY
PE_DB_CP_Power_
VBUS_5V
Actions on entry:
Tell Device Policy Manager to apply
vSafe5V to VBUS
Power=vSafeDB or vSafe5V
PD = not Connected
vSafe5V on VBUS
PE_DB_CP_Wait_
DeviceReadyTimer Bit_Stream_Stop
Timeout
Actions on entry:
Initialize and run DeviceReadyTimer
Power=vSafe5V
PD = not Connected
PE_SRC_Send_Capabilities
Page 400 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.6.1.5.1 PE_DB_CP_Check_for_VBUS state
The Policy Engine for a Consumer/Provider shall initially start in the PE_SNK_Startup state. Once the Protocol Layer
has been reset it shall transition to the PE_DB_CP_Check_for_VBUS state.
On entry to the PE_DB_CP_Check_for_VBUS state the Policy Engine shall initialize and run the DBDetectTimer and
stop the NoResponseTimer.
The Policy Engine shall transition to the PE_SNK_Wait_for_Capabilities state when:
VBUS is greater than vSafe0V.
The Policy Engine shall transition to the PE_DB_CP_Power_VBUS_DB state when:
The DBDetectTimer has timed out and
VBUS is within vSafe0V.
8.3.3.6.1.5.2 PE_DB_CP_Power_VBUS_DB state
On entry to the PE_DB_CP_Power_VBUS_DB state the Policy Engine shall tell the Device Policy Manager to apply
vSafeDB to VBUS.
The Policy Engine shall transition to the PE_DB_CP_Wait_For_Bit_Stream state when:
vSafeDB is on VBUS.
8.3.3.6.1.5.3 PE_DB_CP_Wait_For_Bit_Stream state
On entry to the PE_DB_CP_Wait_For_Bit_Stream state the Policy Engine shall initialize and run the
BitStreamDetectTimer.
The Policy Engine shall transition to the PE_DB_CP_Power_VBUS_5V state when:
The PHY Layer indicates that Bit Stream signaling has been received.
The Policy Engine shall transition to the PE_DB_CP_Unpower_VBUS state when:
The BitStreamDetectTimer times out.
8.3.3.6.1.5.4 PE_DB_CP_Power_VBUS_5V state
On entry to the PE_DB_CP_Power_VBUS_5V state the Policy Engine shall request the Device Policy Manager to apply
vSafe5V to VBUS.
The Policy Engine shall transition to the PE_DB_CP_Wait_Bit_Stream_Stop state when:
vSafe5V is present on VBUS.
8.3.3.6.1.5.5 PE_DB_CP_Wait_Bit_Stream_Stop state
On entry to the PE_DB_CP_Wait_Bit_Stream_Stop state the Policy Engine shall initialize and run the
DeviceReadyTimer.
The Policy Engine shall transition to the PE_SRC_Send_Capabilities state when:
An indication is received from the PHY Layer that the Bit Stream has stopped.
The Policy Engine shall transition to the PE_DB_CP_Unpower_VBUS state when:
The DeviceReadyTimer times out.
8.3.3.6.1.5.6 PE_DB_CP_Unpower_VBUS state
On entry to the PE_DB_CP_Unpower_VBUS state the Policy Engine shall tell the Device Policy Manager to apply
vSafe0V to VBUS.
The Policy Engine shall transition to the PE_DB_CP_PS_Discharge state when:
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 401
vSafe0V has been applied to VBUS.
Note: the intention of applying vSafe0V is that the Consumer/Provider will utilize the same mechanism to unpower
VBUS as it uses to remove VBUS power during a Power Role Swap.
8.3.3.6.1.5.7 PE_DB_CP_PS_Discharge state
On entry to the PE_DB_CP_PS_Discharge state the Policy Engine shall initialize and run the DBSourceOffTimer.
The Policy Engine shall transition to the PE_DB_CP_Check_for_VBUS state when:
The DBSourceOffTimer times out.
Note: the DBSourceOffTimer is used to ensure that the Consumer/Provider is not powering VBUS when it proceeds to
check the voltage on VBUS. This assumes that the discharge of VBUS follows the same process as when removing power
during a Power Role Swap.
Page 402 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.6.1.6 Type-A/B Provider/Consumer Dead Battery/Power Loss State Diagram
Figure 8-48 shows the additional state diagram required for a BFSK Provider/Consumer to handle Dead Battery
detection. The Provider/Consumer is assumed to startup in a state where it is either powered off or is unable to
power its Port (e.g. due to a Dead Battery). If the Provider/Consumer is powered on and has sufficient power to
power it’s Port it should start up as a Source Port.
Start
vSafe0V present on VBUS &
P/C powered off or unable to operate
PE_DB_PC_Unpowered
Actions on entry:
Waiting for vSafeDB in order to
operate dead battery detection
Ensure Bit Stream is off within
tBit StreamOff
Power=vSafe0V
PD = attached/unattached
PE_DB_PC_Check_
Power Willing to
Doesn’t want Actions on entry: power port
to be powered Decide if able/willing to power PE_SRC_Transition_to_Default
port
Power=vSafeDB
PD = attached
Wants to be
powered
PE_DB_PC_Send_Bit_Stream
Actions on entry:
Request PHY to start sending Bit
Stream (within tSendBit Stream of VBUS
detection).
Power = vSafeDB
PD = attached
PE_DB_PC_Wait_to_Detect
Actions on entry:
Initialize and run WaitForPowerTimer
WaitForPowerTimer timeout
PE_DB_PC_Wait_to_start
Actions on entry:
Wait for Policy Engine to be ready to
negotiate Capabilities
Actions on exit:
Request PHY to stop Bit Stream
Power=vSafe5V
PD = attached
PE_SNK_Wait_for_Capabilities
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 403
8.3.3.6.1.6.1 PE_DB_PC_Unpowered state
The PE_DB_PC_Unpowered state is the startup state for a Provider/Consumer at power up when either there is no
power to the Provider/Consumer (in this case there may be no physical “state” as such) or when the
Provider/Consumer has some sort of power supply but is inactive.
The PE_DB_PC_Unpowered state shall be entered from any state when:
VBUS is within vSafe0V and
The Provider/Consumer is powered off or has insufficient power to operate.
On entry to the PE_DB_PC_Unpowered state the Policy Engine shall wait for vSafeDB to appear on VBUS in order to
start the Dead Battery detection process. If a Bit Stream is currently being transmitted then this shall be stopped
within tBitStreamOff of vSafe0V appearing on VBUS.
The Policy Engine shall transition to the PE_DB_PC_Check_Power state when:
vSafeDB is present on VBUS,.or
The Provider/Consumer is ready to power VBUS
8.3.3.6.1.6.2 PE_DB_PC_Check_Power state
On entry to the PE_DB_PC_Check_Power state the Policy Engine shall decide whether it is able and willing to supply
power to the Port.
The Policy Engine shall transition to the PE_SRC_Transition_to_default state when:
It is willing to power VBUS.
The Policy Engine shall transition to the PE_DB_PC_Send_Bit_Stream state when:
It wants to be powered by the Consumer/Provider.
The Policy Engine shall stay in the PE_DB_PC_Check_Power state when:
The Provider/Consumer does not want to either power the Port or be powered.
8.3.3.6.1.6.3 PE_DB_PC_Send_Bit_Stream state
On entry to the PE_DB_PC_Send_Bit_Stream state the Policy Engine shall request the PHY Layer to start sending the
Bit Stream (see Section 4.1.1).
The Policy Engine shall transition to the PE_DB_PC_Wait_to_Detect state when:
The Bit Stream is being sent.
8.3.3.6.1.6.4 PE_DB_PC_Wait_to_Detect state
On entry to the PE_DB_PC_Wait_to_Detect state the Policy Engine shall initialize and run the WaitForPowerTimer to
allow the Consumer/Provider time to detect the Bit Stream and apply power to V BUS.
The Policy Engine shall transition to the PE_DB_PC_Wait_to_Start state when:
The DeadBatteryTimer times out.
8.3.3.6.1.6.5 PE_DB_PC_Wait_to_Start state
On entry to the PE_DB_PC_Wait_to_Start state the Policy Engine shall wait until it is ready to negotiate Capabilities.
On exit from the PE_DB_PC_Wait_to_Start state the Policy Engine shall request the PHY Layer to stop sending the Bit
Stream.
The Policy Engine shall transition to the PE_SNK_Wait_for_Capabilities state when:
The Policy Engine is ready to negotiate Capabilities.
Page 404 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.6.2 Type-C DR_Swap State Diagrams
The State Diagrams in this section shall apply to all Dual-Role Ports that are [USBType-C 1.0] DRPs.
8.3.3.6.2.1 Type-C Policy Engine in DFP to UFP Data Role Swap State Diagram
Figure 8-49 shows the additional state diagram required to perform a Data Role Swap from Type-C DFP to UFP
operation and the changes that shall be followed for error and Hard Reset handling.
Figure 8-49: Type-C DFP to UFP Data Role Swap State Diagram
PE_DRS_DFP_UFP_ PE_DRS_DFP_UFP_
Reject_DR_Swap Data Role Swap not ok | PE_DRS_DFP_UFP_
Further evaluation
Evaluate_DR_Swap Send_DR_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_DR_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 2.0, Version 1.1 Page 405
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).
Page 406 USB Power Delivery Specification Revision 2.0, Version 1.1
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 DFP and shall transition to either the PE_SRC_Ready or PE_SNK_Ready state
when:
The Reject or Wait Message has been sent.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 407
8.3.3.6.2.2 Type-C Policy Engine in UFP to DFP Data Role Swap State Diagram
Figure 8-50 shows the additional state diagram required to perform a Data Role Swap from Type-C DRP UFP to DFP
operation and the changes that shall be followed for error and Hard Reset handling.
Figure 8-50: Type-C UFP to DFP Data Role Swap State Diagram
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)
Page 408 USB Power Delivery Specification Revision 2.0, Version 1.1
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_DR_Swap state when:
The Device Policy Manager indicates that a Data Role Swap is required.
8.3.3.6.2.2.2 PE_DRS_UFP_DFP_Evaluate_DR_Swap state
On entry to the PE_DRS_UFP_DFP_Evaluate_DR_Swap state the Policy Engine shall ask the Device Policy Manager
whether a Data Role Swap can be made.
The Policy Engine shall transition to the PE_DRS_UFP_DFP_Accept_DR_Swap state when:
The Device Policy Manager indicates that a Data Role Swap is ok.
The Policy Engine shall transition to the PE_DRS_UFP_DFP_Reject_DR_Swap state when:
The Device Policy Manager indicates that a Data Role Swap is not ok.
Or further evaluation of the Data Role Swap request is needed.
8.3.3.6.2.2.3 PE_DRS_UFP_DFP_Accept_DR_Swap state
On entry to the PE_DRS_UFP_DFP_Accept_DR_Swap state the Policy Engine shall request the Protocol Layer to send an
Accept Message.
The Policy Engine shall transition to the PE_DRS_UFP_DFP_Change_to_DFP state when:
The Accept Message has been sent.
8.3.3.6.2.2.4 PE_DRS_UFP_DFP_Change_to_DFP state
On entry to the PE_DRS_UFP_DFP_Change_to_DFP state the Policy Engine shall request the Device Policy Manager to
change the Port from a UFP to a DFP.
The Policy Engine shall transition to either the PE_SRC_Ready or PE_SNK_Ready state when:
The Device Policy Manager indicates that the Type-C Port has been changed to a DFP.
8.3.3.6.2.2.5 PE_DRS_UFP_DFP_Send_DR_Swap state
On entry to the PE_DRS_UFP_DFP_Send_DR_Swap state the Policy Engine shall request the Protocol Layer to send a
DR_Swap Message and shall start the SenderResponseTimer.
On exit from the PE_DRS_UFP_DFP_Send_DR_Swap state the Policy Engine shall stop the SenderResponseTimer.
The Policy Engine shall continue as a UFP and shall transition to either the PE_SRC_Ready or 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_DRS_UFP_DFP_Change_to_DFP state when:
An Accept Message is received.
8.3.3.6.2.2.6 PE_DRS_UFP_DFP_Reject_DR_Swap state
On entry to the PE_DRS_UFP_DFP_Reject_DR_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).
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 409
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.
Page 410 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.6.3.1 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-51 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 and Hard Reset handling.
Figure 8-51: 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
Accept received
PD = Connected
PE_PRS_SRC_SNK_
Accept_Swap
Actions on entry:
Send Accept message
Power = Explicit Contract
PD = Connected
Accept message
sent
PE_PRS_SRC_SNK_
Transition_to_off PE_PRS_SRC_SNK_
Source turned off &
Assert_Rd
Actions on entry:
Wait tSrcTransition and tell Device Policy Type-C DRP Actions on entry:
ErrorRecovery Manager to turn off power supply Request DPM to assert Rd
Start SourceActivityTimer (see Section
8.3.3.6.1.1)1 Power = Source off
PD = Connected
Power = Transition to stop sourcing
PD = Connected
1
When operating at vSafe5V and not swapped, or when two systems both using the Type-C connector are communicating, Ping messages are optional so the SourceActivityTimer is not required to run
in these circumstances.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 411
A PR_Swap Message is received.
The Policy Engine shall transition to the PE_PRS_SRC_SNK_Send_PR_Swap state when:
The Device Policy Manager indicates that a Power Role Swap is required.
8.3.3.6.3.1.2 PE_PRS_SRC_SNK_Evaluate_Swap state
On entry to the PE_PRS_SRC_SNK_Evaluate_PR_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_SRC_SNK_Accept_PR_Swap state when:
The Device Policy Manager indicates that a Power Role Swap is ok.
The Policy Engine shall transition to the PE_PRS_SRC_SNK_Reject_PR_Swap state when:
The Device Policy Manager indicates that a Power Role Swap is not ok.
Or further evaluation of the Power Role Swap request is needed.
8.3.3.6.3.1.3 PE_PRS_SRC_SNK_Accept_Swap state
On entry to the PE_PRS_SRC_SNK_Accept_PR_Swap state the Policy Engine shall request the Protocol Layer to send an
Accept Message.
The Policy Engine shall transition to the PE_PRS_SRC_SNK_Transition_to_off state when:
The Accept Message has been sent.
8.3.3.6.3.1.4 PE_PRS_SRC_SNK_Transition_to_off state
On entry to the PE_PRS_SRC_SNK_Transition_to_off state the Policy Engine shall wait tSrcTransition and then request
the Device Policy Manager to turn off the Source and shall initialize and run the SourceActivityTimer (see Section
8.3.3.6.1.1.1 for use of Ping messaging for Dual-Role Ports which are initially Source Ports).
The Policy Engine shall transition to the PE_PRS_SRC_SNK_Wait_Source_on state when:
The Device Policy Manager indicates that the Source has been turned off and
The Port is not a [USBType-C 1.0] DRP
The Policy Engine shall transition to the PE_PRS_SRC_SNK_Assert_Rd state when:
The Device Policy Manager indicates that the Source has been turned off and
The Port is a [USBType-C 1.0] DRP
8.3.3.6.3.1.5 PE_PRS_SRC_SNK_Assert_Rd
On entry to the PE_PRS_SRC_SNK_Assert_Rd state the Policy Engine shall request the Device Policy Manager to change
the resistor asserted on the CC wire from Rp to Rd.
The Policy Engine shall transition to the PE_PRS_SRC_SNK_Wait_Source_on state when:
The Device Policy Manager indicates that Rd is asserted.
8.3.3.6.3.1.6 PE_PRS_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 remote Source is now supplying power.
The Policy Engine shall transition to the PE_SRC_Hard_Reset or PE_SNK_Hard_Reset state depending on its default
role as either a Source or Sink Port (see Section 6.7.2) when:
Page 412 USB Power Delivery Specification Revision 2.0, Version 1.1
The Port is not a [USBType-C 1.0] DRP and
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.
The decision as to whether to go to PE_SRC_Hard_Reset or PE_SNK_Hard_Reset shall depend on the type of device:
The Source Port in a Provider or Provider/Consumer shall go to PE_SRC_Hard_Reset.
The Source Port in a Consumer/Provider shall go to PE_SNK_Hard_Reset i.e. revert to USB Default Operation as
Sink Port.
The Policy Engine shall transition to the ErrorRecovery state when:
The Port is a [USBType-C 1.0] DRP and
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.6.3.1.7 PE_PRS_SRC_SNK_Send_Swap state
On entry to the PE_PRS_SRC_SNK_Send_PR_Swap state the Policy Engine shall request the Protocol Layer to send a
PR_Swap Message and shall start the SenderResponseTimer.
On exit from the PE_PRS_SRC_SNK_Send_PR_Swap state the Policy Engine shall stop the SenderResponseTimer.
The Policy Engine shall transition to the PE_SRC_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_SRC_SNK_Transition_to_off state when:
An Accept Message is received.
8.3.3.6.3.1.8 PE_PRS_SRC_SNK_Reject_Swap state
On entry to the PE_PRS_SRC_SNK_Reject_PR_Swap state the Policy Engine shall request the Protocol Layer to send:
A Reject Message if the device is unable to perform a Power Role Swap at this time.
A Wait Message if further evaluation of the Power Role Swap request is required. Note: in this case it is expected
that one of the Port Partners will send a PR_Swap Message at a later time (see Section 6.3.12.2).
The Policy Engine shall transition to the PE_SRC_Ready when:
The Reject or Wait Message has been sent.
8.3.3.6.3.2 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-52 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 and Hard Reset handling.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 413
Figure 8-52: 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_
Rp asserted
Source_on
PS_RDY message not sent after retries Actions on entry:
(no GoodCRC received) & Tell Device Policy Manager to turn on
not Type-C DRP Source
Initialize and run SourceActivityTimer (see
Section 8.3.3.6.1.2)1
Source is on
PE_SRC_Startup
1
When operating at vSafe5V and not swapped, or when two systems both using the Type-C connector are communicating, Ping messages are optional so the SourceActivityTimer is not required to run
in these circumstances.
Page 414 USB Power Delivery Specification Revision 2.0, Version 1.1
The Policy Engine shall transition to the PE_PRS_SNK_SRC_Accept_PR_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_PR_Swap state when:
The Device Policy Manager indicates that a Power Role Swap is not ok.
8.3.3.6.3.2.3 PE_PRS_SNK_SRC_Accept_Swap state
On entry to the PE_PRS_SNK_SRC_Accept_PR_Swap state the Policy Engine shall request the Protocol Layer to send an
Accept Message.
The Policy Engine shall transition to the PE_PRS_SNK_SRC_Transition_to_off state when:
The Accept Message has been sent.
8.3.3.6.3.2.4 PE_PRS_SNK_SRC_Transition_to_off state
On entry to the PE_PRS_SNK_SRC_Transition_to_off state the Policy Engine shall initialize and run the
PSSourceOffTimer and then request the Device Policy Manager to turn off the Sink.
The Policy Engine shall transition to the PE_SRC_Hard_Reset or PE_SNK_Hard_Reset state depending on its default
role as either a Source or Sink Port (see Section 6.7.2) when:
The PSSourceOffTimer times out and
The Port is not a [USBType-C 1.0] DRP.
The decision as to whether to go to PE_SRC_Hard_Reset or PE_SNK_Hard_Reset shall depend on the type of device:
The Source Port in a Provider or Provider/Consumer shall go to PE_SRC_Hard_Reset.
The Source Port in a Consumer/Provider shall go to PE_SNK_Hard_Reset i.e. revert to USB Default Operation as
Sink Port.
The Policy Engine shall transition to the ErrorRecovery state when:
The PSSourceOffTimer times out and
The Port is a [USBType-C 1.0] DRP.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 415
The Policy Engine shall transition to the PE_SRC_Startup state when:
The Source Port has been turned on.
The Policy Engine shall transition to the PE_SRC_Hard_Reset or PE_SNK_Hard_Reset state depending on its default
role as either a Source or Sink Port (see Section 6.7.2) when:
The Port is not a [USBType-C 1.0] DRP and
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.
The decision as to whether to go to PE_SRC_Hard_Reset or PE_SNK_Hard_Reset shall depend on the type of device:
The Source Port in a Provider or Provider/Consumer shall go to PE_SRC_Hard_Reset.
The Source Port in a Consumer/Provider shall go to PE_SNK_Hard_Reset i.e. revert to USB Default Operation as
Sink Port.
The Policy Engine shall transition to the ErrorRecovery state when:
The Port is a [USBType-C 1.0] DRP and
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.
8.3.3.6.3.2.7 PE_PRS_SNK_SRC_Send_Swap state
On entry to the PE_PRS_SNK_SRC_Send_PR_Swap state the Policy Engine shall request the Protocol Layer to send a
PR_Swap Message and shall initialize and run the SenderResponseTimer.
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.
8.3.3.6.3.2.8 PE_PRS_SNK_SRC_Reject_Swap state
On entry to the PE_PRS_SNK_SRC_Reject_PR_Swap state the Policy Engine shall request the Protocol Layer to send:
A Reject Message if the device is unable to perform a Power Role Swap at this time.
A Wait Message if further evaluation of the Power Role Swap request is required. Note: in this case it is expected
that one of the Port Partners will send a PR_Swap Message at a later time (see Section 6.3.12.2).
The Policy Engine shall transition to the PE_SNK_Ready state when:
The Reject or Wait Message has been sent.
Page 416 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-53 Dual-Role (Source) Get Source 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
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 417
Figure 8-55 Dual-Role (Sink) Get Sink 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
Page 418 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-57 VCONN Swap State Diagram
PE_SRC_Ready or
PE_SNK_Ready
PE_VCS_Send_Swap
PE_VCS_Reject_VCONN_Swap PE_VCS_Evaluate_Swap Actions on entry:
VCONN Swap not ok |
Further evaluation Actions on entry: Send VCONN_Swap message
Actions on entry: required Initialize and run
Get evaluation of VCONN swap
Send Reject or Wait message as SenderResponseTimer
request from Device Policy Manager
appropriate
Power = Explicit Contract
Power = Explicit Contract Power = Explicit Contract PD = Connected
PD = Connected PD = Connected
Accept received &
VCONN Swap ok Presently VCONN Source1
Accept received &
Not presently VCONN Source1
PE_VCS_Accept_Swap
Actions on entry:
Send Accept message
Power = Explicit Contract
PD = Connected
Accept message sent &
Not presently VCONN Source1
Accept message sent &
Presently VCONN Source1
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
1. A 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 2.0, Version 1.1 Page 419
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.
8.3.3.7.1.2 PE_VCS_Evaluate_Swap
The PE_VCS_Evaluate_Swap state is entered from either the PE_SRC_Ready or PE_SNK_Ready state when the Policy
Engine receives a VCONN_Swap Message.
On entry to the PE_VCS_Evaluate_Swap state the Policy Engine shall request the Device Policy Manager for an
evaluation of the VCONN Swap request.
The Policy Engine shall transition to the PE_VCS_Accept_Swap state when:
The Device Policy Manager indicates that a VCONN Swap is ok.
The Policy Engine shall transition to the PE_VCS_Reject_Swap state when:
The Device Policy Manager indicates that a VCONN Swap is not ok or
The Device Policy Manager indicates that a VCONN Swap cannot be done at this time.
8.3.3.7.1.4 PE_VCS_Reject_Swap
On entry to the PE_VCS_Reject_Swap state the Policy Engine shall request the Protocol Layer to send:
A Reject Message if the device is unable to perform a VCONN Swap at this time.
A Wait Message if further evaluation of the VCONN Swap request is required. Note: in this case it is expected that
the DFP will send a VCONN_Swap Message at a later time.
The Policy Engine shall transition back to either the PE_SRC_Ready or PE_SNK_Ready state when:
The Reject or Wait Message has been sent.
Page 420 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.7.1.5 PE_VCS_UFP_Wait_for_ VCONN
On entry to the PE_VCS_Wait_For_VCONN state the Policy Engine shall start the VCONNOnTimer.
The Policy Engine shall transition to the PE_VCS_Turn_Off_VCONN state when:
A PS_RDY Message is received.
The Policy Engine shall transition to either the PE_SRC_Hard_Reset or PE_SNK_Hard_Reset state when:
The VCONNOnTimer times out.
PE_SRC_Ready or PE_SNK_Ready
(UFP)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 421
A Structured VDM Discover Identity Command request is received from the DFP.
On entry to the PE_UFP_VDM_Get_Identity state the UFP shall request identity information from the Device Policy
Manager.
The Policy Engine shall transition to the PE_UFP_VDM_Send_Identity state when:
Identity information is received from the Device Policy Manager.
The Policy Engine shall transition to the PE_UFP_VDM_Get_Identity_NAK state when:
The Device Policy Manager indicates that the response to the Discover Identity request is NAK or BUSY.
PE_SRC_Ready or PE_SNK_Ready
(UFP)
Page 422 USB Power Delivery Specification Revision 2.0, Version 1.1
The Policy Engine shall transition to the PE_UFP_VDM_Get_SVIDs_NAK state when:
The Device Policy Manager indicates that the response to the Discover Identity request is NAK or BUSY.
8.3.3.8.2.3 PE_UFP_VDM_Get_SVIDs_NAK
On entry to the PE_UFP_VDM_Get_SVIDs_NAK state the Policy Engine shall send a Structured VDM Discover SVIDs NAK
or BUSY Command response as indicated by the Device Policy Manager.
The Policy Engine shall transition to either the PE_SRC_Ready or PE_SNK_Ready state for a UFP when:
The Structured VDM Discover SVIDs NAK or BUSY Command response has been sent.
PE_SRC_Ready or PE_SNK_Ready
(UFP)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 423
The Policy Engine shall transition to either the PE_SRC_Ready or PE_SNK_Ready state for a UFP when:
The Structured VDM Discover Modes ACK Command response has been sent.
8.3.3.8.3.3 PE_UFP_VDM_Get_Modes_NAK
On entry to the PE_CBL_Get_Modes_NAK state the Policy Engine shall send a Structured VDM Discover Modes NAK or
BUSY Command response as indicated by the Device Policy Manager.
The Policy Engine shall transition to either the PE_SRC_Ready or PE_SNK_Ready state for a UFP when:
The Structured VDM Discover Modes NAK or BUSY Command response has been sent.
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 424 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.8.4.2 PE_UFP_VDM_Mode_Entry_ACK state
On entry to the PE_UFP_VDM_Mode_Entry_ACK state the Policy Engine shall send a Structured VDM Enter Mode ACK
Command response.
The Policy Engine shall transition to either the PE_SRC_Ready or PE_SNK_Ready state for a UFP when:
The Structured VDM Enter Mode ACK Command response has been sent.
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 2.0, Version 1.1 Page 425
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.
PE_SRC_Ready or PE_SNK_Ready
(UFP)
PE_UFP_VDM_Attention_Request
Actions on entry:
Send Attention Command request
8.3.3.8.6.1 PE_UFP_VDM_Attention_Request
The Policy Engine transitions to the PE_UFP_VDM_Attention_Request state from either the PE_SRC_Ready or
PE_SNK_Ready state for a UFP when:
When the Device Policy Manager requests attention from the DFP.
On entry to the PE_UFP_VDM_Attention_Request state the Policy Engine shall send an Attention Command request.
The Policy Engine shall transition to either the PE_SRC_Ready or PE_SNK_Ready state for a UFP when:
The Attention Command request has been sent.
Page 426 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.9 DFP Structured VDM State Diagrams
PE_DFP_UFP_VDM_Identity_ACKed PE_DFP_UFP_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_DFP_UFP_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
(DFP)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 427
8.3.3.9.1.3 PE_DFP_VDM_Identity_NAKed state
On entry to the PE_DFP_UFP_VDM_Identity_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.
8.3.3.9.2 DFP to Cable Plug Structured VDM Discover Identity State Diagram
Figure 8-64 shows the state diagram for a DFP when discovering the identity of a Cable Plug.
PE_DFP_CBL_VDM_Identity_ACKed PE_DFP_CBL_VDM_Identity_NAKed
Actions on entry: Actions on entry:
Inform DPM of identity Inform DPM of result
Power = Explicit Contract Power = Explicit Contract
Cable Plug = PD Connected Cable Plug = PD Connected
PE_SRC_Ready or PE_SNK_Ready
(DFP)
Page 428 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.9.2.2 PE_DFP_VDM_Identity_ACKed state
On entry to the PE_DFP_CBL_VDM_Identity_ACKed state the Policy Engine shall inform the Device Policy Manager of
the Identity information.
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_DFP_VDM_SVIDs_ACKed PE_DFP_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_DFP_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
(DFP)
PE_DFP_VDM_Modes_ACKed PE_DFP_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_DFP_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
(DFP)
Page 430 USB Power Delivery Specification Revision 2.0, Version 1.1
The Policy Engine shall transition to the PE_DFP_VDM_Modes_ACKed state when:
A Structured VDM Discover Modes ACK Command response is received.
The Policy Engine shall transition to the PE_DFP_VDM_Modes_NAKed state when:
A Structured VDM Discover Modes NAK or BUSY Command response is received or
The VDMResponseTimer times out.
PE_DFP_VDM_Mode_Entry_ACKed PE_DFP_VDM_Mode_Entry_NAKed
DPM requests
Mode entry1
PE_SRC_Ready or PE_SNK_Ready
(DFP)
1
The Device Policy Manager is required to have place the system into USB Safe State before issuing this request when
entering Modal operation.
2
The Device Policy Manager is required to return the system to USB operation if not in Modal operation at this point.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 431
8.3.3.9.5.1 PE_DFP_VDM_Mode_Entry_Request state
The Policy Engine transitions to the PE_DFP_VDM_Mode_Entry_Request state from either the PE_SRC_Ready or
PE_SNK_Ready state for a DFP when:
The Device Policy Manager requests that the Port Partner or a Cable Plug enter a Mode.
On entry to the PE_DFP_VDM_Mode_Entry_Request state the Policy Engine shall send a Structured VDM Enter Mode
Command request and shall start the VDMModeEntryTimer.
The Policy Engine shall transition to the PE_DFP_VDM_Mode_Entry_ACKed state when:
A Structured VDM Enter Mode ACK Command response is received.
The Policy Engine shall transition to the PE_DFP_VDM_Mode_Entry_NAKed state when:
A Structured VDM Enter Mode NAK or BUSY Command response is received or
The VDMModeEntryTimer times out.
Page 432 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-69 DFP VDM Mode Exit State Diagram
PE_SRC_Ready or PE_SNK_Ready
(DFP)
DPM indicates
Mode exit
DPM informed1
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_PC_SNK_Hard_Reset Inform DPM of ACK or NAK
(DFP)
Power = Explicit Contract
PD = Connected
1
The Device Policy Manager is required to return the system to USB operation at this point when exiting Modal
Operation.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 433
Figure 8-70 DFP VDM Attention State Diagram
PE_SRC_Ready or PE_SNK_Ready
(DFP)
Attention Command
request received DPM informed
PE_DFP_VDM_Attention_Request
Actions on entry:
Inform Device Policy Manager of Attention Command request
8.3.3.9.7.1 PE_DFP_VDM_Attention_Request
The Policy Engine transitions to the PE_DFP_VDM_Attention_Request state from either the PE_SRC_Ready or
PE_SNK_Ready state for a DFP when:
An Attention Command request is received.
On entry to the PE_DFP_VDM_Attention_Request state the Policy Engine shall inform the Device Policy Manager of the
attention request.
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.
Power up |
Hard Reset Complete |
Cable Reset Complete
PE_CBL__Ready
Actions on entry:
Cable = Awake/Asleep
PD = Not Connected/Connected
Page 434 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.10.2 Cable Plug Structured VDM Discover Identity State Diagram
Figure 8-72 shows the state diagram for a Cable Plug in response to a Discover Identity Command.
Figure 8-72 Cable Plug Structured VDM Discover Identity State Diagram
PE_CBL__Ready
8.3.3.10.2.3 PE_CBL_Get_Identity_NAK
On entry to the PE_CBL_Get_Identity_NAK state the Policy Engine shall send a Structured VDM Discover Identity NAK
or BUSY Command response as indicated by the Device Policy Manager.
The Policy Engine shall transition to the PE_CBL_Ready state when:
The Structured VDM Discover Identity NAK or BUSY Command response has been sent.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 435
Figure 8-73 Cable Plug Structured VDM Discover SVIDs State Diagram
PE_CBL__Ready
8.3.3.10.3.3 PE_CBL_Get_SVIDs_NAK
On entry to the PE_CBL_Get_SVIDs_NAK state the Policy Engine shall send a Structured VDM Discover SVIDs NAK or
BUSY Command response as indicated by the Device Policy Manager.
The Policy Engine shall transition to the PE_CBL_Ready state when:
The Structured VDM Discover SVIDs NAK or BUSY Command response has been sent.
Page 436 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-74 Cable Plug Structured VDM Discover Modes State Diagram
PE_CBL__Ready
8.3.3.10.4.3 PE_CBL_Get_Modes_NAK
On entry to the PE_CBL_Get_Modes_NAK state the Policy Engine shall send a Structured VDM Discover Modes NAK or
BUSY Command response as indicated by the Device Policy Manager.
The Policy Engine shall transition to the PE_CBL_Ready state when:
The Structured VDM Discover Modes NAK or BUSY Command response has been sent.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 437
Figure 8-75 CablePlug 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.
Page 438 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.10.6 Cable Plug Structured VDM Exit Mode State Diagram
Figure 8-76 shows the state diagram for a Cable Plug in response to an Exit Mode Command.
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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 439
The Policy Engine shall transition to the PE_CBL_Ready state when:
The Structured VDM Exit Mode NAK Command response has been sent.
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
Page 440 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure 8-78 Cable Plug Hard Reset State Diagram
PE_CBL_Hard_Reset
Actions on entry:
Reset Cable Plug
Cable = Awake/Asleep
PD = Not Connected
PE_CBL_Ready
8.3.3.10.9 DFP Soft Reset or Cable Reset of a Cable Plug State Diagram
Figure 8-82 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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 441
Figure 8-79 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
1
Excludes Soft Reset itself.
Page 442 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.10.10 UFP Source Soft Reset of a Cable Plug State Diagram
Figure 8-82 below shows the state diagram for the Policy Engine in a UFP Source, prior to an Explicit Contract, when
performing a Soft Reset of a Cable Plug. The following sections describe operation in each of the states.
Figure 8-80 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
1
Excludes Soft Reset itself.
8.3.3.10.11 Source Startup Structured VDM Discover Identity of a Cable Plug State Diagram
Figure 8-81 shows the state diagram for Source discovery of identity information from a Cable Plug during the startup
sequence.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 443
Figure 8-81 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
1 If the Discover Identity message is being sent at startup then the Policy Engine will subsequently transition to the PE_SRC_Capabilities state as
normal. Otherwise the Policy Engine will transition to the PE_SRC_Discovery state.
2 The SourceCapabilitiesTimer 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 are sent out at a regular rate.
Page 444 USB Power Delivery Specification Revision 2.0, Version 1.1
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).
PE_SRC_Ready or
PE_SNK_Ready or
PE_CBL_Ready
PE_BIST_Frame_Received PE_BIST_Receive_Mode
Actions on entry: Test Frame received Actions on entry:
Consume Frame Tell Protocol Layer to go to BIST
Receive Mode
VBUS = vSafe5V VBUS = vSafe5V
PD = Connected PD = Connected
Hard Reset
Test Frame
received
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 445
8.3.3.11.1.1 PE_BIST_Receive_Mode state
The Source, Sink or Cable Plug shall enter the PE_BIST_Receive_Mode state from either the PE_SRC_Ready,
PE_SNK_Ready or PE_CBL_Ready state when:
A BIST Message is received with a BIST Receiver Mode BIST Data Object and VBUS is at vSafe5V.
On entry to the PE_BIST_Receive_Mode state the Policy Engine shall tell the Protocol Layer to go to BIST Receive
Mode.
The Policy Engine shall transition to the PE_BIST_Frame_Received state when:
A Test Frame is received.
The Policy Engine shall transition to either the PE_SRC_Transition_to_default state, PE_SNK_Transition_to_default
state or or PE_CBL_Ready state (as appropriate) when:
Hard Reset Signaling is received.
Page 446 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.11.2 BIST Transmit Mode State Diagram
Figure 8-83 shows the state diagram required by a UUT that can be either a Source , Sink or Cable Plug, when
operating in BIST Transmit Mode. Transitions to PE_BIST_Transmit_Mode state shall be from either the
PE_SRC_Ready, PE_SNK_Ready or PE_CBL_Ready state. See Section 5.9.9 for which tests are applicable to BFSK and
BMC.
PE_SRC_Ready or
PE_SNK_Ready or
PE_CBL_Ready
PE_BIST_Send_Frame PE_BIST_Transmit_Mode
Protocol Layer in
Actions on entry: BIST Transmit Mode Actions on entry:
Tell Protocol Layer to send the BIST Tell Protocol Layer to go to BIST
Transmit Mode Test Frame Transmit Mode
VBUS = vSafe5V VBUS = vSafe5V
PD = Connected PD = Connected
Hard Reset
Figure 8-84 BIST Carrier Mode and Eye Pattern State Diagram
PE_SRC_Ready or
PE_SNK_Ready or
PE_CBL_Ready
VBUS = vSafe5V VBUS = vSafe5V VBUS = vSafe5V VBUS = vSafe5V VBUS = vSafe5V
PD = Connected PD = Connected PD = Connected PD = Connected PD = Connected
BISTContModeTimer
BISTContModeTimer
BISTContModeTimer BISTContModeTimer timeout BISTContModeTimer
timeout
timeout timeout timeout
PE_SRC_Transition_to_default or
PE_SNK_Transition_to_default or
PE_CBL_Ready
Page 448 USB Power Delivery Specification Revision 2.0, Version 1.1
On entry to the PE_BIST_Carrier_Mode_0 state the Policy Engine shall tell the Protocol Layer to go to BIST Carrier
Mode 0 and shall initialize and run the BISTContModeTimer.
The Policy Engine shall transition to either the PE_SRC_Transition_to_default state, PE_SNK_Transition_to_default
state or or PE_CBL_Ready state (as appropriate) when:
The BISTContModeTimer times out.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 449
8.3.3.12.1 ErrorRecovery state
The ErrorRecovery state is used to electronically disconnect Port Partners using the Type-C connector. The
ErrorRecovery state shall be entered when there are errors on Type-C Ports which cannot be recovered by Hard
Reset. The ErrorRecovery state shall map to Type-C ErrorRecovery state operation as defined in the [USBType-C 1.0]
specification, including any other state transitions mandated in cases where Type-C ErrorRecovery is not supported.
On entry to the ErrorRecovery state the Contract and PD Connection shall be ended.
On exit from the ErrorRecovery state a new Explicit Contract should be established once the Port Partners have re-
connected over the CC wire.
Page 450 USB Power Delivery Specification Revision 2.0, Version 1.1
8.3.3.13 Policy Engine States
Table 8-33 lists the states used by the various state machines.
PE_SRC_Send_Capabilities 8.3.3.2.3
PE_SRC_Negotiate_Capability 8.3.3.2.4
PE_SRC_Transition_Supply 8.3.3.2.5
PE_SRC_Ready 8.3.3.2.6
PE_SRC_Disabled 8.3.3.2.7
PE_SRC_Capability_Response 8.3.3.2.8
PE_SRC_Hard_Reset 8.3.3.2.9
PE_SRC_Hard_Reset_Received 8.3.3.2.10
PE_SRC_Transition_to_default 8.3.3.2.11
PE_SRC_Give_Source_Cap 8.3.3.2.12
PE_SRC_Get_Sink_Cap 8.3.3.2.13
PE_SRC_Wait_New_Capabilities 8.3.3.2.14
Sink Port
PE_SNK_Startup 8.3.3.3.1
PE_SNK_Discovery 8.3.3.3.2
PE_SNK_Wait_for_Capabilities 8.3.3.3.3
PE_SNK_Evaluate_Capability 8.3.3.3.4
PE_SNK_Select_Capability 8.3.3.3.5
PE_SNK_Transition_Sink 8.3.3.3.6
PE_SNK_Ready 8.3.3.3.7
PE_SNK_Hard_Reset 8.3.3.3.8
PE_SNK_Transition_to_default 8.3.3.3.9
PE_SNK_Give_Sink_Cap 8.3.3.3.10
PE_SNK_Get_Source_Cap 8.3.3.3.11
Source Port Soft Reset
PE_SRC_Send_Soft_Reset 8.3.3.4.1.1
PE_SRC_Soft_Reset 8.3.3.4.1.2
Sink Port Soft Reset
PE_SNK_Send_Soft_Reset 8.3.3.4.2.1
PE_SNK_Soft_Reset 8.3.3.4.2.2
Source Port Ping
PE_SRC_Ping 8.3.3.5.1
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 451
State name Section
Type-A/B Dual-Role (initially Source Port) Ping
PE_PRS_SRC_SNK_Ping 8.3.3.6.1.1.1
Type-A/B Dual-Role (initially Sink Port) Ping
PE_PRS_SNK_SRC_Ping 8.3.3.6.1.2.1
Type-A/B Hard Reset of P/C in Sink Role
PE_PC_SNK_Hard_Reset 8.3.3.6.1.3.1
PE_PC_SNK_Swap_Recovery 8.3.3.6.1.3.2
Type-A/B Hard Reset of C/P in Source Role
PE_CP_SRC_Hard_Reset 8.3.3.6.1.4.1
PE_CP_SRC_Transition_to_off 8.3.3.6.1.4.2
Type-A/B C/P Dead Battery/Power Loss
PE_DB_CP_Check_for_VBUS 8.3.3.6.1.5.1
PE_DB_CP_Power_VBUS_DB 8.3.3.6.1.5.2
PE_DB_CP_Wait_For_Bit_Stream 8.3.3.6.1.5.3
PE_DB_CP_Power_VBUS_5V 8.3.3.6.1.5.4
PE_DB_CP_Wait_Bit_Stream_Stop 8.3.3.6.1.5.5
PE_DB_CP_Unpower_VBUS 8.3.3.6.1.5.6
PE_DB_CP_PS_Discharge 8.3.3.6.1.5.7
Type-A/B P/C Dead Battery/Power Loss
PE_DB_PC_Unpowered 8.3.3.6.1.6.1
PE_DB_PC_Check_Power 8.3.3.6.1.6.2
PE_DB_PC_Send_Bit_Stream 8.3.3.6.1.6.3
PE_DB_PC_Wait_to_Detect 8.3.3.6.1.6.4
PE_DB_PC_Wait_to_Start 8.3.3.6.1.6.5
Type-C DFP to UFP Data Role Swap
PE_DRS_DFP_UFP_Evaluate_DR_Swap 8.3.3.6.2.1.2
PE_DRS_DFP_UFP_Accept_DR_Swap 8.3.3.6.2.1.3
PE_DRS_DFP_UFP_Change_to_UFP 8.3.3.6.2.1.4
PE_DRS_DFP_UFP_Send_DR_Swap 8.3.3.6.2.1.5
PE_DRS_DFP_UFP_Reject_DR_Swap 8.3.3.6.2.1.6
Type-C UFP to DFP Data Role Swap
PE_DRS_UFP_DFP_Evaluate_DR_Swap 8.3.3.6.2.2.2
PE_DRS_UFP_DFP_Accept_DR_Swap 8.3.3.6.2.2.3
PE_DRS_UFP_DFP_Change_to_DFP 8.3.3.6.2.2.4
PE_DRS_UFP_DFP_Send_DR_Swap 8.3.3.6.2.2.5
PE_DRS_UFP_DFP_Reject_DR_Swap 8.3.3.6.2.2.6
Source to Sink Power Role Swap
PE_PRS_SRC_SNK_Evaluate_PR_Swap 8.3.3.6.3.1.2
PE_PRS_SRC_SNK_Accept_PR_Swap 8.3.3.6.3.1.3
PE_PRS_SRC_SNK_Transition_to_off 8.3.3.6.3.1.4
Page 452 USB Power Delivery Specification Revision 2.0, Version 1.1
State name Section
PE_PRS_SRC_SNK_Assert_Rd 8.3.3.6.3.1.5
PE_PRS_SRC_SNK_Wait_Source_on 8.3.3.6.3.1.6
PE_PRS_SRC_SNK_Send_PR_Swap 8.3.3.6.3.1.7
PE_PRS_SRC_SNK_Reject_PR_Swap 8.3.3.6.3.1.8
Sink to Source Power Role Swap
PE_PRS_SNK_SRC_Evaluate_PR_Swap 8.3.3.6.3.2.2
PE_PRS_SNK_SRC_Accept_PR_Swap 8.3.3.6.3.2.3
PE_PRS_SNK_SRC_Transition_to_off 8.3.3.6.3.2.4
PE_PRS_SNK_SRC_Assert_Rp
PE_PRS_SNK_SRC_Source_on 8.3.3.6.3.2.5
PE_PRS_SNK_SRC_Send_PR_Swap 8.3.3.6.3.2.7
PE_PRS_SNK_SRC_Reject_PR_Swap 8.3.3.6.3.2.8
Dual-Role Source Port Get Source Capabilities
PE_DR_SRC_Get_Source_Cap 8.3.3.6.3.3.1
Dual-Role Source Port Give Sink Capabilities
PE_DR_SRC_Give_Sink_Cap 8.3.3.6.3.4.1
Dual-Role Sink Port Get Sink Capabilities
PE_DR_SNK_Get_Sink_Cap 8.3.3.6.3.5.1
Dual-Role Sink Port Give Source Capabilities
PE_DR_SNK_Give_Source_Cap 8.3.3.6.3.6.1
Type-C VCONN Swap
PE_VCS_Send_Swap 8.3.3.7.1.1
PE_VCS_Evaluate_Swap 8.3.3.7.1.2
PE_VCS_Accept_Swap 8.3.3.7.1.3
PE_VCS_Reject_Swap 8.3.3.7.1.4
PE_VCS_Wait_For_VCONN 8.3.3.7.1.5
PE_VCS_Turn_Off_VCONN 8.3.3.7.1.6
PE_VCS_Turn_On_VCONN 8.3.3.7.1.7
PE_VCS_Send_Ps_Rdy 8.3.3.7.1.8
UFP Structured VDM
UFP Structured VDM Discovery Identity
PE_UFP_VDM_Get_Identity 8.3.3.8.1.1
PE_UFP_VDM_Send_Identity 8.3.3.8.1.2
PE_UFP_VDM_Get_Identity_NAK 8.3.3.8.1.3
UFP Structured VDM Discovery SVIDs
PE_UFP_VDM_Get_SVIDs 8.3.3.8.2.1
PE_UFP_VDM_Send_SVIDs 8.3.3.8.2.2
PE_UFP_VDM_Get_SVIDs_NAK 8.3.3.8.2.3
UFP Structured VDM Discovery Modes
PE_UFP_VDM_Get_Modes 8.3.3.8.3.1
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 453
State name Section
PE_UFP_VDM_Send_Modes 8.3.3.8.3.2
PE_UFP_VDM_Get_Modes_NAK 8.3.3.8.3.3
UFP Structured VDM Enter Mode
PE_UFP_VDM_Evaluate_Mode_Entry 8.3.3.8.4.1
PE_UFP_VDM_Mode_Entry_ACK 8.3.3.8.4.2
PE_UFP_VDM_Mode_Entry_NAK 8.3.3.8.4.3
UFP Structured VDM Exit Mode
PE_UFP_VDM_Mode_Exit 8.3.3.8.5.1
PE_UFP_VDM_Mode_Exit_ACK 8.3.3.8.5.2
PE_UFP_VDM_Mode_Exit_NAK 8.3.3.8.5.3
UFP Structured VDM Attention
PE_UFP_VDM_Attention_Request 8.3.3.8.6.1
DFP Structured VDM
DFP to UFP Structured VDM Discover Identity
PE_DFP_UFP_VDM_Identity_Request 8.3.3.9.1.1
PE_DFP_UFP_VDM_Identity_ACKed 8.3.3.9.1.2
PE_DFP_UFP_VDM_Identity_NAKed 8.3.3.9.1.3
DFP to Cable Plug Structured VDM Discover Identity
PE_DFP_CBL_VDM_Identity_Request 8.3.3.9.2.1
PE_DFP_CBL_VDM_Identity_ACKed 8.3.3.9.2.2
PE_DFP_CBL_VDM_Identity_NAKed 8.3.3.9.2.3
DFP Structured VDM Discover SVIDs
PE_DFP_VDM_SVIDs_Request 8.3.3.9.3.1
PE_DFP_VDM_SVIDs_ACKed 8.3.3.9.3.2
PE_DFP_VDM_SVIDs_NAKed 8.3.3.9.3.3
DFP Structured VDM Discover Modes
PE_DFP_VDM_Modes_Request 8.3.3.9.4.1
PE_DFP_VDM_Modes_ACKed 8.3.3.9.4.2
PE_DFP_VDM_Modes_NAKed 8.3.3.9.4.3
DFP Structured VDM Mode Entry
PE_DFP_VDM_Mode_Entry_Request 8.3.3.9.5.1
PE_DFP_VDM_Mode_Entry_ACKed 8.3.3.9.5.2
PE_DFP_VDM_Mode_Entry_NAKed 8.3.3.9.5.3
DFP Structured VDM Mode Exit
PE_DFP_VDM_Mode_Exit_Request 8.3.3.9.6.1
PE_DFP_VDM_Mode_Exit_ACKed 8.3.3.9.6.2
DFP Structured VDM Attention
PE_DFP_VDM_Attention_Request 8.3.3.9.7.1
Cable Plug Related
Cable Ready
PE_CBL_Ready 8.3.3.10.1.1
Page 454 USB Power Delivery Specification Revision 2.0, Version 1.1
State name Section
Discover Identity
PE_CBL_Get_Identity 8.3.3.10.2.1
PE_CBL_Send_Identity 8.3.3.10.2.2
PE_CBL_Get_Identity_NAK 8.3.3.10.2.3
Discover SVIDs
PE_CBL_Get_SVIDs 8.3.3.10.3.1
PE_CBL_Send_SVIDs 8.3.3.10.3.2
PE_CBL_Get_SVIDs_NAK 8.3.3.10.3.3
Discover Modes
PE_CBL_Get_Modes 8.3.3.10.4.1
PE_CBL_Send_Modes 8.3.3.10.4.2
PE_CBL_Get_Modes_NAK 8.3.3.10.4.3
Mode Entry
PE_CBL_Evaluate_Mode_Entry 8.3.3.10.5.1
PE_CBL_Mode_Entry_ACK 8.3.3.10.5.2
PE_CBL_Mode_Entry_NAK 8.3.3.10.5.3
Mode Exit
PE_CBL_Mode_Exit 8.3.3.10.6.1
PE_CBL_Mode_Exit_ACK 8.3.3.10.6.2
PE_CBL_Mode_Exit_NAK
Cable Soft Reset
PE_CBL_Soft_Reset 8.3.3.10.7.1
Cable Hard Reset
PE_CBL_Hard_Reset 8.3.3.10.8.1
DFP Soft Reset or Cable Reset
PE_DFP_CBL_Send_Soft_Reset 8.3.3.10.9.1
PE_DFP_CBL_Send_Cable_Reset 8.3.3.10.9.2
UFP Source Soft Reset
PE_UFP_CBL_Send_Soft_Reset 8.3.3.10.10
Source Startup Structured VDM Discover Identity
PE_SRC_VDM_Identity_Request 8.3.3.10.11.1
PE_SRC_VDM_Identity_ACKed 8.3.3.10.11.2
PE_SRC_VDM_Identity_NAKed 8.3.3.10.11.3
BIST Receive Mode
PE_BIST_Receive_Mode 8.3.3.11.1.1
PE_BIST_Frame_Received 8.3.3.11.1.2
BIST Transmit Mode
PE_BIST_Transmit_Mode 8.3.3.11.2.1
PE_BIST_Send_Frame 8.3.3.11.2.2
BIST Carrier Mode and Eye Pattern
PE_BIST_Eye_Pattern_Mode 8.3.3.11.3.1
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 455
State name Section
PE_BIST_Carrier_Mode_0 8.3.3.11.3.2
PE_BIST_Carrier_Mode_1 8.3.3.11.3.3
PE_BIST_Carrier_Mode_2 8.3.3.11.3.4
PE_BIST_Carrier_Mode_3 8.3.3.11.3.5
Type-C referenced states
ErrorRecovery 8.3.3.12.1
Page 456 USB Power Delivery Specification Revision 2.0, Version 1.1
9. System Policy
9.1 Overview
This chapter describes the requirements of the USB Power Delivery Specification’s System Policy and Status
mechanisms for devices with data connections (e.g. D+/D- and or SSTx+/- and SSRx+/-). The Policies themselves are
not described here; these are left to the implementers of the relevant products and systems to define. The aim of
these mechanisms is to support a System USB Power Delivery Policy Manager (SPM) which:
Provides feedback of system power status to the end user as and when appropriate
Provides co-ordination of system power resources based on a system wide policy when enabled
Exposes relevant policy settings to the end user
Allows a device to report its capabilities in relation to the power it draws
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.3.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], [USBType-C 1.0] or
[BC 1.2]. When operating in [USB 2.0], [USB 3.1], [USBType-C 1.0] or [BC 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 2.0, Version 1.1 Page 457
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. Control information comes from the SPM to the Provider or Consumer allowing
the SPM to manage resources at a system level and expose relevant settings to the end user.
Real systems will be a mixture of devices which in terms of power management support may have implemented PD,
[USB 2.0], [USB 3.1], [USBType-C 1.0] or [BC 1.2] or they may 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 System Policies and Status mechanisms is to provide a mechanism whereby each connected entity in the system
provides as much information as possible on the status of itself and, in the case of hubs, its downstream ports. This
will enable the PM to build up as comprehensive a picture of the system as possible.
Page 458 USB Power Delivery Specification Revision 2.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 2.0, Version 1.1 Page 459
9.1.2 Mapping to USB Device States
As mentioned in Section 9.1 a PDUSB Device reports itself as a self-powered device. However, the device shall
determine whether or not it is in the USB Attached or USB Powered states as described in Figure 9-3, Figure 9-4 and
Figure 9-5. All other USB states of the PDUSB Device shall be as described in Chapter 9 of [USB 2.0] and [USB 3.1].
Figure 9-3 shows how a PDUSB Device determines when to transition from the USB Attached to the USB Powered
state. Figure 9-3 also shows Dead Battery operation for a Type-A to Type-B connection (see Section 4.1.1). 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)
Attached
Yes Type-A P/C Yes
Type-B C/P?
wants to be
charged?
C/P Consumer/Provider
No No
P/C Provider/Consumer
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 Sections 8.3.2.7.1.1 and 8.3.2.7.1.2. See Section 7.1.6 for additional information on device behavior
during Hard Resets.
Page 460 USB Power Delivery Specification Revision 2.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 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 0. A Hard
Reset will also return a Sink acting as a PDUSB Host to PDUSB Device operation as described in Section 0. See Section
7.1.6 for additional information on device behavior during Hard Resets.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 461
Figure 9-6 Any USB State to USB Attached State Transition (After a Type-C Data Role Swap)
Hard Reset
No Changes Data
Role
Swapping
Any USB VBUS Yes Data
Yes USB
State Present Attached
Roles?
Page 462 USB Power Delivery Specification Revision 2.0, Version 1.1
9.1.4 PDUSB Device Enumeration
As described earlier, a PDUSB Device acts as a self-powered device with some caveats with respect to how it
transitions from the USB Attached state to USB Powered state. Figure 9-8 gives a high level overview of the
enumeration steps involved due to this change. A PDUSB Device will first (Step1) interact with the Power Delivery
hardware and the Local Policy manager to determine whether or not it can get sufficient power to
enumerate/operate. Note: PD is likely to have established a Contract prior to enumeration. The SPM will be notified
(Step 2) of the result of this negotiation between the Power Delivery hardware and the PDUSB Device. It may request
changes to the Local Policy manager if it deems it necessary. After successfully negotiating a mutually agreeable
Contract the device will signal a connect to the xHC. The standard USB enumeration process (Steps 3, 4 and 5) is then
followed to load the appropriate driver for the function(s) that the PDUSB Device exposes.
It is the responsibility of the SPM to ensure that the total amount of power supplied to a PDUSB Device is sufficient to
run as many of the functions exposed by the device as software needs to operate at the same time.
Note that the interfaces between the SPM and USB Power Delivery blocks in Figure 9-7 are outside scope of this
specification.
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 2.0, Version 1.1 Page 463
9.2 PD Class 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.
Bit Description
Page 464 USB Power Delivery Specification Revision 2.0, Version 1.1
Offset Field Size Value Description
to indicate that this device is a
consumer of power. This field is only
valid if Bit 2 is set to one.
8 AC Supply
9 Battery
10 Other
14 Uses VBUS
8 bmProviderPorts 2 Bitmap The bit corresponding to the Port shall be set to one to
indicate that this device is capable of providing power on that
Port. (Either BC 1.2, USB Type-C Current or PD)
Bit zero refers to the UFP of the device. Bits one through
fifteen are only valid for hubs and refers to the downstream
ports of the hub.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 465
Offset Field Size Value Description
10 bmConsumerPorts 2 Bitmap The bit corresponding to the Port shall be set to one to
indicate that this device is capable of consuming power on
that Port. (Either BC 1.2, USB Type-C Current or PD).
Bit zero refers to the UFP of the device. Bits one through
fifteen are only valid for hubs and refers to the downstream
ports of the hub.
3 iBattery 1 Index Index of string descriptor shall contain the user friendly name
for this battery.
4 iSerial 1 Index Index of string descriptor shall contain the Serial Number
String for this battery.
5 iManufacturer 1 Index Index of string descriptor shall contain the name of the
Manufacturer for this battery.
6 bBatteryId 1 Number Value shall be used to uniquely identify this battery in status
Messages.
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).
Page 466 USB Power Delivery Specification Revision 2.0, Version 1.1
Offset Field Size Value Description
20 dwBatteryLastFullcharge 4 mWh Shall contain the maximum capacity of the battery when fully
Capacity charged.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 467
Table 9-4 PD Consumer Port Descriptor
4 bmCapabilities 2 Bitmap Capability: This field shall indicate the specification the
Consumer Port will operate under.
Bit Description
6 wMinVoltage 2 Number Shall contain the minimum voltage in 50mV units that this
Consumer is capable of operating at.
8 wMaxVoltage 2 Number Shall contain the maximum voltage in 50mV units that this
Consumer is capable of operating at.
12 dwMaxOperatingPower 4 Number Shall contain the maximum power in 10mW units this
Consumer can draw when it is in a steady state operating
mode.
16 dwMaxPeakPower 4 Number Shall contain the maximum power in 10mW units this
Consumer can draw for a short duration of time
(dwMaxPeakPowerTime) before it falls back into a steady
state.
20 dwMaxPeakPowerTime 4 Number Shall contain the time in 100ms units that this Consumer can
draw peak current.
Page 468 USB Power Delivery Specification Revision 2.0, Version 1.1
Table 9-5 PD Provider Port Descriptor
4 bmCapabilities 2 Bitmap This field shall indicate the specification the Provider Port
will operation under.
Bit Description
8 wPowerDataObject1 4 Bitmap Shall contain the first Power Data Object supported by this
Provider Port. See Section 6.4.1 for details of the Power Data
Objects.
… … … … …
N+4 wPowerDataObjectN 4 Bitmap Shall contain the 2nd and subsequent Power Data Objects
supported by this Provider Port. See Section 6.4.1 for details
of the Power Data Objects.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 469
9.3 PD Class Specific Requests and Events
A PDUSB Hub that is compliant to this specification shall support the PD specific requests and events detailed in this
section irrespective of whether the PDUSB Hub is a Power Provider, a Power Consumer, or both.
A PDUSB Device that is compliant to this specification shall support the battery related requests if it has a battery.
The events shall be sent to the system software in response to changes on the PDUSB Hub ports that are not a direct
result of a request from system software. These notifications shall be sent over the Interrupt endpoint of a PDUSB
Hub.
Note that a PDUSB Hub shall only send these notifications, or respond to PD requests (except for GetBatteryStatus); if
it has been made aware that the SPM is active on the host as detailed in Section 9.4.4.
GetPartnerPDO1 10100011B GET_PARTNER_PDO Zero or One Port Number Variable Power Data
Objects
bRequest Value
GET_PARTNER_PDO 20
GET_BATTERY_STATUS 21
SET_PDO 22
Page 470 USB Power Delivery Specification Revision 2.0, Version 1.1
bRequest Value
GET_VDM 23
SEND_VDM 24
Table 9-8 gives the valid feature selectors for the PD class. Refer to Sections 9.4.1, 9.4.5 and 9.4.6 for a description of
the features.
OS_IS_PD_AWARE Device 41
POLICY_MODE Device 42
PR_SWAP Port 43
GOTO_MIN Port 44
RETURN_POWER Port 45
ACCEPT_PD_REQUEST Port 46
REJECT_PD_REQUEST Port 47
PORT_PD_RESET Port 48
C_PORT_PD_CHANGE Port 49
CABLE_PD_RESET Port 50
CHARGING_POLICY Device 54
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 471
Figure 9-9 Hub Status Change
In order to indicate that a PD change occurred, a PDUSB Hub compliant to the PD class shall set Bit 15
C_PORT_PD_CHANGE in the Port Change field when queried using the standard Get Port Status request.
A PDUSB Hub shall send these notifications for all downstream ports irrespective of whether it is a Consumer or
Provider on that Port. For example, if a PDUSB Peripheral is a Provider on one of the downstream ports and it starts a
negotiation to change the amount of power it will deliver – the PDUSB Hub sends a Port Change notification to the
SPM. However, if the PDUSB Hub loses all power (e.g. the power Provider is unplugged) then it is sufficient if the
PDUSB Hub disconnects from the downstream Port it is attached to without sending any notifications.
Page 472 USB Power Delivery Specification Revision 2.0, Version 1.1
9.4 PDUSB Hub and PDUSB Peripheral Device Requests
9.4.1 ClearPortPDFeature (PDUSB Hub)
This request resets a value reported in the PDUSB Hub status. This request is only valid for hubs.
bmRequestType bRequest WValue wIndex wLength Data
00100011B CLEAR_FEATURE Feature Selector Port Number Two Clear Change Mask
The Port number shall be a valid Port number for that PDUSB Hub, greater than zero. The Port field is located in bits
7..0 of the wIndex field.
Refer to Table 9-8 for the feature selector definitions that shall apply to the Port as a recipient. If the feature selector
is associated with a status change, the Clear Change Mask shall define the status changes that are being acknowledged
by the SPM. Only when all the status changes in PD Status Change field (see Table 9-11) are acknowledged shall the
hub clear the C_PORT_PD_CHANGE bit in the Port’s Port Change field. The Clear Change Mask is defined in Table 9-9.
0 Reserved
1 External supply.
6 PD Reset Complete
7 Insertion Detect
8 PD Capable Cable
9 Request Rejected
10 Reserved
13 VDM Received
14 Reserved
15 Error
It shall be a Request Error if wValue is not a feature selector listed in Table 9-8, or if wIndex specifies a Port that does
not exist, or if wLength is not as specified above.
If the PDUSB Hub is not configured, the PDUSB Hub's response to this request is undefined.
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.
0 bBatteryAttributes 1 Number Shall indicate whether a battery is installed and whether this
is charging or discharging.
Value Description
0 There is no battery
1 bBatterySOC 1 Number Shall indicate the Battery State of Charge given as percentage
value from Battery Remaining Capacity.
2 bBatteryStatus 1 Number If a battery is present shall indicate the present status of the
battery.
Value Meaning
0 No error
3 Over-temp shutdown
4 Over-voltage shutdown
5 Over-current shutdown
6 Fatigued battery
7 Unspecified error
Page 474 USB Power Delivery Specification Revision 2.0, Version 1.1
Offset Field Size Value Description
3 bRemoteWakeCapStatus 1 Bitmap If the device supports remote wake, then the device shall
support Battery Remote wake events. The default value for
the Remote wake events shall be turned off (set to zero) and
can be enable/disabled by the host as required. If set to one
the device shall generate a wake event when a change of
status occurs. See Section 9.4.5 for more details.
Bit Description
1 Charging flow
2 Battery error
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.
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”.
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.
Power Data
10100011B GET_PARTNER_PDO Zero or one Port Number Variable
Objects
The wIndex field shall indicate the Port number to which a PDUSB Device is attached. The Port number shall be a valid
Port number for that PDUSB Hub, greater than zero.
When this request is received by the PDUSB Hub it shall return the Consumer PDOs (if wValue is set to zero) or
Provider PDOs (if wValue is set to one) for the PDUSB Device connected on the downstream Port indicated by the
wIndex field. The PDUSB Hub shall use PD mechanisms (see Section 6.3.8) to retrieve the Power Data Objects from the
PDUSB Device.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 475
The wLength field shall specify the number of bytes to return. The maximum length of this field is a function of the
maximum number of PDOs a PDUSB Device can return as defined in Section 6.2.1.2. If the device on the Partner Port
does not support PD, then the PDUSB Hub shall respond with a Request Error.
If the PDUSB Hub is not configured, the PDUSB Hub's response to this request is undefined.
The wIndex field shall indicate the PD capable Port that is being queried. The Port number shall be a valid Port
number for that PDUSB Hub, greater than zero.
If wValue or wLength are not as specified above, then the behavior of the PDUSB Hub is not specified.
If a Port is specified that does not exist, then the PDUSB Hub shall respond with a Request Error. The PD status
changes on the Port are indicated in the PD Status Change field. The SPM can acknowledge the Port Change
notifications via the Clear Port PD Feature (See Section9.4.1).
If the PDUSB Hub is not configured, the PDUSB Hub's response to this request is undefined.
A GetPDStatus () request to a PDUSB Hub shall return the information as shown in Table 9-11.
Bit Description
0:15 PD Status Change: A one in the bit position shall indicate the types of status changes that have occurred on the Port.
Bit Change Indicated
1 External supply. When set, the Supply field shall indicate the current status of the supply.
2 Port operation mode. When set the Port Operation Mode field shall indicated the current
operational mode of the Port.
3 Supported Provider Capabilities. When set, the SPM shall get the updated Power Data
Objects from by retrieving the BOS Descriptor from the PDUSB Hub.
4 Negotiated power level. When set, the Request Data Object field shall indicate the newly
negotiated power level if the PDUSB Hub was operating in Non-Intrusive mode. If the
PDUSB Hub is working in intrusive mode then, when set, the Request Data Object field
shall indicate the power level that the Port partner wants to operate at.
5 New power direction. When set, this field shall indicate that the power direction has
changed if the PDUSB Hub was operating in Non-Intrusive mode. If the PDUSB Hub is
working in intrusive mode then, when set, this field shall indicate the Port partner wants to
perform a Power Role Swap.
6 PD Reset Complete. When set, this field shall indicate that a PD Hard Reset or a Cable Reset
has completed. When this bit is set, then the other bits in the PD Status Change field shall
report their change status as if the PDUSB Hub was working in Non-Intrusive mode.
7 Insertion Detect. When set, the Insertion Detect field shall indicate the current status of
whether a cable is plugged into this Port.
8 PD Capable Cable. When set, the PD Capable Cable field shall indicate the current status of
Page 476 USB Power Delivery Specification Revision 2.0, Version 1.1
Bit Description
whether a PD Capable Cable is plugged into this Port.
9 Request Rejected. This bit shall be only valid if the PDUSB Hub is operating in Non-
Intrusive mode. When set, this field shall indicate one of two conditions:
the PDUSB Hub received a request to change the power level (Negotiated power level (Bit
4) bit in this field shall be set) that was rejected or
the PDUSB Hub received a request to perform a Power Role Swap (New power direction
bit (Bit 5) in this field shall be set) that was rejected.
11 Hybrid Mode Request. This bit shall only be set by the PDUSB Hub when it is operating in
Hybrid mode. If this bit is set, then bits 4 and 5 (Negotiated power level and New power
direction) shall be interpreted as if the hub was operating in Intrusive mode.
12 Power Role Swap Completed. This shall be set when the hub completes a Power Role Swap
requested by the SPM. The SPM can determine if the Swap request was successful or
unsuccessful based on the PD Direction bit.
13 VDM Received. When set, the SPM shall use the Get VDMs command (see section 9.4.8) to
get further details on this notification.
15 Error. When set, this field shall indicate that an unknown error has occurred on the Port.
16 Supply: This field shall indicate the type of supply that is attached to this Port. This field shall map directly to the
“Externally Powered” bit provided as part of the Source or Sink Capabilities Message (see Section 6.4.1).
Value Meaning
0 No Supply
1 Supply Present
17:19 Port Operation Mode: The field shall indicate the current mode of operation of the Port.
Value Meaning
0 No Consumer
1 Legacy
2 BC
3 PD
4 Type-C Current
5-7 Reserved
20 Insertion Detect: The field shall indicate the current status of whether a cable is plugged into this Port.
Value Meaning
0 No cable detected
1 Cable detected
21 PD Capable Cable: The field shall indicate the current status of whether a PD Capable cable is plugged into this Port.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 477
Bit Description
Value Meaning
22 PD Direction. The field shall indicate whether the Port is operating as a Consumer or provider.
Value Meaning
32:63 Request Data Object: This field shall return the currently negotiated power level if the hub was operating in Non-
Intrusive mode. If the PDUSB Hub is working in intrusive mode then this field shall indicate the power level that the Port
partner wants to operate at. See Table 6-13 for additional information on the contents of this data structure.
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
OS_IS_PD_AWARE (Only valid for PDUSB Hubs)
POLICY_MODE (Only valid for PDUSB Hubs)
CHARGING_POLICY
Bit Description
Page 478 USB Power Delivery Specification Revision 2.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
If the Policy Mode is set to Intrusive, then the PDUSB Hub shall be set to operate in Intrusive mode. If the Policy Mode
is set to Local or Hybrid, the hub shall be set to operate in Non-Intrusive mode.
When the Policy Mode is set to Intrusive then the PDUSB Hub shall pass any requests that need policy decisions to be
made to the SPM and use PD mechanisms to delay the completion of PD Requests (e.g. using the Wait Message) over
PD. When the Policy Mode is set to Hybrid then only requests which cannot be accommodated by the PDUSB Hub
shall be sent to the SPM.
Some requests are only valid when the PDUSB Hub is operating in Intrusive mode. The requests that are valid in
Intrusive mode are indicated as such in the description for those requests. In addition notifications that operate
differently in Intrusive mode are also called out in the description of those notifications.
It shall be a Request Error if wValue is not a feature selector listed in Table 9-8 or if wIndex is not set to a value as
specified above.
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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 479
Value Description
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.
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 6 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.
The wIndex field shall indicate the PD capable Port that is being queried. The Port number shall be a valid Port
number for that hub, greater than zero.
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:
PR_SWAP
GOTO_MIN
RETURN_POWER
ACCEPT_PD_REQUEST
REJECT_PD_REQUEST
PORT_PD_RESET
CABLE_PD_RESET
When operating in intrusive mode the PDUSB Hub shall respond with a Wait Message when it receives any Request
Message.
When the feature selector is set to PR_SWAP then the PDUSB Hub shall initiate a Power Role Swap with the Port
partner on the specified Port. See Section 7.3.9 and Section 7.3.10 for details on the PR_Swap Message.
When the feature selector is set to GOTO_MIN and the downstream Port is operating as a Provider, then the PDUSB
Hub shall send the GotoMin Message to the Port partner on the specified Port. See Section 6.3.2 for details on the
GotoMin Message.
Page 480 USB Power Delivery Specification Revision 2.0, Version 1.1
When the feature selector is set to RETURN_POWER and the downstream Port is operating as a Provider, then the
PDUSB Hub shall return the power that it borrowed from the PD Device on that Port.
When the feature selector is set to ACCEPT_PD_REQUEST then the PDUSB Hub shall accept the request that was
previously made by the Port partner on this downstream Port.
When the feature selector is set to REJECT_PD_REQUEST then the PDUSB Hub shall reject the request that was
previously made by the Port partner on this downstream Port.
When the feature selector is set to PORT_PD_RESET, the Port shall be sent a Hard Reset. Once the Hard Reset is
complete, as described in Section 0, the hub shall set the C_PORT_PD_CHANGE bit in the Port change field.
When the feature selector is set to CABLE_PD_RESET, the hub shall send a Cable Reset to the cable attached on that
Port. Once the Cable Reset is complete, as described in Section 6.7.3, the hub shall set the C_PORT_PD_CHANGE bit in
the Port change field.
It shall be a Request Error if wValue is not a feature selector listed in Table 9-8, or if wIndex specifies a Port that does
not exist or if the Port is operating as a Consumer, or if wLength is not as specified above.
If the PDUSB Hub is not configured, the PDUSB Hub's response to this request is undefined.
00100011B SET_PDO Zero Port Number Variable Provider Power Data Objects
The wIndex field shall indicate the PD capable Port that is being queried. The Port number shall be a valid Port
number for that hub, greater than zero.
The wLength field shall be a multiple of 4 and shall include all the PDOs (see Section 6.4.1) that the Port may send to
its Port partner when sending its PD capabilities. The Port shall send the PDOs in the order that they are included in
this request. It is the responsibility of the PDUSB Hub to verify that the contents of the PDOs sent by the SPM are valid
for this Port. A PDUSB Hub shall respond with a Request Error if the PDOs sent by the SPM are not valid for the Port
specified.
It shall be a Request Error if wValue is not set to zero or if wIndex specifies a Port that does not exist, or if wLength is
not as specified above.
If the Port on the PDUSB Hub is not operating as a Provider, 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.
The wIndex field shall indicate the PD capable Port that is being queried. The Port number shall be a valid Port
number for that PDUSB Hub, greater than zero.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 481
The wLength field shall be a multiple of 4 and shall include all the VDOs that the PDUSB Hub received on that Port (see
Section 6.4.4).
It shall be a Request Error if wIndex specifies a Port that does not exist, or if wValue or wLength is not as specified
above.
If the PDUSB Hub is not configured, the PDUSB Hub's response to this request is undefined.
The wIndex field shall indicate the PD capable Port that is being queried. The Port number shall be a valid Port
number for that PDUSB Hub, greater than zero.
The wValue field indicates the recipient. If the value is 0 it shall be sent to its Port partner. If the value is 1 it shall be
sent to SOP’. If the value is 2 it shall be sent to SOP”. No other values in wValue are allowed.
The wLength field shall be a multiple of 4 and shall include one VDM (see Section 6.4.4) that the Port shall send to the
recipient indicated by wValue.
It shall be a Request Error if wIndex specifies a Port that does not exist, or if wValue or wLength is not as specified
above.
If the PDUSB Hub is not configured, the PDUSB Hub's response to this request is undefined.
Page 482 USB Power Delivery Specification Revision 2.0, Version 1.1
A. Power Profiles
Power Profiles are optional normative. They define a standardized set of voltages at several current ranges that are
offered by USB Power Delivery Sources. The profiles are defined for Sources only.
The Power Profiles are optional but are intended to provide a finite set of power levels to:
Limit the number of voltages and current combinations a Source has to supply
Provide a well-defined set of voltage and current combinations from which a Sink can choose
Provide a selection of power ranging from 10W to 100W in approximately 2x steps
Limit the number of valid combinations
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 483
Figure A-1 Interpretation of UL60950
8A Safety Limit
Output Current (A)
Page 484 USB Power Delivery Specification Revision 2.0, Version 1.1
notebook computer with a Profile 2 Source Port it also uses as a Sink for charging which requires it be supplied with
20V @ 5A from a Profile 5 Source.
The notebook shown in Figure A-2 is able to supply up to PD profile 2. The larger HDD is able to successfully operate
without a separate power adapter since it gets adequate power from the PD Port. In the case of the HDD with
separate power adapter plugged in, the HDD should not draw power from the notebook’s Port.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 485
Figure A-3 Notebook is not Capable of Meeting User’s Requirements
Note that in the case shown in Figure A-3, the experience for the user is not unlike their experience today. USB HDDs
that attempt to rely only on USB bus power only will often fail because not all notebooks on the market are capable of
supplying adequate current.
Page 486 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure A-4 Display with Integrated Hub Capable of Meeting User’s Requirements
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 487
B. CRC calculation
B.1 C code example
//
// USB PD CRC Demo Code.
//
#include <stdio.h>
int crc;
//-----------------------------------------------------------------------------
for(int i=0;i<len;i++) {
int ret = 0;
int j, bit;
c = ~c;
printf("~crc=0x%x\n",c);
for(int i=0;i<32;i++) {
j = 31-i;
Page 488 USB Power Delivery Specification Revision 2.0, Version 1.1
}
return ret;
//-----------------------------------------------------------------------------
int main(){
int txCrc=0,rxCrc=0,residue=0,data;
crc = 0xffffffff;
crcBits(data,16);
txCrc = crcWrap(crc);
printf("crc=0x%x, txCrc=0x%x\n",crc,txCrc);
crc = 0xffffffff;
crcBits(data,16);
rxCrc = crcWrap(crc);
printf("should be 0xc704dd7b\n");
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 489
B.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
Page 490 USB Power Delivery Specification Revision 2.0, Version 1.1
C. Power Implementation Considerations
This section has been added as an informative guide for implementers of the PD specification. Expansion of USB
Power Delivery to higher voltage and power levels with its AC coupled communication over V BUS requires new design
considerations to the power delivery system. Many of these may not have been as important in legacy USB systems,
but should be considered when implementing the PD specification. Component labels within this Appendix are
specific to the Appendix unless otherwise stated.
zIsolation_P zIsolation_C
Load
Transceiver Transceiver
rTX rTX
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 491
C.1.2 Spurious Noise Test Setup and Calibration
Figure C-2 Typical Synchronous Buck Power Stage with Parasitics
Vsource
HS_FET
Vsw
C_ind
L_HSSRC
Vsw L_out
L_LSDR
C_filt
LS_FET R_Cfilt_ESR
CDS_LSFET
Measurement of in-band spurious noise from the power converter involves setting up measurement equipment with
the correct scales and impedances. The process involves calibrating a known carrier signal in a test setup containing
the correct source and load impedances with the power converter connected, but not operational. Once the test setup
is calibrated, the operational noise can be evaluated. In order to simplify this test and to match industry standard
communication test equipment, 50 Ohm terminations and dBm scaled measurements will be used.
Measurement of in-band spurious noise will require the use of:
An RF signal generator capable of providing a vTX nominal (150mVrms), fCarrier nominal (23MHz) carrier sine
wave into a 50 ohm load.
An oscilloscope with at least 200MHz Bandwidth.
A spectrum analyzer with better than -80dBm measurement capability and 2MHz/div scale capability at 23MHz
center frequency setting.
A low noise environment with less than -60dBm of RF noise at 13 to 33MHz.
Figure C-3 shows the test setup which includes both the Provider and Consumer to be connected using PD USB cables.
During calibration the power converter and load impedances should be in place with the power converter turned off.
Page 492 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure C-3 Spurious Noise Measurement Test Setup
Noise Free
Source PROVIDER CONSUMER
Power
Converter VBUS_P VBUS_C Vload
or
Power
Mux zIisolation_P zIsolation_C
USB CABLE
Cfilt_P cAC-Coupling_P cAC-Coupling_C Cfilt_C
Noise
Free
Load
Spectrum 23 MHz
Analyzer Signal 50
50 Generator
1) Using appropriately matched RF cabling configure the test setup as shown in Figure C-3 set the termination
for both the signal generator and the spectrum analyzer to 50 ohms.
2) Set the signal generator to ((vTX minimum x 1.414) x 2) Peak to Peak (~282mV) at fCarrier nominal
(23MHz). Confirm the level using an oscilloscope.
3) Set the spectrum analyzer to fCarrier nominal (23MHz) Center Frequency, fCarrier nominal ± 10MHz span
and set the Resolution Bandwidth (RBW) to 10 KHz.
4) Confirm that the measured level on the Spectrum Analyzer is approximately - 7 to -13 dBm (dBMilliwatts on
50 Ohms). Record the Baseline level (dBM Baseline).
5) Confirm that no spurious noise levels are present above -60dBm. If the noise floor is higher, it may be
necessary to test in an environment with EMI shielding from radio noise sources.
6) Turn on the power converter and turn off the fCarrier nominal signal from the signal generator.
7) Confirm that the noise floor has not increased beyond (dBm_Baseline – snrSrc). Reference Figure 7-8 for in-
band noise. The (dBm_Baseline – snrSrc) represents the 0dB level in Figure 7-8. Confirm that all measured
noise falls below the curve.
The same measurement can be made from the perspective of the Sink using a quiet source. In this case the frequency
generator is placed on the Provider side and the signal generator is placed on the Consumer side. The levels would be
compared to Figure 7-11 in this case.
* Noise levels should be validated across expected line and load conditions including expected combinations of USB
Cable types and lengths.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 493
C.2 Connector Detach Transients
The presence of inductive elements zIsolation_P and zIsolation_C will cause transient voltages to be presented to the
transceiver inputs. This section describes this behavior and some protection methods that can be considered.
Vsrc PROVIDER
CONSUMER
zIsolation_P zIsolation_C
USB
Cable
Detach
Power
Cfilt_P cAC-Coupling_P cAC-Coupling_C Cfilt_C
Converter
Power
or
Converter
Power
Mux
As shown in Figure C-4, equal current is flowing in both isolation elements (zIsolation_P and zIsolation_C) within the
Provider and Consumer just prior to detach. Inductive elements resist changes in current and will force voltage
transients on VBUS_P and VBUs_C terminals just following detach. These high dv/dt rate voltages will AC couple through
the coupling capacitors cAC-Coupling_P and cAC-Coupling_C. A positive going voltage transient will be presented on
the Provider side and a negative going voltage transient will be presented on the Consumer side. Clamping elements
should be included or the transceiver should be capable of absorbing the energy of the attach and detach events to
prevent damage to the transceiver.
Page 494 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure C-5 Isolation Inductor Energy versus Load
Figure C-5 shows the total energy that could be delivered during a detach event with the example 1µH inductor
where:
𝐿𝐼 2
𝐸𝑛𝑒𝑟𝑔𝑦 =
2
An external or integrated clamp should be implemented to absorb this energy and limit the applied voltage at the
transceiver input.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 495
Figure C-6 Simplified Small Signal AC Model
IN OUT
=OUT/IN
C_Filt_P C_Filt_C
100u 100u
AC 1 0
V1 50m 5m 50
ESR_Filt_P ESR_Filt_C RLOAD
1n 500p
ESL_Filt_P ESL_Filt_C
The dominant pole of the power converter is set by Lout and C_Filt_P assuming the value of Lout is larger than
(zIsolation_P + Lcable + zIsolation_C). Parasitic ESR (Equivalent Series Resistance) and ESL (Equivalent Series
Inductance) form high frequency zeroes in the power stage response gain and phase. Phase distortion is introduced
into the power stage response from (zIsolation_P + Lcable + zIsolation_C) interacting with C_Filt_C. Secondary high
frequency poles and zeroes can degrade phase margin in the feedback loop of the power converter. These effects
need to be modeled and accounted for when designing the feedback loop for stability and transient performance.
Figure C-7 shows the resulting phase and gain impacts of the parasitics using the model in Figure C-6.
These traces compare the power stage phase and gain with and without isolation inductance. In this case, a phase
boost is introduced which is not necessarily bad for compensation; however it is important for the designer to be
aware of these effects to maintain predictable stability and transient response.
Page 496 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure C-7 Power Stage Phase And Gain with and without Isolation Inductors
Y2 Y1
10
0 -20
Gain(w
Gain (with isolation
ith coupling inductor)
inductance)
-10 -40
Gain (w
Gain (without isolation
ithout coupling inductor)
inductance)
-20 -60
Phase / degrees
Gain / dB
-30
-80
-40
-100 Phase
Phase (w ith coupling
(with isolationinductance)
inductor)
-50
-120
-60
-140
-70
Phase
Phase (without isolationinductance)
(w ithout coupling inductor)
-160
Frequency / Hertz
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 497
Figure C-8 Simplified Small Signal AC Model (Feedback before and after Inductor zIsolation_P)
IN OUT
=OUT/IN
C_Filt_P C_Filt_C
100u 100u
AC 1 0
V1 5m 5m 50
ESR_Filt_P ESR_Filt_C RLOAD
1n 500p
ESL_Filt_P ESL_Filt_C
Figure C-8 compares power stage response with compensation taken before and after the zIsolation_P Provider
isolation inductor. As can be seen in in Figure C-9, the phase and gain impacts are larger. A pole is created by the
zIsolation_P inductor that forces a phase reduction beyond 180 degrees which will have to be accounted for in the
compensation network.
Figure C-9 Simplified Small Signal AC Model (Feedback before and after Inductor zIsolation_P)
Y2 Y1
10
Gain
Gain(with
(w ithFB
FBbefore
past
0 -20
isolation
coupling inductor)
inductance)
-10 -40
Gain (with FB past
Phase (w ith FB past
isolation inductor)
coupling inductance)
-20 -60
Phase / degrees
-30 -80
Gain / dB
Phase
Phase (w ith
(with FBFB before
before
coupling
isolation inductance)
inductor)
-40 -100
-50 -120
-60 -140
-70
-160
Phase
Phase (w ith
(with FB FB
pastpast
couplinginductor)
isolation inductance)
-80
-180
100 200 500 1k 2k 5k 10k 20k 50k 100k 200k 500k 1M
Frequency / Hertz
Page 498 USB Power Delivery Specification Revision 2.0, Version 1.1
D. Standard-A Mating Illustrations
The following illustrations show the mating configurations between PD and non-PD Standard-A connectors. All
dimensions are in mm.
Figure D-1 USB 3.1 Standard-A Plug with USB 2.0 PD or 3.1 PD Standard-A Receptacle
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 499
Figure D-2 USB 3.1 PD Standard-A Plug with USB 2.0 or 3.1 Standard-A Receptacle
Page 500 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure D-3 USB 2.0 PD or 3.1 PD Standard-A plug with USB 2.0 PD or 3.1 PD Standard-A receptacle
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 501
Figure D-4 USB 2.0 PD or 3.1 PD Standard-A Plug with USB 2.0 Standard-A Receptacle
Page 502 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure D-5 USB 2.0 Standard-A Plug with USB 2.0 or USB3.1 PD Standard-A Receptacle
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 503
Figure D-6 USB 2.0 Thin Card with USB 2.0 PD or 3.1 PD Standard-A Receptacle
Page 504 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure D-7 USB 3.1 Thin Card with USB 2.0 PD or 3.1 PD Standard-A Receptacle
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 505
E. Physical Layer Informative Material
This section contains informative material about the Physical Layer.
Page 506 USB Power Delivery Specification Revision 2.0, Version 1.1
Figure E-1 shows the signal levels in mV (rms) needed to illustrate the squelch budget for normal operation
(vSquelchOperating) and cable-type detection operation (vSquelchDetecting). The transmission level of the signal is
between 100mV and 200mV, or at least 26.5dB above a 3mV noise floor. During normal operation the nominal SNR is
25dB, packets with a signal level below 55mV may be discarded, and packets with a signal level below 35mV are
discarded. This allows for at least 5.2dB of attenuation in the channel and at most 15dB. During plug-type detection
the nominal SNR is 16.5dB, a signal level below 25mV may be discarded, and a signal level below 15mV must be
discarded. This allows for at least 12dB of attenuation in the channel and at most 22.5dB.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 507
F. PD Message Sequence Examples
The following examples are intended to show how the Device Policy Manager may 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 may be applied; it does not contain any normative requirements.
In these illustrations all A-Ports are assumed to implement the optional cold-socket functionality. VBUS is only applied
when an A-plug is inserted. In all cases Providers indicate all of the power they have available in their Capabilities and
Consumers only take the power they need and give back what they cannot use. In the case of Hubs this means only
taking sufficient power for the ports with A-plugs inserted.
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 Profile 4 Enhanced SuperSpeed Port.
Page 508 USB Power Delivery Specification Revision 2.0, Version 1.1
2. Display 1 and Display 2 each require 30W to operate. Display 1 contains a Hub allowing Display 2 to be connected
to Display 1. In USB suspend each Display will power down but can maintain USB connection using the PD power
provided.
Display 1
Display 2
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 509
Step Laptop Display 1 Display 2 Device Policy PD Power
Manager (W)
Page 510 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Laptop Display 1 Display 2 Device Policy PD Power
Manager (W)
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 2.0, Version 1.1 Page 511
Step Laptop Display 1 Display 2 Device Policy PD Power
Manager (W)
Display 1
Display 2
AC
Configuration:
1. Tablet with no AC supply. Tablet is a USB host and can use 12V@0.2A (1W) during normal operation and up to
12V@1A (12W) in order to charge.
2. Display 1 and Display 2 each require 30W to operate. Display 1 contains a Hub allowing Display 2 to be connected
to Display 1. In USB suspend each Display will power down but can maintain USB connection using the PD power
provided.
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 upstream via a Profile 4 Port.
Page 512 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Tablet Display 1 Display 2 Device Policy PD Power
Manager (W)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 513
Step Tablet Display 1 Display 2 Device Policy PD Power
Manager (W)
Page 514 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Tablet Display 1 Display 2 Device Policy PD Power
Manager (W)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 515
Step Tablet Display 1 Display 2 Device Policy PD Power
Manager (W)
Tablet – Charge
Page 516 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Tablet Display 1 Display 2 Device Policy PD Power
Manager (W)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 517
Step Tablet Display 1 Display 2 Device Policy PD Power
Manager (W)
Page 518 USB Power Delivery Specification Revision 2.0, Version 1.1
F.3 Giving back power
Figure F-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 downstream via a Profile 4 Port.
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 20V@0.5A (10W) to spin up and 20V@0.25A (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 2.0, Version 1.1 Page 519
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
Page 520 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 521
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
23 Hub sends out a set Source Capabilities Hub now offers 10.8
of capabilities to received Hard Disk Drive 1
Hard Disk Drive 1 what it needs.
including: 5V@0.5A
and 20V@0.5A. The
externally powered
and USB suspend
bits are set.
Page 522 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 523
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
34 Hub sends out a set Source Capabilities Hub offers Hard 11.6
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
externally powered
and USB suspend
bits are set.
Phone charge
Page 524 USB Power Delivery Specification Revision 2.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.4
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
externally powered
and USB suspend
bits are set.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 525
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
51 The Hub sends out a Source Capabilities The Hub now has 22.4
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
externally powered set of Capabilities.
and USB suspend
bits are set.
Page 526 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 527
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
63 The Hub instructs Goto Min received Hub assess that 16.6
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 528 USB Power Delivery Specification Revision 2.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 20.8
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
externally powered Capabilities.
and USB suspend
bits are set.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 529
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
76 The Hub sends out a Source Capabilities The Hub now has 20.8
set of capabilities to received by the the power
the Phone including: Phone available to charge
5V@2A. The the phone so it
externally powered sends out new
bit is set and the USB Capabilities
suspend bit is set.
Page 530 USB Power Delivery Specification Revision 2.0, Version 1.1
Step Laptop Hub Peripherals Device Policy Hub Power
Manager (W)
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 531
G. VDM Command Examples
G.1 Discover Identity Example
G.1.1 Discover Identity Command request
Table G-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 G-2 Discover Identity Command response from Active Cable Responder Example
Page 532 USB Power Delivery Specification Revision 2.0, Version 1.1
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 00b (Version 1.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..20 Reserved, shall be set to zero. 0
B19..0 20-bit unsigned integer USB-IF assigned TID 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..20 Reserved 0
B19..18 Type-C to Type-A/B/C 10b (Type-C)
B17 Type-C to Plug/Receptacle 0 (Plug)
B16..13 Cable Latency 0001b ( <10ns (~1m))
B12..11 Cable Termination Type 11b (Both ends Active, VCONN required)
B10 SSTX1 Directionality Support 0 (Fixed)
B9 SSTX2 Directionality Support 0 (Fixed)
B8 SSRX1 Directionality Support 0 (Fixed)
B7 SSRX2 Directionality Support 0 (Fixed)
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)
Table G-3 Discover Identity Command response from Hub Responder Example
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 533
Bit(s) Field Value
14..12 Number of Data Objects 4 (VDM Header + ID Header VDO + Cer Stat VDO +
Product VDO)
11..9 MessageID 0..7
8 Port Power Role 0 or 1
7..6 Specification Revision 01b
5..4 Reserved 0
3..0 Message Type 1111b (Vendor Defined Message)
VDM Header
B31..16 Standard or Vendor ID (SVID) 0xFF00 (PD SID)
B15 VDM Type 1 (Structured VDM)
B14..13 Structured VDM Version 00b (Version 1.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 1 (data capable as a Device)
B29..27 Product Type 001b (Hub)
B26 Modal Operation Supported 0 (doesn’t support 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 hub vendor
Cert Stat VDO
B31..20 Reserved, shall be set to zero. 0
B19..0 20-bit unsigned integer USB-IF assigned TID for this hub
Product VDO
B31..16 16-bit unsigned integer. USB Product ID Product ID assigned by the hub vendor
B15..0 16-bit unsigned integer. bcdDevice Device version assigned by the hub vendor
Page 534 USB Power Delivery Specification Revision 2.0, Version 1.1
G.2 Discover SVIDs Example
G.2.1 Discover SVIDs Command request
Table G-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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 535
Bit(s) Field Value
B14..13 Structured VDM Version 00b (Version 1.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
Page 536 USB Power Delivery Specification Revision 2.0, Version 1.1
G.3 Discover Modes Example
G.3.1 Discover Modes Command request
Table G-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.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 537
Bit(s) Field Value
7..6 Specification Revision 01b
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 00b (Version 1.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
Page 538 USB Power Delivery Specification Revision 2.0, Version 1.1
G.4 Enter Mode Example
G.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 G-8 shows the contents of the key fields in the Message Header and VDM Header for an Initiator sending an
Enter Mode Command request.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 539
Bit(s) Field Value
7..6 Specification Revision 01b
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 00b (Version 1.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)
Page 540 USB Power Delivery Specification Revision 2.0, Version 1.1
G.5 Exit Mode Example
G.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 G-11 shows the contents of the key fields in the Message Header and VDM header for an Initiator sending an Exit
Mode Command request.
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 541
Bit(s) Field Value
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 00b (Version 1.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)
Page 542 USB Power Delivery Specification Revision 2.0, Version 1.1
G.6 Attention Example
G.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 G-11 shows the contents of the key fields in the Message Header and VDM header for an Initiator sending an
Attention Command request.
Table G-14 Attention Command request from Initiator with additional VDO Example
USB Power Delivery Specification Revision 2.0, Version 1.1 Page 543
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 00b (Version 1.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
Page 544 USB Power Delivery Specification Revision 2.0, Version 1.1