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.
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
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.