SLVUCR8A September   2023  – March 2024 TPS25751

 

  1.   1
  2.   Read This First
    1.     Notational Conventions
    2.     Glossary
    3.     Related Documents
    4.     Support Resources
    5.     Trademarks
  3. 1Introduction
    1. 1.1 Introduction
      1. 1.1.1 Purpose and Scope
    2. 1.2 PD Controller Host Interface Description
      1. 1.2.1 Overview
      2. 1.2.2 Register and Field Notation
    3. 1.3 Unique Address Interface
      1. 1.3.1 Unique Address Interface Protocol
  4. 2PD Controller Policy Modes
    1. 2.1 Overview
    2. 2.2 Source Policy Mode
    3. 2.3 Sink Policy Mode
  5. 3TPS25751 Registers
  6. 44CC Task Detailed Descriptions
    1. 4.1 CPU Control Tasks
      1. 4.1.1 'Gaid' - Return to Normal Operation
      2. 4.1.2 'GAID' - Cold Reset Request
    2. 4.2 PD Message Tasks
      1. 4.2.1 'SWSk' - PD PR_Swap to Sink
      2. 4.2.2 'SWSr' - PD PR_Swap to Source
      3. 4.2.3 'SWDF' - PD DR_Swap to DFP
      4. 4.2.4 'SWUF' - PD DR_Swap to UFP
      5. 4.2.5 'GSkC' - PD Get Sink Capabilities
      6. 4.2.6 'GSrC' - PD Get Source Capabilities
      7. 4.2.7 'GPPI' - PD Get Port Partner Information
      8. 4.2.8 'SSrC' - PD Send Source Capabilities
      9. 4.2.9 'MBRd' - Message Buffer Read
    3. 4.3 Patch Bundle Update Tasks
      1. 4.3.1 'PBMs' - Start Patch Burst Mode Download Sequence
      2. 4.3.2 'PBMc' - Patch Burst Mode Download Complete
      3. 4.3.3 'PBMe' - End Patch Burst Mode Download Sequence
      4. 4.3.4 'GO2P' - Go to Patch Mode
    4. 4.4 System Tasks
      1. 4.4.1 'DBfg' - Clear Dead Battery Flag
      2. 4.4.2 'I2Cr' - I2C Read Transaction
      3. 4.4.3 'I2Cw' - I2C Write Transaction
  7. 5User Reference
    1. 5.1 PD Controller Application Customization
    2. 5.2 Loading a Patch Bundle
    3. 5.3 GPIO Events
    4. 5.4 AUTO_NEGOTIATE_SINK Register
      1. 5.4.1 AUTO_NEGOTIATE_SINK Usage Example 1
      2. 5.4.2 AUTO_NEGOTIATE_SINK Usage Example 2
      3. 5.4.3 AUTO_NEGOTIATE_SINK Usage Example 3
      4. 5.4.4 AUTO_NEGOTIATE_SINK Usage Example 4
  8. 6Revision History

AUTO_NEGOTIATE_SINK Register

In general, writing to AUTO_NEGOTIATE_SINK register while a sink contract is in place does not cause an automatic renegotiation, and changes take effect the next time a contract is negotiated. The ANeg command forces a re-evaluation of this register and a new Request message is issued if appropriate.

However, if a Sink PPS Explicit Contract is already in place there are some fields that do cause the PD controller to automatically reevaluate the register and send a new Request message if appropriate:

  • PPSOutputVoltage
  • PPSOperatingCurrent
  • PPSEnableSinkMode
  • PPSRequestInterval
  • RequireFullVoltageRange
  • PPSSourceMode

If PPSEnableSinkMode is changed while a Sink PPS Explicit Contract is not already in place the PD controller also automatically re-evaluates the register and sends a new Request message if appropriate.

If the first four bytes of this register are written as zero, then the PD controller will always request a 5V Fixed Suppy contract at 100mA ; unless PPSEnableSinkMode is asserted in which case an APDO can be selected.

To implement Sink PPS features in this register, the host shall provide an APDO in the TX_SINK_CAPS register. If the PD controller is evaluating a PPS supply type, it only uses the first APDO in the TX_SINK_CAPS register to determine when to assert the Capability Mismatch bit. Therefore, it is recommended that the host only have one APDO in the TX_SINK_CAPS register. In order to not assert the Capability Mismatch bit, the source APDO advertised by the source must meet these conditions:

  • RX_SOURCE_CAPS.APDO.MinVoltage <= TX_SINK_CAPS.APDO.MinVoltage
  • RX_SOURCE_CAPS.APDO.MaxVoltage >= TX_SINK_CAPS.APDO.MaxVoltage
  • RX_SOURCE_CAPS.APDO.MaxCurrent >= TX_SINK_CAPS.APDO.MaxCurrent

If the source fails any of the conditions above, a sink PPS contract is still requested if one of the source APDOs meets these conditions:

  • RX_SOURCE_CAPS.APDO.MinVoltage <= AUTO_NEGOTIATE_SINK.PPSOutputVoltage
  • RX_SOURCE_CAPS.APDO.MinVoltage >= AUTO_NEGOTIATE_SINK.PPSOutputVoltage
  • RX_SOURCE_CAPS.APDO.MaxCurrent >= AUTO_NEGOTIATE_SINK.PPSOperatingCurrent

During PPS operation, if the host sets the PPSOutputVolage field to a value outside what the source APDO can deliver as reported in the RX_SOURCE_CAPS register, then a Fixed Supply PDO is selected and the sink path can be automatically disabled (see AUTO_NEGOTIATE_SINK.PPSDisableSinkUponNonAPDOContract).

If PPS is enabled, then an APDO that fulfills the requirements is given highest priority.

The following is a high-level summary of how this register drives the PDO selection when PPS is disabled or no matching APDO is found.

  • Parse the received PDOs in the register RX_SOURCE_CAPS. Discard any PDO whose voltage range is below ANMinVoltage or above ANMaxVoltage.
  • Calculate the PDO power for each received PDO (RX_SOURCE_CAPS.SourcePdoX). Rank all PDOs according to the PDO power.
    • PDO Power = Voltage × MaximumCurrent (Fixed Supply)
    • PDO Power = MinimumVoltage × MaximumCurrent (Variable Supply)
    • PDO Power = MaximumPower (Battery Supply)
  • The PDO with maximum PDO Power that also passes the voltage check is selected. In case there are multiple PDOs that pass the voltage check and have the same maximum PDO Power, tie breakers are applied as described below:
    • A Fixed supply type is preferred, and Variable supply type is preferred over Battery supply type.
    • If the PDOs being compared have the same supply type, then ANRDOPriority specifies how to break the tie.