Data Sheet
Table Of Contents
- USB Power Delivery Exerciser Manual
 - 1 Introduction
 - 2 Packet Templates
- 2.1 PD_ControlMessage
 - 2.2 PD_GoodCrcMessage
 - 2.3 PD_GotoMinMessage
 - 2.4 PD_AcceptMessage
 - 2.5 PD_RejectMessage
 - 2.6 PD_PingMessage
 - 2.7 PD_PsRdyMessage
 - 2.8 PD_GetSourceCapMessage
 - 2.9 PD_GetSinkCapMessage
 - 2.10 PD_DataRoleSwapMessage
 - 2.11 PD_PowerRoleSwapMessage
 - 2.12 PD_VConnSwapMessage
 - 2.13 PD_WaitMessage
 - 2.14 PD_SoftResetMessage
 - 2.15 PD_NotSupportedMsg
 - 2.16 PD_GetSourceCapExtendedMsg
 - 2.17 PD_GetStatusMsg
 - 2.18 PD_FRSwapMsg
 - 2.19 PD_SourceCapabilitiesMessage
 - 2.20 PD_SinkCapabilitiesMessage
 - 2.21 PD_RequestPacket
 - 2.22 PD_BISTCarrierModeMessage
 - 2.23 PD_BISTTestDataMessage
 - 2.24 PD_BatteryStatusMsg
 - 2.25 PD_AlertMsg
 - 2.26 PD_VDM_Unstructured_Header
 - 2.27 PD_VDM_Structured_Header
 - 2.28 PD_VDM_Discover_Identity_Message
 - 2.29 PD_VDM_Discover_Identity_Response
- 2.29.1 PD_VDM_Discover_Identity_ID_Header_VDO
 - 2.29.2 PD_VDM_Discover_Identity_Cert_Stat_VDO
 - 2.29.3 PD_VDM_Discover_Identity_Product_VDO
 - 2.29.4 PD_VDM_Discover_Identity_Cable_VDO
 - 2.29.5 PD_DiscoverIdPassiveCableVdo
 - 2.29.6 PD_DiscoverIdActiveCableVdo
 - 2.29.7 PD_VDM_Discover_Identity_Alternate_Mode_Adapter_VDO
 
 - 2.30 PD_VDM_Discover_Svids_Message
 - 2.31 PD_VDM_Discover_Svids_Response
 - 2.32 PD_VDM_Discover_Modes_Message
 - 2.33 PD_VDM_Discover_Modes_Response
 - 2.34 PD_VDM_Enter_Mode_Message
 - 2.35 PD_VDM_Enter_Mode_Response
 - 2.36 PD_VDM_Exit_Mode_Message
 - 2.37 PD_VDM_Exit_Mode_Response
 - 2.38 PD_VDM_Attention_Message
 - 2.39 PD_VDM_DisplayPort_UpdateStatus_Message
 - 2.40 PD_VDM_DisplayPort_UpdateStatus_Response
 - 2.41 PD_VDM_DisplayPort_Configure_Message
 - 2.42 PD_VDM_DisplayPort_Configure_Response
 - 2.43 PD_ExtMsgHeaders
 - 2.44 PD_SourceCapExtendedMsg
 - 2.45 PD_StatusMsg
 - 2.46 PD_GetBatteryCapMsg
 - 2.47 PD_GetBatteryStatusMsg
 - 2.48 PD_BatteryCapabilitiesMsg
 - 2.49 PD_GetManufacturerInfoMsg
 - 2.50 PD_ManufacturerInfoMsg
 - 2.51 PD_SecurityRequestMsg
 - 2.52 PD_SecurityResponseMsg
 
 - 3 Type-C Commands
