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