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.

TPS546D24A: LOGIC_CORE_ERROR SYNC_FAULT During 2Phase operation, TPS546D24S unaffected

Part Number: TPS546D24A
Other Parts Discussed in Thread: TPS546D24S, TPS546D24

Tool/software:

After awhile of steady state operation (10-60 minutes) conversion stops with the following error extracted from MCU logs:

E (4795686) TPS546: ================ TPS546 SNAPSHOT ================
E (4795688) TPS546: STATUS_WORD: 0x1842
E (4795692) TPS546: OFF
E (4795695) TPS546: CML
E (4795699) TPS546: PGOOD=NOT IN REGULATION
E (4795704) TPS546: MFR_SPECIFIC (detail)
E (4795709) TPS546: OPERATION: 0x04 (ON bit: 0)
E (4795714) TPS546: ON_OFF_CONFIG: 0x17
E (4795718) TPS546: VOUT_COMMAND: 1.000 V
E (4795723) TPS546: READ_VOUT: 0.012 V
E (4795728) TPS546: READ_VIN: 12.266 V
E (4795733) TPS546: READ_IOUT: -0.355 A
E (4795737) TPS546: TEMP1: 28 C
E (4795742) TPS546: STATUS_CML: 0x08
E (4795746) TPS546: LOGIC_CORE_ERROR
E (4795751) TPS546: STATUS_MFR_SPECIFIC: 0x02
E (4795756) TPS546: SYNC_FAULT
E (4795759) TPS546: =================================================

I have confirmed on a scope that BCX_DAT, BCX_CLK, SYNC and VSHARE signals look good with square edges. I have also air wired these lines with no change. The buck is running in strapless mode, writing the appropriate STACK_CONFIG (0x0001), SYNC_CONFIG (0x40) and PIN_DETECT_OVERRIDE (0x0000)

Here is a capture when SYNC turns off during the error:


This problem does not appear when replacing the TPS546D24A with the TPS546D24S on the same device