- 3.1 PD_SetResistorRp
 - 3.2 PD_SetResistorRd
 - 3.3 PD_SetResistorRa
 - 3.4 PD_SetVBusCap10MicroFarad
 - 3.5 PD_SetVBusCap1MicroFarad
 - 3.6 PD_SetVBus
 - 3.7 PD_SetVConn
 - 3.8 PD_SetLoadOnVBus
 - 3.9 PD_TerminateCCLines
 - 3.10 PD_SetStartDRPSetting
 - 3.11 PD_StartDRP
 - 3.12 PD_SetStartSourceSetting
 - 3.13 PD_StartSource
 - 3.14 PD_SetStartSinkSetting
 - 3.15 PD_StartSink
 
 - 4 Basic Commands
- 4.1 PD_SendPacket
 - 4.2 PD_SendPacket_Cable
 - 4.3 PD_SendCorruptedPacket
 - 4.4 PD_ReceivePacket
 - 4.5 PD_SendSoftReset
 - 4.6 PD_SendHardReset
 - 4.7 PD_SendCableReset
 - 4.8 PD_Delay
 - 4.9 PD_SetRoles
 - 4.10 PD_Set
 - 4.11 IfMatched/ElseMatched
 - 4.12 PD_Loop
 - 4.13 PD_TimerLoop
 - 4.14 PD_BreakLoop
 - 4.15 PD_ContinueLoop
 - 4.16 PD_Stop
 - 4.17 PD_Disconnect
 - 4.18 PD_ResumeUSB2Exerciser
 - 4.19 PD_ReportUSB3TermStatus
 - 4.20 PD_IncreaseMsgId
 - 4.21 PD_DecreaseMsgId
 - 4.22 PD_IncreaseMsgId_Cable
 - 4.23 PD_DecreaseMsgId_Cable
 
 - 5 Transaction Engine™
