cancel
Showing results for 
Search instead for 
Did you mean: 

STUSB4710A output not stable

gregelectric
Associate

I developed a multi-port charger with multiple STUSB4710A and companion ST1S14PHR with the recommended bill of materials. The evaluation kit worked fine however my board does not work consistently. I read back the status register and detecting undervoltage. 

 

    uint8_t vbusStatus = readRegister(STUSB4710_I2C_ADDR, 0x10); // MONITORING_STATUS

    Serial.println(":magnifying_glass_tilted_left: Checking VBUS Voltage Faults...");
    if (vbusStatus & (1 << 0)) Serial.println(":warning:  VBUS Overvoltage Detected!");
    if (vbusStatus & (1 << 1)) Serial.println(":warning:  VBUS Undervoltage Detected!");
    if (vbusStatus & (1 << 2)) Serial.println(":warning:  Power Good Fault!");
1 ACCEPTED SOLUTION

Accepted Solutions
Peter BENSCH
ST Employee

Welcome @gregelectric, to the community!

Register 0x10 is the register TYPEC_MONITORING_STATUS_1, whose bits have the following meaning (see the register file e.g. here:(

  • [3] VBUS_READY
    • 0: VBUS disconnected (Unpowered or vSafe0V)
    • 1: VBUS connected (vSafe5V or negotiated power level)
  • [2] VBUS_VSAFE0V
    • 0: VBUS is higher than 0.8V
    • 1: VBUS is lower than 0.8V
  • [1] VBUS_VALID
    • 0: VBUS is lower than 3.9V
    • 1: VBUS is higher than 3.9V
  • [0] VCONN_VALID
    • 0: VCONN is lower than 4.1V or 2.7V
    • 1: VCONN is higher than 4.1V or 2.7V

If your check (vbusStatus & (1 << bit_x)) returns true, that bit at position x must be set. This in turn is to be interpreted according to the register table as VCONN > 4.1V/2.7V (bit 0) or VBUS > 3.9V (bit 1).

Hope that helps?

Regards
/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

1 REPLY 1
Peter BENSCH
ST Employee

Welcome @gregelectric, to the community!

Register 0x10 is the register TYPEC_MONITORING_STATUS_1, whose bits have the following meaning (see the register file e.g. here:(

  • [3] VBUS_READY
    • 0: VBUS disconnected (Unpowered or vSafe0V)
    • 1: VBUS connected (vSafe5V or negotiated power level)
  • [2] VBUS_VSAFE0V
    • 0: VBUS is higher than 0.8V
    • 1: VBUS is lower than 0.8V
  • [1] VBUS_VALID
    • 0: VBUS is lower than 3.9V
    • 1: VBUS is higher than 3.9V
  • [0] VCONN_VALID
    • 0: VCONN is lower than 4.1V or 2.7V
    • 1: VCONN is higher than 4.1V or 2.7V

If your check (vbusStatus & (1 << bit_x)) returns true, that bit at position x must be set. This in turn is to be interpreted according to the register table as VCONN > 4.1V/2.7V (bit 0) or VBUS > 3.9V (bit 1).

Hope that helps?

Regards
/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.