This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TPS23881: Power event

Part Number: TPS23881


Hi Team, 

Could you verify that my understanding for the sequence of events of a power event is correct? (single signature 4-pair)

In Semi-auto mode, after turn on a channel using 0x19h, 

1)  A "power enable status change" event should happen and this should be indicated in register 02h in the lower order bits. Register 10h should have the bits set for PE for that channel.

2)  A "power good status change" event should then happen and this should be indicated in register 02h in the higher order bits. This is confirmation that the channel has been powered on successfully. Register 10h should have the bits set for PG for that channel (also PE)

3) From now on, as long as the channel is receiving appropriate power,  register 10h should have the bits set for PE and PG for that channel.

The background is that the customer is testing start faults, and datasheet for register 08h says:

 "When a Start Fault is reported and the PECn bit is not set, then the Power-On Fault register (0x24h) will indicate the cause of the fault"

When customer powers on the port for the simulated PD, they get an inrush fault right away. When handling the inrush fault, check register 10h to see if PE bit is set and in some cases where it is not set, so end up reading 0x24h for the cause of Start fault.

Thank you, 
Delaney

  • Hi Delaney,

    Your understanding is correct. 

  • Thank you Penny, 

    Is there any issue with this? or is this normal?

    "When customer powers on the port for the simulated PD, they get an inrush fault right away. When handling the inrush fault, check register 10h to see if PE bit is set and in some cases where it is not set, so end up reading 0x24h for the cause of Start fault."

    Thank you, 

    Delaney

  • Hi Delaney,

    Do you mean they see the inrush current is higher than the limit but the PE bit is not set? What's the 0x24 value? Thanks.

  • Hi Penny, 

    Sorry for the delay. 

    Customer stopped seeing inrush faults during the PD Power-up, but is now seeing inrush faults after PD disconnects. 

    The test set-up is: simulate 4-pair single signature class 5 PD on Sifos and after successfully powering it up, detach and see the interrupt register (0x00) indicating an inrush event happened. 

    Register 0x24 should 0x50 indicating an invalid detection. 

    I attached the register dump when this happens for reference. (Also, to mention, customer does a clear on read for all the registers, when producing this register dump, they did a read of 0x08 instead of 0x09.)

    Appreciate the feedback!


    Thank you, 
    Delaney

    I2C address = 0x20
    
      TPS238X_INTERRUPT_REGISTER addr:0x00, value:0x40               ===> Start fault
      TPS238X_INTERRUPT_MASK_REGISTER addr:0x01, value:0x80
     TPS238X_POWER_EVENT_REGISTER addr:0x02, value:0x00
     TPS238X_POWER_EVENT_CLEAR_REGISTER addr:0x03, value:0x00
     TPS238X_DETECTION_EVENT_REGISTER addr:0x04, value:0x00
     TPS238X_DETECTION_EVENT_CLEAR_REGISTER addr:0x05, value:0x00
     TPS238X_FAULT_EVENT_REGISTER addr:0x06, value:0x00
     TPS238X_FAULT_EVENT_CLEAR_REGISTER addr:0x07, value:0x00
     TPS238X_START_LIMIT_EVENT_REGISTER addr:0x08, value:0x0c
     TPS238X_START_LIMIT_EVENT_CLEAR_REGISTER addr:0x09, value:0x0c
     TPS238X_SUPPLY_EVENT_REGISTER addr:0x0A, value:0x00
     TPS238X_SUPPLY_EVENT_CLEAR_REGISTER addr:0x0B, value:0x00
     TPS238X_CHANNEL_1_STATUS_REGISTER addr:0x0C, value:0x06
     TPS238X_CHANNEL_2_STATUS_REGISTER addr:0x0D, value:0x06
     TPS238X_CHANNEL_3_STATUS_REGISTER addr:0x0E, value:0x06
     TPS238X_CHANNEL_4_STATUS_REGISTER addr:0x0F, value:0x06
     TPS238X_POWER_STATUS_REGISTER addr:0x10, value:0x00
     TPS238X_I2C_SLAVE_ADDRESS_REGISTER addr:0x11, value:0x00
     TPS238X_OPERATING_MODE_REGISTER addr:0x12, value:0xaa
     TPS238X_DISCONNECT_ENABLE_REGISTER addr:0x13, value:0x0f
     TPS238X_DETECT_CLASS_ENABLE_REGISTER addr:0x14, value:0xff
     TPS238X_PORT_POWER_PRIORITY_REGISTER addr:0x15, value:0x00
     TPS238X_TIMING_CONFIGURATION_REGISTER addr:0x16, value:0x2c
     TPS238X_GENERAL_MASK_REGISTER                     addr:0x17, value:0x90
     TPS238X_DETECT_CLASS_RESTART_REGISTER addr:0x18, value:0x00
     TPS238X_POWER_ENABLE_REGISTER addr:0x19, value:0x00
     TPS238X_RESET_REGISTER addr:0x1A, value:0x00
     TPS238X_ID_REGISTER addr:0x1B, value:0x55
     TPS238X_CONNECTIONCHECK_AUTOCLASS_REGISTER addr:0x1C, value:0x00
     TPS238X_2P_POLICE_1_CONFIG_REGISTER addr:0x1E, value:0xff
     TPS238X_2P_POLICE_2_CONFIG_REGISTER addr:0x1F, value:0x0xff
     TPS238X_2P_POLICE_3_CONFIG_REGISTER addr:0x20, value:0xff
     TPS238X_2P_POLICE_4_CONFIG_REGISTER addr:0x21, value:0xff
     TPS238X_LEGACY_DETECTION_REGISTER addr:0x22, value:0x00
     TPS238X_POWER_ON_FAULT_EVENT_REGISTER addr:0x24, value:0x50
     TPS238X_POWER_ON_FAULT_CLEAR_EVENT_REGISTER addr:0x25, value:0x50
     TPS238X_CHANNEL_REMAPPING_REGISTER addr:0x26, value:0xe4
     TPS238X_MULTI_BIT_PORT_PRIORITY_21_REGISTER addr:0x27, value:0x00
     TPS238X_MULTI_BIT_PORT_PRIORITY_43_REGISTER addr:0x28, value:0x00
     TPS238X_4PWIRED_POWER_ALLOCATION_CONFIG_REGISTER addr:0x29, value:0xdd
     TPS238X_4P_POLICE_12_CONFIG_REGISTER addr:0x2A, value:0xff
     TPS238X_4P_POLICE_34_CONFIG_REGISTER addr:0x2B, value:0xff
     TPS238X_TEMPERATURE_REGISTER addr:0x2C, value:0x67
     TPS238X_4P_DISCONNECT_PCUT_ILIM_CONFIG_REGISTER addr:0x2D, value:0x00
     TPS238X_INPUT_VOLTAGE_REGISTER addr:0x2E, value:0x54
     TPS238X_INPUT_VOLTAGE_LSB_REGISTER addr:0x2E, value:0x54
     TPS238X_INPUT_VOLTAGE_MSB_REGISTER addr:0x2F, value:0x38
     TPS238X_CHANNEL_1_CURRENT_REGISTER addr:0x30, value:0x00
     TPS238X_CHANNEL_1_CURRENT_LSB_REGISTER       addr:0x30, value:0x00
     TPS238X_CHANNEL_1_CURRENT_MSB_REGISTER addr:0x31, value:0x00
     TPS238X_CHANNEL_1_VOLTAGE_REGISTER addr:0x32, value:0x00
     TPS238X_CHANNEL_1_VOLTAGE_LSB_REGISTER addr:0x32, value:0x00
     TPS238X_CHANNEL_1_VOLTAGE_MSB_REGISTER addr:0x33, value:0x00
     TPS238X_CHANNEL_2_CURRENT_REGISTER addr:0x34, value:0x00
     TPS238X_CHANNEL_2_CURRENT_LSB_REGISTER addr:0x34, value:0x00
     TPS238X_CHANNEL_2_CURRENT_MSB_REGISTER addr:0x35, value:0x00
     TPS238X_CHANNEL_2_VOLTAGE_REGISTER addr:0x36, value:0x00
     TPS238X_CHANNEL_2_VOLTAGE_LSB_REGISTER addr:0x36, value:0x00
     TPS238X_CHANNEL_2_VOLTAGE_MSB_REGISTER addr:0x37, value:0x00
     TPS238X_CHANNEL_3_CURRENT_REGISTER addr:0x38, value:0x00
     TPS238X_CHANNEL_3_CURRENT_LSB_REGISTER addr:0x38, value:0x00
     TPS238X_CHANNEL_3_CURRENT_MSB_REGISTER addr:0x39, value:0x00
     TPS238X_CHANNEL_3_VOLTAGE_REGISTER addr:0x3A, value:0x00
     TPS238X_CHANNEL_3_VOLTAGE_LSB_REGISTER addr:0x3A, value:0x00
     TPS238X_CHANNEL_3_VOLTAGE_MSB_REGISTER addr:0x3B, value:0x00
     TPS238X_CHANNEL_4_CURRENT_REGISTER addr:0x3C, value:0x00
     TPS238X_CHANNEL_4_CURRENT_LSB_REGISTER addr:0x3C, value:0x00
     TPS238X_CHANNEL_4_CURRENT_MSB_REGISTER addr:0x3D, value:0x00
     TPS238X_CHANNEL_4_VOLTAGE_REGISTER addr:0x3E, value:0x00
     TPS238X_CHANNEL_4_VOLTAGE_LSB_REGISTER addr:0x3E, value:0x00
     TPS238X_CHANNEL_4_VOLTAGE_MSB_REGISTER addr:0x3F, value:0x00
     TPS238X_CHANNEL_FOLDBACK addr:0x40, value:0x00
     TPS238X_FIRMWARE_REVISION_REGISTER addr:0x41, value:0x07
     TPS238X_I2C_WATCHDOG_REGISTER addr:0x42, value:0x16
     TPS238X_DEVICE_ID_REGISTER addr:0x43, value:0x22
     TPS238X_CHANNEL_1_DETECT_RESISTANCE_REGISTER addr:0x44, value:0xff
     TPS238X_CHANNEL_2_DETECT_RESISTANCE_REGISTER addr:0x45, value:0xff
     TPS238X_CHANNEL_3_DETECT_RESISTANCE_REGISTER addr:0x46, value:0xff
     TPS238X_CHANNEL_4_DETECT_RESISTANCE_REGISTER addr:0x47, value:0xff
     TPS238X_CHANNEL_1_DETECT_CAPACITANCE_REGISTER addr:0x48, value:0xba
     TPS238X_CHANNEL_2_DETECT_CAPACITANCE_REGISTER addr:0x49, value:0x51
     TPS238X_CHANNEL_3_DETECT_CAPACITANCE_REGISTER addr:0x4A, value:0x00
     TPS238X_CHANNEL_4_DETECT_CAPACITANCE_REGISTER addr:0x4B, value:0x00
     TPS238X_CHANNEL_1_ASSIGNED_CLASS_REGISTER addr:0x4C, value:0x00
     TPS238X_CHANNEL_2_ASSIGNED_CLASS_REGISTER addr:0x4D, value:0x00
     TPS238X_CHANNEL_3_ASSIGNED_CLASS_REGISTER addr:0x4E, value:0x00
     TPS238X_CHANNEL_4_ASSIGNED_CLASS_REGISTER addr:0x4F, value:0x00
     TPS238X_AUTO_CLASS_CONTROL_REGISTER addr:0x50, value:0x00
     TPS238X_CHANNEL_1_AUTO_CLASS_POWER_REGISTER addr:0x51, value:0x00
     TPS238X_CHANNEL_2_AUTO_CLASS_POWER_REGISTER addr:0x52, value:0x00
     TPS238X_CHANNEL_3_AUTO_CLASS_POWER_REGISTER addr:0x53, value:0x00
     TPS238X_CHANNEL_4_AUTO_CLASS_POWER_REGISTER addr:0x54, value:0x00
     TPS238X_ALTERNATIVE_FOLDBACK_ENABLE_REGISTER addr:0x55, value:0x00
     TPS238X_SRAM_CONTROL_REGISTER addr:0x60, value:0x18
     TPS238X_SRAM_START_ADDRESS_LSB_REGISTER addr:0x62, value:0x00
     TPS238X_SRAM_START_ADDRESS_MSB_REGISTER addr:0x63, value:0x80
     
     I2C address = 0x21
     
     TPS238X_INTERRUPT_REGISTER addr:0x00, value:0x08
     TPS238X_INTERRUPT_MASK_REGISTER addr:0x01, value:0x80
     TPS238X_POWER_EVENT_REGISTER addr:0x02, value:0x00
     TPS238X_POWER_EVENT_CLEAR_REGISTER addr:0x03, value:0x00
     TPS238X_DETECTION_EVENT_REGISTER addr:0x04, value:0x0f
     TPS238X_DETECTION_EVENT_CLEAR_REGISTER addr:0x05, value:0x0f
     TPS238X_FAULT_EVENT_REGISTER addr:0x06, value:0x00
     TPS238X_FAULT_EVENT_CLEAR_REGISTER addr:0x07, value:0x00
     TPS238X_START_LIMIT_EVENT_REGISTER addr:0x08, value:0x00
     TPS238X_START_LIMIT_EVENT_CLEAR_REGISTER addr:0x09, value:0x00
     TPS238X_SUPPLY_EVENT_REGISTER addr:0x0A, value:0x00
     TPS238X_SUPPLY_EVENT_CLEAR_REGISTER addr:0x0B, value:0x00
     TPS238X_CHANNEL_1_STATUS_REGISTER addr:0x0C, value:0x06
     TPS238X_CHANNEL_2_STATUS_REGISTER addr:0x0D, value:0x06
     TPS238X_CHANNEL_3_STATUS_REGISTER addr:0x0E, value:0x06
     TPS238X_CHANNEL_4_STATUS_REGISTER addr:0x0F, value:0x06
     TPS238X_POWER_STATUS_REGISTER addr:0x10, value:0x00
     TPS238X_I2C_SLAVE_ADDRESS_REGISTER addr:0x11, value:0x04
     TPS238X_OPERATING_MODE_REGISTER addr:0x12, value:0xaa
     TPS238X_DISCONNECT_ENABLE_REGISTER addr:0x13, value:0x0f
     TPS238X_DETECT_CLASS_ENABLE_REGISTER addr:0x14, value:0xff
     TPS238X_PORT_POWER_PRIORITY_REGISTER addr:0x15, value:0x00
     TPS238X_TIMING_CONFIGURATION_REGISTER addr:0x16, value:0x2c
     TPS238X_GENERAL_MASK_REGISTER                     addr:0x17, value:0x80
     TPS238X_DETECT_CLASS_RESTART_REGISTER addr:0x18, value:0x00
     TPS238X_POWER_ENABLE_REGISTER addr:0x19, value:0x00
     TPS238X_RESET_REGISTER addr:0x1A, value:0x00
     TPS238X_ID_REGISTER addr:0x1B, value:0x55
     TPS238X_CONNECTIONCHECK_AUTOCLASS_REGISTER addr:0x1C, value:0x00
     TPS238X_2P_POLICE_1_CONFIG_REGISTER addr:0x1E, value:0xff
     TPS238X_2P_POLICE_2_CONFIG_REGISTER addr:0x1F, value:0x0xff
     TPS238X_2P_POLICE_3_CONFIG_REGISTER addr:0x20, value:0xff
     TPS238X_2P_POLICE_4_CONFIG_REGISTER addr:0x21, value:0xff
     TPS238X_LEGACY_DETECTION_REGISTER addr:0x22, value:0x00
     TPS238X_POWER_ON_FAULT_EVENT_REGISTER addr:0x24, value:0x00
     TPS238X_POWER_ON_FAULT_CLEAR_EVENT_REGISTER addr:0x25, value:0x00
     TPS238X_CHANNEL_REMAPPING_REGISTER addr:0x26, value:0xe4
     TPS238X_MULTI_BIT_PORT_PRIORITY_21_REGISTER addr:0x27, value:0x00
     TPS238X_MULTI_BIT_PORT_PRIORITY_43_REGISTER addr:0x28, value:0x00
     TPS238X_4PWIRED_POWER_ALLOCATION_CONFIG_REGISTER addr:0x29, value:0xdd
     TPS238X_4P_POLICE_12_CONFIG_REGISTER addr:0x2A, value:0xff
     TPS238X_4P_POLICE_34_CONFIG_REGISTER addr:0x2B, value:0xff
     TPS238X_TEMPERATURE_REGISTER addr:0x2C, value:0x67
     TPS238X_4P_DISCONNECT_PCUT_ILIM_CONFIG_REGISTER addr:0x2D, value:0x00
     TPS238X_INPUT_VOLTAGE_REGISTER addr:0x2E, value:0x54
     TPS238X_INPUT_VOLTAGE_LSB_REGISTER addr:0x2E, value:0x54
     TPS238X_INPUT_VOLTAGE_MSB_REGISTER addr:0x2F, value:0x38
     TPS238X_CHANNEL_1_CURRENT_REGISTER addr:0x30, value:0x00
     TPS238X_CHANNEL_1_CURRENT_LSB_REGISTER       addr:0x30, value:0x00
     TPS238X_CHANNEL_1_CURRENT_MSB_REGISTER addr:0x31, value:0x00
     TPS238X_CHANNEL_1_VOLTAGE_REGISTER addr:0x32, value:0x00
     TPS238X_CHANNEL_1_VOLTAGE_LSB_REGISTER addr:0x32, value:0x00
     TPS238X_CHANNEL_1_VOLTAGE_MSB_REGISTER addr:0x33, value:0x00
     TPS238X_CHANNEL_2_CURRENT_REGISTER addr:0x34, value:0x00
     TPS238X_CHANNEL_2_CURRENT_LSB_REGISTER addr:0x34, value:0x00
     TPS238X_CHANNEL_2_CURRENT_MSB_REGISTER addr:0x35, value:0x00
     TPS238X_CHANNEL_2_VOLTAGE_REGISTER addr:0x36, value:0x00
     TPS238X_CHANNEL_2_VOLTAGE_LSB_REGISTER addr:0x36, value:0x00
     TPS238X_CHANNEL_2_VOLTAGE_MSB_REGISTER addr:0x37, value:0x00
     TPS238X_CHANNEL_3_CURRENT_REGISTER addr:0x38, value:0x00
     TPS238X_CHANNEL_3_CURRENT_LSB_REGISTER addr:0x38, value:0x00
     TPS238X_CHANNEL_3_CURRENT_MSB_REGISTER addr:0x39, value:0x00
     TPS238X_CHANNEL_3_VOLTAGE_REGISTER addr:0x3A, value:0x00
     TPS238X_CHANNEL_3_VOLTAGE_LSB_REGISTER addr:0x3A, value:0x00
     TPS238X_CHANNEL_3_VOLTAGE_MSB_REGISTER addr:0x3B, value:0x00
     TPS238X_CHANNEL_4_CURRENT_REGISTER addr:0x3C, value:0x00
     TPS238X_CHANNEL_4_CURRENT_LSB_REGISTER addr:0x3C, value:0x00
     TPS238X_CHANNEL_4_CURRENT_MSB_REGISTER addr:0x3D, value:0x00
     TPS238X_CHANNEL_4_VOLTAGE_REGISTER addr:0x3E, value:0x00
     TPS238X_CHANNEL_4_VOLTAGE_LSB_REGISTER addr:0x3E, value:0x00
     TPS238X_CHANNEL_4_VOLTAGE_MSB_REGISTER addr:0x3F, value:0x00
     TPS238X_CHANNEL_FOLDBACK addr:0x40, value:0x00
     TPS238X_FIRMWARE_REVISION_REGISTER addr:0x41, value:0x07
     TPS238X_I2C_WATCHDOG_REGISTER addr:0x42, value:0x16
     TPS238X_DEVICE_ID_REGISTER addr:0x43, value:0x22
     TPS238X_CHANNEL_1_DETECT_RESISTANCE_REGISTER addr:0x44, value:0xff
     TPS238X_CHANNEL_2_DETECT_RESISTANCE_REGISTER addr:0x45, value:0xff
     TPS238X_CHANNEL_3_DETECT_RESISTANCE_REGISTER addr:0x46, value:0xff
     TPS238X_CHANNEL_4_DETECT_RESISTANCE_REGISTER addr:0x47, value:0xff
     TPS238X_CHANNEL_1_DETECT_CAPACITANCE_REGISTER addr:0x48, value:0x1b
     TPS238X_CHANNEL_2_DETECT_CAPACITANCE_REGISTER addr:0x49, value:0x13
     TPS238X_CHANNEL_3_DETECT_CAPACITANCE_REGISTER addr:0x4A, value:0x00
     TPS238X_CHANNEL_4_DETECT_CAPACITANCE_REGISTER addr:0x4B, value:0x00
     TPS238X_CHANNEL_1_ASSIGNED_CLASS_REGISTER addr:0x4C, value:0x00
     TPS238X_CHANNEL_2_ASSIGNED_CLASS_REGISTER addr:0x4D, value:0x00
     TPS238X_CHANNEL_3_ASSIGNED_CLASS_REGISTER addr:0x4E, value:0x00
     TPS238X_CHANNEL_4_ASSIGNED_CLASS_REGISTER addr:0x4F, value:0x00
     TPS238X_AUTO_CLASS_CONTROL_REGISTER addr:0x50, value:0x00
     TPS238X_CHANNEL_1_AUTO_CLASS_POWER_REGISTER addr:0x51, value:0x00
     TPS238X_CHANNEL_2_AUTO_CLASS_POWER_REGISTER addr:0x52, value:0x00
     TPS238X_CHANNEL_3_AUTO_CLASS_POWER_REGISTER addr:0x53, value:0x00
     TPS238X_CHANNEL_4_AUTO_CLASS_POWER_REGISTER addr:0x54, value:0x00
     TPS238X_ALTERNATIVE_FOLDBACK_ENABLE_REGISTER addr:0x55, value:0x00
     TPS238X_SRAM_CONTROL_REGISTER addr:0x60, value:0x00
     TPS238X_SRAM_START_ADDRESS_LSB_REGISTER addr:0x62, value:0x00
     TPS238X_SRAM_START_ADDRESS_MSB_REGISTER addr:0x63, value:0x00
    
    

  • Delaney,

    Did the host try to turn on the port through 0x19 while the sifos is de-attached from the PSE port? If there's nothing connected to the port and the host writes to 0x19 register to turn on the port, this fault is expected. Thanks.

    Best regards,

    Penny

  • Thank you, Penny! 

    -Delaney