- 5.1 High Level Commands
- 5.1.1 PD_SetWorkingRevision
 - 5.1.2 PD_SetNegotiationSetting_Source
 - 5.1.3 PD_AddSourceCap
 - 5.1.4 PD_ResetSourceCaps
 - 5.1.5 PD_NegotiatePower_Source
 - 5.1.6 PD_SetNegotiationSetting_Sink
 - 5.1.7 PD_AddSinkCap
 - 5.1.8 PD_ResetSinkCaps
 - 5.1.9 PD_NegotiatePower_Sink
 - 5.1.10 PD_WaitForNegotiatePower
 - 5.1.11 PD_NegotiatePower
 - 5.1.12 PD_SetSwapPowerRoleSetting
 - 5.1.13 PD_SwapPowerRole
 - 5.1.14 PD_WaitForSwapPowerRole
 - 5.1.15 PD_FastRoleSwap
 - 5.1.16 PD_SetSwapDataRoleSetting
 - 5.1.17 PD_SwapDataRole
 - 5.1.18 PD_WaitForSwapDataRole
 - 5.1.19 PD_SetSwapVConnSetting
 - 5.1.20 PD_SwapVConn
 - 5.1.21 PD_WaitForSwapVConn
 - 5.1.22 PD_SetGotoMinSetting
 - 5.1.23 PD_GotoMin
 - 5.1.24 PD_WaitForGotoMin
 - 5.1.25 PD_SetGetSourceCapSetting
 - 5.1.26 PD_GetSourceCapabilities
 - 5.1.27 PD_WaitForGetSourceCapabilities
 - 5.1.28 PD_SetGetSinkCapSetting
 - 5.1.29 PD_GetSinkCapabilities
 - 5.1.30 PD_WaitForGetSinkCapabilities
 - 5.1.31 PD_SendBISTCarrierMode
 - 5.1.32 PD_SendBISTTestData
 - 5.1.33 PD_GetSourceCapExtended
 - 5.1.34 PD_SetGetSrcCapExtSetting
 - 5.1.35 PD_WaitForGetSrcCapExtended
 - 5.1.36 PD_SetSrcCapExtDataBlock
 - 5.1.37 PD_ResetSrcCapExtDataBlock
 - 5.1.38 PD_GetStatus
 - 5.1.39 PD_SetGetStatusSetting
 - 5.1.40 PD_WaitForGetStatus
 - 5.1.41 PD_SetStatusDataBlock
 - 5.1.42 PD_ResetStatusDataBlock
 - 5.1.43 PD_GetBatteryStatus
 - 5.1.44 PD_SetGetBatteryStatusDataBlock
 - 5.1.45 PD_SetGetBatteryStatusSetting
 - 5.1.46 PD_WaitForGetBatteryStatus
 - 5.1.47 PD_SetBatteryStatusDO
 - 5.1.48 PD_ResetBatteryStatusDO
 - 5.1.49 PD_Alert
 - 5.1.50 PD_SetAlertDO
 - 5.1.51 PD_SetAlertSetting
 - 5.1.52 PD_WaitForAlert
 - 5.1.53 PD_GetBatteryCap
 - 5.1.54 PD_SetGetBatteryCapDataBlock
 - 5.1.55 PD_SetGetBatteryCapSetting
 - 5.1.56 PD_WaitForGetBatteryCap
 - 5.1.57 PD_SetBatteryCapDataBlock
 - 5.1.58 PD_ResetBatteryCapDataBlock
 - 5.1.59 PD_GetManufacturerInfo
 - 5.1.60 PD_SetGetManufacturerInfoDataBlock
 - 5.1.61 PD_SetGetManufacturerInfoSetting
 - 5.1.62 PD_WaitForGetManufacturerInfo
 - 5.1.63 PD_SetManufacturerInfoDataBlock
 - 5.1.64 PD_SetSecurityRequestSetting
 - 5.1.65 PD_SecurityRequest
 - 5.1.66 PD_SetSecurityRequestDataBlock
 - 5.1.67 PD_WaitForSecurityRequest
 - 5.1.68 PD_SetSecurityResponseDataBlock
 - 5.1.69 PD_SetDiscoverIdentitySetting
 - 5.1.70 PD_AddDiscoverIdentityVDO
 - 5.1.71 PD_ResetDiscoverIdentityVDO
 - 5.1.72 PD_DiscoverIdentity
 - 5.1.73 PD_WaitForDiscoverIdentity
 - 5.1.74 PD_SetDiscoverSVIDSetting
 - 5.1.75 PD_AddSvid
 - 5.1.76 PD_ResetSvids
 - 5.1.77 PD_DiscoverSvids
 - 5.1.78 PD_WaitForDiscoverSvids
 - 5.1.79 PD_SetDiscoverModeSetting
 - 5.1.80 PD_AddMode
 - 5.1.81 PD_AddModeVDO
 - 5.1.82 PD_ResetModes
 - 5.1.83 PD_DiscoverModes
 - 5.1.84 PD_WaitForDiscoverModes
 - 5.1.85 PD_SetEnterModeSetting
 - 5.1.86 PD_EnterMode
 - 5.1.87 PD_EnterModeVdo
 - 5.1.88 PD_WaitForEnterMode
 - 5.1.89 PD_SetExitModeSetting
 - 5.1.90 PD_ExitMode
 - 5.1.91 PD_WaitForExitMode
 - 5.1.92 PD_Attention
 - 5.1.93 PD_AttentionVdo
 - 5.1.94 PD_SetDiscoveryProcessSetting
 - 5.1.95 PD_PerformDiscoveryProcess
 - 5.1.96 PD_SetDisplayPortSetting
 - 5.1.97 PD_DisplayPort_UpdateStatus
 - 5.1.98 PD_DisplayPort_Configure
 - 5.1.99 PD_WaitForDisplayPortStatus
 - 5.1.100 PD_WaitForDisplayPortConfigure
 - 5.1.101 PD_SetDiscoverIdentitySetting_Cable
 - 5.1.102 PD_WaitForDiscoverIdentity_Cable
 - 5.1.103 PD_AddDiscoverIdentityVDO_Cable
 - 5.1.104 PD_ResetDiscoverIdentityVDO_Cable
 - 5.1.105 PD_SetDiscoverSVIDSetting_Cable
 - 5.1.106 PD_WaitForDiscoverSvids_Cable
 - 5.1.107 PD_AddSvid_Cable
 - 5.1.108 PD_ResetSvids_Cable
 - 5.1.109 PD_SetDiscoverModeSetting_Cable
 - 5.1.110 PD_WaitForDiscoverModes_Cable
 - 5.1.111 PD_AddModeVDO_Cable
 - 5.1.112 PD_AddMode_Cable
 - 5.1.113 PD_ResetModes_Cable
 - 5.1.114 PD_SetEnterModeSetting_Cable
 - 5.1.115 PD_WaitForEnterMode_Cable
 - 5.1.116 PD_SetExitModeSetting_Cable
 - 5.1.117 PD_WaitForExitMode_Cable
 - 5.1.118 PD_SetManufacturerInfoDataBlock_Cable
 - 5.1.119 PD_SetGetManufacturerInfoSetting_Cable
 - 5.1.120 PD_WaitForGetManufacturerInfo_Cable
 - 5.1.121 PD_SetSecurityResponseDataBlock_Cable
 - 5.1.122 PD_SetSecurityRequestSetting_Cable
 - 5.1.123 PD_WaitForSecurityRequest_Cable
 
 - 5.2 Auto Responses Capability
 
 - 5.1 High Level Commands
 