pin-stripping resistors (R7, R9, R10, R11, R12 & R13) and EN/UVLO parts (R4, R5, and C17) have been removed for strapless operation 

  • Hi Ben,

    Could you please capture the waveforms of the EN/UVLO pins for both U1 and U2 when the part shuts off? The STATUS indicates OFF, suggesting the CONTROL pin might be going low.

    Thank you,
    Tomoya 

  • Hi Tomoya,

    We are ignoring the CONTROL pin with:

    //u8_value = (ON_OFF_CONFIG_DELAY | ON_OFF_CONFIG_POLARITY | ON_OFF_CONFIG_CP | ON_OFF_CONFIG_CMD | ON_OFF_CONFIG_PU);
    u8_value = (ON_OFF_CONFIG_DELAY | ON_OFF_CONFIG_POLARITY | ON_OFF_CONFIG_CMD | ON_OFF_CONFIG_PU);
    smb_write_byte(PMBUS_ON_OFF_CONFIG, u8_value);
  • Hi Ben, 

    Can you please read the ON_OFF_CONFIG register? 

    E (4795714) TPS546: ON_OFF_CONFIG: 0x17

    Your snapshot says 0x17, which corresponds to acting on CONTROL only and ignore OPERATION command.

    Thank you,
    Tomoya

  • Hi Tomoya,

    I am working with Ben on this issue (and I have the hardware now). When I see the SYNC_FAULT on my TPS546D24A, ON_OFF_CONFIG is set to 0x1B

    E (52477701) TPS546: ================ TPS546 SNAPSHOT ================
    E (52477702) TPS546: STATUS_WORD: 0x1842
    E (52477702) TPS546:   OFF
    E (52477705) TPS546:   CML
    E (52477709) TPS546:   PGOOD=NOT IN REGULATION
    E (52477714) TPS546:   MFR_SPECIFIC (detail)
    E (52477719) TPS546: OPERATION: 0x04  (ON bit: 0)
    E (52477724) TPS546: ON_OFF_CONFIG: 0x1B
    E (52477729) TPS546: VOUT_COMMAND: 1.199 V
    E (52477734) TPS546: READ_VOUT:    0.021 V
    E (52477738) TPS546: READ_VIN:     12.531 V
    E (52477743) TPS546: READ_IOUT:    -0.452 A
    E (52477748) TPS546: TEMP1:        27 C
    E (52477753) TPS546: STATUS_CML: 0x88
    E (52477757) TPS546:   INVALID_COMMAND
    E (52477761) TPS546:   LOGIC_CORE_ERROR
    E (52477766) TPS546: STATUS_MFR_SPECIFIC: 0x02
    E (52477771) TPS546:   SYNC_FAULT
    E (52477775) TPS546: =================================================

    We have still not seen the SYNC_FAULT happen on the same circuit, with the same firmware configuring the regulator but using a TPS546D24S

  • Taking a board that has the TPS546D24A and gets a SYNC_FAULT after an hour or so, and replacing the two TPS546D24A with TPS546D24S (and no other changes) makes it run for multiple days with still no SYNC_FAULT. This leads me to believe there is some difference between the `A` and `S` suffix parts. Everything I can find in the documentation leads me to believe the parts are drop-in replacements, but I'm clearly seeing a difference in operation. Any thoughts on this would be much appreciated!

  • Hi Skot,

    Please refer to this E2E post on the differences between TPS546D24A and TPS546D24S: 

     https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1218180/faq-tps546d24s-i-have-been-using-the-tps546d24a-now-i-see-the-tps546d24s-what-are-the-differences 

    Regarding you case:

    SYNC_CONFIG = 0x40 configures the primary as SYNC_OUT. In this mode, the primary device is always generating a SYNC signal while it's AVIN is powered and the internal logic is running, but we see switching stop, and then 3 cycles later, we see SYNC stop.   It's reporting a logic core error, which happens when the internal processor gets stuck, times out, and then restarts.  I believe that happen when one of the BCX pins is pulled low. Please check BCX pins are not getting pulled low. 

    Also, does the issue happen at a specific temperature, such as at cold conditions?

    How is the BP1V5? Can you please monitor BP1V5 as well?

    Thank you,
    Tomoya

  • Hi Tomoya,

    I have also tried with SYNC_CONFIG = 0xD0 to set SYNC_DIR to Auto Detect. Doesn't seem to make any difference on the TPS546D24A SYNC_FAULT after 20 mins or so.

    BCX pins are not pulled low. It is just a connection between master and slave on BCX_CLK and BCX_DAT. I do have some rather long stub traces on BCX out to some test points on the PCB. I'll fix this in the future, but it doesn't seem like this is the problem because the TPS546D24S-based boards (with the same trace stubs) don't get SYNC_FAULT.

    I have not noticed the SYNC_FAULT happen at low temperatures. Being as this issue takes ~20 mins to happen, the TPS546D24A always gets up to around 53ºC and around 26W before the SYNC_FAULT.

    I have monitored BP1V5 (on the master). There is some spikes at around our switching frequency (650kHz);

    I also monitored BP1V5 on the slave, there is smaller spikes;

    After the TPS546D24A has a SYNC_FAULT and shuts down, BP1V5 spikes go away, but stays at 1.5V.

  • I am running this TPS546D24A-based board without any pin strapping resistors. So MSEL1, MSEL2, VSEL and ADRSEL are floating on the master. EN/UVLO is also floating (but master and slave are connected together) The TPS546D24A datasheet mentions EN/UVLO is pulled down internally. MSEL2 on the slave is connected to AGND.



    I have an onboard ESP32S3 microcontroller configure the TPS546D24A over PMBus at boot. Here is a read back from the TPS546D24A of all the settings just after writing them;

    I (2017) TPS546: Reading Settings
    I (2021) TPS546: ----- CONFIG
    I (2025) TPS546: read VOUT_MODE: 97
    I (2029) TPS546: read PIN_DETECT_OVERRIDE: 0000
    I (2034) TPS546: read PHASE: FF
    I (2038) TPS546: read STACK_CONFIG: 0001
    I (2042) TPS546: read SYNC_CONFIG: D0
    I (2047) TPS546: read INTERLEAVE: 0020
    I (2051) TPS546: read CAPABILITY: D0
    I (2055) TPS546: read OPERATION: 00
    I (2060) TPS546: read ON_OFF_CONFIG: 1B
    I (2064) TPS546: read FREQUENCY: 650kHz
    I (2069) TPS546: read COMPENSATION CONFIG: 12 34 42 21 04
    I (2075) TPS546: ----- VOLTAGE
    I (2078) TPS546: read VIN_ON: 11.00V
    I (2083) TPS546: read VIN_OFF: 10.50V
    I (2087) TPS546: read VIN_OV_FAULT_LIMIT: 14.00V
    I (2092) TPS546: read VIN_UV_WARN_LIMIT: 11.00V
    I (2098) TPS546: read VIN_OV_FAULT_RESPONSE: B7
    I (2103) TPS546: read VOUT_MAX: 3.00V
    I (2107) TPS546: read VOUT_MIN: 1.00 V
    I (2112) TPS546: read VOUT_OV_FAULT_LIMIT: 1.50V
    I (2117) TPS546: read VOUT_OV_WARN_LIMIT: 1.39V
    I (2122) TPS546: read VOUT_MARGIN_HIGH: 1.32V
    I (2127) TPS546: read VOUT_COMMAND: 1.20V
    I (2132) TPS546: read VOUT_MARGIN_LOW: 1.08V
    I (2137) TPS546: read VOUT_UV_WARN_LIMIT: 1.08V
    I (2142) TPS546: read VOUT_UV_FAULT_LIMIT: 0.90V
    I (2204) TPS546: ----- VOLTAGE/CURRENT
    I (2209) TPS546: read READ_VIN: 12.53V
    I (2213) TPS546: read READ_IOUT: -0.42A
    I (2218) TPS546: read READ_VOUT: 0.02V
    I (2222) TPS546: ----- IOUT
    I (2226) TPS546: read IOUT_OC_WARN_LIMIT: 50.00A
    I (2231) TPS546: read IOUT_OC_FAULT_LIMIT: 55.00A
    I (2236) TPS546: read IOUT_OC_FAULT_RESPONSE: C0
    I (2241) TPS546: ----- TEMPERATURE
    I (2246) TPS546: read OT_WARN_LIMIT: 105C
    I (2250) TPS546: read OT_FAULT_LIMIT: 145C
    I (2255) TPS546: read OT_FAULT_RESPONSE: FF
    I (2260) TPS546: ----- TIMING
    I (2264) TPS546: read TON_DELAY: 0ms
    I (2268) TPS546: read TON_RISE: 3ms
    I (2272) TPS546: read TON_MAX_FAULT_LIMIT: 0ms
    I (2277) TPS546: read TON_MAX_FAULT_RESPONSE: 3B
    I (2282) TPS546: read TOFF_DELAY: 0ms
    I (2287) TPS546: read TOFF_FALL: 0ms

  • Hi Skot,

    The read from ON_OFF_CONFIG is showing 0x1B, which corresponds to OPERATION only mode. In this configuration, the device ignores the CONTROL pin.

    However, your OPERATION register is showing 0x00, which disables power conversion. As a result, the device output remains disabled.

    To enable the output, please set the OPERATION command to 0x80.

    Thank you,
    Tomoya

  • Hi Tomoya,

    Yes, we are using OPERATION = 0x80 to enable the regulator. The issue is that after 20 minutes the TPS546D24A shuts off and STATUS_MFR_SPECIFIC shows a SYNC_FAULT. This does not happen on an otherwise identical configuration and PCB with the TPS546D24S

    thanks,

    -Skot