Author: EddieZ_31 Version: **
According to Chapter 6.7 of Universal Serial Bus Power Delivery Specification v3.0, no more than nDiscoverIdentityCount (20) Discover Identity messages shall be sent if a GoodCRC response is not received when performing cable discovery during an Explicit Contract. Why does a product based on a Cypress device like CCG6 send 60 Discover Identity messages before timeout?
Cypress implementation of the Discover Identity command complies with Universal Serial Bus Power Delivery Specification. There are two levels of retries for Discover Identity messages:
- Protocol level: For any messages sent that does not get a GoodCRC response within 1.1 ms, nRetryCount (2) retries will be done to avoid loss of message. This is done to account for the possibility of the message having been corrupted on the bus. This should not count against the nDiscoverIdentityCount.
- Policy engine level: When performing cable discovery during an Explicit Contract, the Discover Identity Command request is sent every 50 ms. 19 retries are done if no GoodCRC message response is received. This is done to account for the possibility that the EMCA is taking more time to power up and therefore not responding to messages. Only these retries are counted for nDiscoverIdentityCount.
Therefore, for each Discover Identity message with different message IDs, two retries will be done. Thus, there would be totally 20 x 3 Discover Identity messages sent. In summary, it is reasonable for a product based on a Cypress device to send 60 Discover Identity messages before timeout when doing cable discovery.