13 
  Within the USB 3.1 tab – “Recording/Generating” option - 
leave in ‘Analyzer Only’ mode unless you also want to run 
3.1 traffic.  
  Use the example PD Exerciser scripts to begin testing:  
C:\Users\Public\Documents\LeCroy\USB Protocol Suite\Examples\Power Delivery Exerciser 
Example Script 
Behavior 
Source Power Negotiate VDM.updg 
Voyager as Source negotiates default Provider 900mA@4.5V 
then sends Discover-Id. Using Basic Commands. 
High Level Negotiate with dynamic change cap.updg 
Voyager as Source negotiates default Provider 1A@5V then 
broadcasts lower PDO 900mA@4.5V and re-negotiates. Using 
High Level Commands. 
Discover Cable.updg 
Voyager as Source programmatically turns on VCONN and 
performs Discovery Process for cable. Using High Level 
Commands. 
Sink Power Negotiate.updg 
Voyager as Sink Waits to receive Source cap then negotiates 
as Sink - 900mA@5V. Using Basic Commands. 
Apple VGA multiple Adaptor.updg 
Voyager as Source enables VCONN and Sends Discover Id; 
Discover Mode for Apple SVID (0x05AC); Enter Mode 
(PD_DISPLAY_PORT_SVID) then Exit Mode; turns off VCONN. 
Using Basic Commands. 
High Level Device Discovery.updg 
Voyager as Source sends Discover Id; Discover SVIDs; 
Discover Modes for Display Port SVID (0xFF01); Enter Mode 
(0xFF01); Exit Mode (0xFF01); Discover Modes for Apple 
SVID (0x05AC); Enter Mode(0x5AC mode 1); Exit 
Mode(0x5AC mode 1); Enter Mode(0x5AC mode 2); Exit 
Mode(0x5AC mode 2); Using High Level Commands. 
NegotiationSample_WithSwapPowerRole.updg 
Voyager as Source sends SwapPowerRole; and negotiates as 
a Sink after power role swap. 1.5A@5V. Using High Level 
Commands. 
Sink Auto Response.updg 
Voyager as Sink will response to all incoming PD messages 
within 100s. Using Auto Response Command. 
  To Run Sample Script – Connect Cable to Exerciser port; Click Record, wait a 
few seconds and Click Run. The PD Exerciser uses the sequence below at the 
beginning of each example script to simulate a re-connect event.  
 call PD_Disconnect()  
  call PD_SetResistorRp( PD_ON, CC_RP_CUR_1_5, CC_LINE_1 ) 
 call PD_SetVBus( PD_ON )  
Note- it’s also possible to execute the example scripts before the cable is connected to 
M310C then performing “hot-plug” (It’s possible some issues may be seen with some 
devices not responding to exerciser in this case). 
Note – some latency may be observed when activating/downloading PD exerciser scripts 
(Run button) This will be improved in a future release. 










