TPS26750: Can I connect VBUS_LV to a 3.3V LDO instead of TPD4S480?

Part Number: TPS26750
Other Parts Discussed in Thread: TPD4S480, , , TPS25750

Tool/software:

Building sink only.

When I make a request for 36V, it jumps to 36V, then 0, i.e. power off, restarts, then back to 36V. Power-Z shows soft reset.

My suspicion is something with the TPD4S480 EPR switch.

HW is based on TPS26750EVM, which has 2x100nF at VBUS_LV, although datasheet recommend 1-10uF.

My question is, can I skip the TPD FET altogether and connect TPS VBUS to my 3.3V LDO (external that feeds MCU, TPS 3V3, etc, i.e. not TPS LDO_3V3, which I know is weak)?

If I can skip the TPS FET, is there any reason to even using the TPD, or can I just use TVS instead?

  • Hi Richard,

    The TPD4S480 is required for any designs using the TPS26750. The TPS26750 does not natively support EPR voltages, VBUS_LV is the output of a divider circuit and is used to monitor the VBUS voltage.

    HW is based on TPS26750EVM, which has 2x100nF at VBUS_LV, although datasheet recommend 1-10uF.

    The EVM values are correct.

    My question is, can I skip the TPD FET altogether and connect TPS VBUS to my 3.3V LDO (external that feeds MCU, TPS 3V3, etc, i.e. not TPS LDO_3V3, which I know is weak)?

    No.

    When I make a request for 36V, it jumps to 36V, then 0, i.e. power off, restarts, then back to 36V. Power-Z shows soft reset.

    Please share your PD logs and the json you are using with the EVM. We can try to help debug the sinking issue.

    Thanks and Regards,

    Chris

  • Thanks,
    See attched logs.

    My ADCs are connected to LDO1V5 for no battery safe mode, correct from what I understand. I am also powering Vin3V3 from an external LDO connected to VBUS.

    My patch bundle is set to start at 5V (AutoNeg, PPS and AVS are all set to 5V), which I get if I make no other request.

    If I make a request for 28/36V, i get the voltage for a few ms, then 0, hard reset in USB monitor, only "plugged changed" IRQ (plus bit 21, 23, 24, 25, 26, 30, 51, 52) in TPS (no soft/hard reset IRQ) and no reset info in PD Status.

    A weird workaround. If I first request 9Vand then request 28/36, everything works fine. But if I first request 5V, then 28/36 I get the reset.

    I also am not able to request AVS. PPS and Fixed works fine, but not AVS, but I have put that aside for now.

    Let me know what debug you want me to do.

    First 5V contract after boot:

    Requesting 5V:

    Requesting 28V. Not that there is about a second of 0V before it comes back to 5V and restart. 

    Workaround:


    Requesting 9V:

    Requesting 28V, all good!

  • Hi Richard,

    Thanks for the logs. It's interesting that the TPS26750 seems to be working as expected, where it provides 28-V on VBUS and sends the PSRDY message.

    Is there a way to see GoodCRC messages in this log? Per the PD spec, every message should be "acked" by the far-end with a GoodCRC message (see example log below), indicating that the farend received the message. I would only expect the TPS26750 to continuously send PSRDY's if the far-end does not GoodCRC. We only really expect one PSRDY.

    Can you send your json used with the GUI? I'll try to do some similar testing with an EVM to see if I can replicate this behavior.

    Interesting catch with your workaround. I also think there is something in the configuration that could be modified that might help related to this finding. I'll have to double check your config though.

    In the meantime, after the reset happens, can you possible read and report the PD Status register? It can provide additional info on why a reset occurred if it was initiated by the TPS26750.

    Thanks and Regards,

    Chris

  • Reg 0x40:

    Note that the power shuts off after the spike, unless I power by e.g. debug.

    Before patch is loaded:
    buf[0] = 0x00 (00000000)
    buf[1] = 0x00 (00000000)
    buf[2] = 0x00 (00000000)
    buf[3] = 0x00 (00000000)

    After patch loaded:
    buf[0] = 0x10 (00010000)
    buf[1] = 0x00 (00000000)
    buf[2] = 0x00 (00000000)
    buf[3] = 0x00 (00000000)

    Plug change IRQ (righ after patch load):
    buf[0] = 0x1C (00011100)
    buf[1] = 0x00 (00000000)
    buf[2] = 0x00 (00000000)
    buf[3] = 0x00 (00000000)

    IRQ plug removed (when source shuts down but still powered by debug), if I dont power by debug it will reboot and be 0.
    buf[0] = 0x10 (00010000)
    buf[1] = 0x00 (00000000)
    buf[2] = 0x00 (00000000)
    buf[3] = 0x00 (00000000)

    I have tons of charges to play with.

    One (65W no EPR) will not power on unless I power with debug.

    VBUS to to 5V for about 50ms and shuts off and just keeps cycling.

    That is why I am suspecting some HW or no battery safe mode?

    I have both ADCs to LDO1V5, and powering Vin3V3 by LDO from VBUS and debug.

    Relevant schematics:

    Config.json

    www.dropbox.com/.../Config.json

  • Hi Richard,

    TI USA is off on 4th of July, we will share a response to you early next week.

    Thanks and Regards,
    Annchit

  • Hi Richard,

    I'm not sure what happened, but when I tried opening your json in the v1.1.0 GUI, it did not seem correct. I only saw SPR PDOs and there were some other settings that seemed incorrect. The pjt was also sink only. Not sure if it was an importing issue, but your pjt did not work on my EVM during testing.

    Are you just trying to test EPR sink?

    {
      "questionnaire": {
        "device": "TPS26750",
        "toolBuildVersion": "1.1.0",
        "answers": [
          null,
          3,
          4,
          7,
          1,
          0,
          3,
          0,
          null,
          1,
          1,
          3,
          0,
          0,
          1.536,
          5,
          2,
          2,
          0
        ],
        "vendorId": "0000",
        "productId": "0000",
        "version": "1.0.0.2"
      },
      "configuration": {
        "data": {
          "selected_ace": [
            {
              "register": 6,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 22,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                3
              ]
            },
            {
              "register": 40,
              "data": [
                0,
                0,
                46,
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                3
              ]
            },
            {
              "register": 41,
              "data": [
                50,
                80,
                128,
                0
              ]
            },
            {
              "register": 50,
              "data": [
                0,
                170,
                42,
                44,
                145,
                1,
                32,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                244,
                177,
                4,
                224,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                170,
                10,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 51,
              "data": [
                36,
                44,
                145,
                1,
                16,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                244,
                193,
                8,
                0,
                244,
                65,
                11,
                0,
                244,
                1,
                15,
                0,
                180,
                150,
                192,
                195,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 55,
              "data": [
                118,
                64,
                31,
                65,
                144,
                145,
                33,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 66,
              "data": [
                26,
                0,
                8,
                0
              ]
            },
            {
              "register": 92,
              "data": [
                4,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                92,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 112,
              "data": [
                3
              ]
            },
            {
              "register": 119,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                15,
                0
              ]
            },
            {
              "register": 120,
              "data": [
                0,
                0,
                0,
                128
              ]
            },
            {
              "register": 122,
              "data": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 123,
              "data": [
                0,
                2,
                255,
                255,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 125,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 126,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 152,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            }
          ]
        }
      }
    }

    Please try this json with GUI v1.1.0 and your board. I was able to test it with the EVM and it appears to sink 28-V with no disconnect.

    There were a couple issues with the first json that this one should resolve:

    • no epr pdos
    • GPIO2 in a weird state


    The reads to register 0x40 don't seem to indicate that the PD controller is initiating a disconnect. We only ever see the first byte populate, which is just connection information. The PD controller logs soft reset, hard reset, and error recovery info in the upper 3 bytes.

    Thanks and Regards,

    Chris

  • Thanks,

    I will be out of office the coming three weeks and will test when I get back.

    There seems to be a bug in the GUI, if you import a json from the first page (where you select TPS25750/751/26750) it will not apply the imported settings, you first have to select TPS26750 and go to advanced then import.

    I was able to import my json.

    I see from your log that you go to 20V before 28V, that is my workaround, if I first select any other PDO than 5V, I can then select an EPR. And if I set Autoneg to an EPR in the GUI it will start with a EPR. But if I start with 5V, or go back to 5V, it will reset if I want an EPR, i cannot go from 5V to EPR, I have to go 5V-e.g.9V-EPR.

    Note that I have Autoneg set for host, not controller to set voltages. See attached picture and also json if you can import it.

  • Hi Richard,

    Understood, let me re-test and get back to you. Enjoy your break!

    Thanks and Regards,

    Chris

  • Thanks, yes timing of EPR_EN makes sense and was was the reason for my initial suspicion of the TPD or increased capacitance, or replacing it with an LDO or FET and zener to limit at 20V.

    But, why does it work for you and not for me to switch from 5V to 28V? You use the EVM which mine is based on. What ADC/dead battery settings are you using?

    My next issue is how to use AVS? I can do fixed and PPS but I have not been able to get AVS to work.

  • Hi Richard,

    I need to evaluate the EPR_EN issue more to make sure it is the issue being seen. I was using a different (newer) version of the PD controller patch fw that would be added in the next release of the GUI.

    My next issue is how to use AVS? I can do fixed and PPS but I have not been able to get AVS to work.

    Let me look into this. Do you have a PD source that supports AVS?

    Thanks and Regards,

    Chris

  • Thanks Chris,

    Yes I have a few AVS sources to test with. One of them being Framework 180W.

    Also, what do you think of the one 65W source that do not even power up, but works with phones and computers?

    You still have not answered my question about ADC/no battery setting, which I am not 100% I got right by tying both to 1.5V.

  • Hi Richard,

    Also, what do you think of the one 65W source that do not even power up, but works with phones and computers?

    This is unusual, there should not be any reason it doesn't work unless it is doing something strange with the PD protocol. You should at least be able to get 5-V.

    You still have not answered my question about ADC/no battery setting, which I am not 100% I got right by tying both to 1.5V.

    Always enable sink should be fine. You are flashing the GUI image over I2C from an MCU?

    The EVM only uses the EEPROM so I typically test with safe mode, but there should be no issues using Always Enable Sink as your dead battery configuration.

    I'll need to spend more time looking into the EPR_EN timing but will keep you updated.

    Thanks and Regards,

    Chris

  • Thanks,

    Yeah, there is no PD communication with that charger what I can see. Power-Z does not log anything. It outputs 5V for 50ms then shuts off. I guess it does not get the correct CC communication.

    Yes, I am uploading patch bundle from MCU.

    Thanks for confirming ADC settings.

  • Thanks,

    I'll keep you updated on the progress of the EPR_EN and sensing, and the EPR AVS.

    Thanks and Regards,

    Chris

  • Hi Richard,

    Still looking into the EPR_EN 5V to high voltage transition issue. It may not be an issue with the GPIO.

    I had some time to look into EPR AVS and wanted to update you there. Here are the basic steps and requirement for EPR AVS:

    1. Have a Sink EPR AVS PDO
    2. Configure the Autonegotiate Sink/EPR Sink AVS Controls
      1. Enable EPR AVS Sink Mode
      2. Set the operating current to the initial operating current you desire (50mA bitsteps)
      3. Set the Output voltage to the initial Output voltage you desire (25mV bitsteps, but should only program in 100mV increments)
      4. This image has the current set to 750mA and 23V
      5. This may change depending on your autonegotiate sink settings (max voltage, power, etc), but at least with the config I shared below, it should attempt to negotiate 23-V if supported by the USB-C PD source.

    {
      "questionnaire": {
        "device": "TPS26750",
        "toolBuildVersion": "1.1.0",
        "answers": [
          null,
          3,
          7,
          7,
          1,
          0,
          3,
          0,
          null,
          1,
          1,
          3,
          0,
          0,
          1.536,
          5,
          2,
          2,
          0
        ],
        "vendorId": "0000",
        "productId": "0000",
        "version": "1.0.0.2"
      },
      "configuration": {
        "data": {
          "selected_ace": [
            {
              "register": 6,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 22,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                3
              ]
            },
            {
              "register": 40,
              "data": [
                0,
                0,
                46,
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                3
              ]
            },
            {
              "register": 41,
              "data": [
                50,
                80,
                128,
                0
              ]
            },
            {
              "register": 50,
              "data": [
                0,
                170,
                42,
                44,
                145,
                1,
                32,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                244,
                177,
                4,
                224,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                244,
                193,
                8,
                0,
                244,
                65,
                11,
                0,
                244,
                1,
                15,
                0,
                180,
                150,
                192,
                195,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                170,
                10,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 51,
              "data": [
                36,
                44,
                145,
                1,
                16,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                244,
                193,
                8,
                0,
                244,
                65,
                11,
                0,
                244,
                1,
                15,
                0,
                180,
                150,
                192,
                195,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 55,
              "data": [
                118,
                64,
                31,
                65,
                144,
                145,
                33,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                1,
                0,
                0,
                0,
                15,
                48,
                7,
                0
              ]
            },
            {
              "register": 66,
              "data": [
                26,
                0,
                8,
                0
              ]
            },
            {
              "register": 92,
              "data": [
                13,
                12,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                92,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 112,
              "data": [
                3
              ]
            },
            {
              "register": 119,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                15,
                0
              ]
            },
            {
              "register": 120,
              "data": [
                0,
                0,
                0,
                128
              ]
            },
            {
              "register": 122,
              "data": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 123,
              "data": [
                0,
                2,
                255,
                255,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 125,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 126,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 152,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            }
          ]
        }
      }
    }

    Thanks and Regards,

    Chris

  • Thanks,

    I will try when I am back in office.

    I can see you have reg 33 EPR Adjustable Voltage Supply (356:357) set to 0 Reserved, I am not sure if I tested that, assuming I would have it enabled. What does that setting mean?

    Have you also tried to also change reg 33 and send ESrC to see if it works to change from e.g. 9V to 23V?

  • Hi Richard,

    Bit 356:357 in reg 33 should be set to 1. It does not affect the negotiation of the AVS contract, but it should be set to be correct according to the spec. That setting is mainly used when the source tries to query the TPS26750 sink capabilities. We would respond with a "sink capabilities message" and that bit indicates the PDO type and should be set to 1.

    It is set in this attached json.

    {
      "questionnaire": {
        "device": "TPS26750",
        "toolBuildVersion": "1.1.0",
        "answers": [
          null,
          3,
          7,
          7,
          1,
          0,
          3,
          0,
          null,
          1,
          1,
          3,
          0,
          0,
          1.536,
          5,
          2,
          2,
          0
        ],
        "vendorId": "0000",
        "productId": "0000",
        "version": "1.0.0.2"
      },
      "configuration": {
        "data": {
          "selected_ace": [
            {
              "register": 6,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 22,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                3
              ]
            },
            {
              "register": 40,
              "data": [
                0,
                0,
                46,
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                3
              ]
            },
            {
              "register": 41,
              "data": [
                50,
                80,
                128,
                0
              ]
            },
            {
              "register": 50,
              "data": [
                0,
                170,
                42,
                44,
                145,
                1,
                32,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                244,
                177,
                4,
                224,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                244,
                193,
                8,
                0,
                244,
                65,
                11,
                0,
                244,
                1,
                15,
                0,
                180,
                150,
                192,
                195,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                170,
                10,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 51,
              "data": [
                36,
                44,
                145,
                1,
                16,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                244,
                193,
                8,
                0,
                244,
                65,
                11,
                0,
                244,
                1,
                15,
                0,
                180,
                150,
                192,
                211,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 55,
              "data": [
                118,
                64,
                31,
                65,
                144,
                145,
                33,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                1,
                0,
                0,
                0,
                15,
                48,
                7,
                0
              ]
            },
            {
              "register": 66,
              "data": [
                26,
                0,
                8,
                0
              ]
            },
            {
              "register": 92,
              "data": [
                13,
                12,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                92,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 112,
              "data": [
                3
              ]
            },
            {
              "register": 119,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                15,
                0
              ]
            },
            {
              "register": 120,
              "data": [
                0,
                0,
                0,
                128
              ]
            },
            {
              "register": 122,
              "data": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 123,
              "data": [
                0,
                2,
                255,
                255,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 125,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 126,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 152,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            }
          ]
        }
      }
    }

    Have you also tried to also change reg 33 and send ESrC to see if it works to change from e.g. 9V to 23V?

    I'm not entirely sure what you are asking here, you can modify the AVS output voltage in the autonegotiate sink register to change the requested AVS voltage.

    You do need to make sure that the AVS voltage in register 0x37 is in the AVS range negotiated.

    Thanks and Regards,

    Chris

  • Thanks,

    What I meant with 9->23V was, you are making a patch bundle that will start at 23V.

    I dont know if it makes a difference, but I will need to change the voltage on the go, so my patch bundle will start at 5V, then e.g.9V, and later to e.g. 23V. So I will set reg 0x37 (my mistake, I wrote reg 33, meant 37) AVS and send  G/ESrC, right?

    Have you tried it and it works?

    I dont know why it has not worked for me, I will try with your json.

  • Hi Richard,

    Per the spec, the minimum AVS voltage is 15-V.

    To change the AVS voltage, if an active AVS voltage is negotiated, it should be enough to just modify the AVS voltage in the Autonegotiate Sink register (0x37). I set the value to 15-V and saw the request message happen soon after.

    Also, regarding the 5->28V transition, we were able to root cause the issue and are preparing a fw patch. This should be included in the next version of the GUI and will be applied when you generate a new binary image.

    The issue ended up being related not to the EPR_EN GPIO, but to some internal voltage monitors.

    Using the VBUS div10 pin, we see a clean transition from 5-V to 28V (2.75V)

    Thanks and Regards,

    Chris

  • Hi, I am back in office and have done some testing.and it seems to work fine.

    The problem was the AVS voltage steps. From another thread I got the information that the voltage is 100mV/LSB, but according to USB PD spec it is 25mv/LSB, but bit 0-1 should always be 0. That made it work.

    In order to avoid confusion, could you please change the customization tool to set voltage/current as dec/float, and show it as int/hex, in the same way as for PPS. That would save alot of support.

  • I still have problem with the 65W charger that will not power up and no USB messages. Works fine with phones. Must be some problem with CC detection. Any idea where to start troubleshooting?

  • Attaching CC signal (yellow) and VBUS (blue).

    When I connect to a device that has 5.1k resistors it will stay at ~1.6V as expected, but when I connect to TPS26750 it will jump up to ~3.2V and turn off.

    Seems like the internal pulldown is released unexpectedly.

    This only happens with this specific charger, attaching picture. Maybe out of spec, but as mentioned it works with all other devices.

  • Just to clarify. CC is measured at CC1/CC2 TPD4S480/TPS26750, not at C_CC1/C_CC2.

  • Hi Richard,

    In the scope capture you shared, VBUS seems to be dropping. The TPS26750 will monitor the VBUS voltage and if it drops below a certain level will disconnect which is potentially why you see the CC line go to 3.3V, as the TPS26750 will have removed the CC pulldown when it disconnects.

    We should try to identify why VBUS is dropping.

    Could you look into capturing the VBUS current to see if there is a large amount of current draw at this time?

    Is there anything else that could be causing this drop in VBUS voltage?

    Thanks and Regards,

    Chris

  • Thanks,

    I made some more measurements, including on 5.1kR only sink. There is no current draw.

    This particular charger is acting a bit weird, probably out of spec.

    With 5.1kR CC it will turn on VBUS, up to about 4.8V, then during ~20ms down to about 4.2V, then up to and stay at 5V, see scope picture.

    I assume TPS26750 will detect 4.2V as UV and release CC.

    Not sure what the spec sais here, but I assume there are other chargers like this, that may need time to stabilize and as I mentioned it works with other sink devices.

    Would it be possible to allow some grace period, lets say 4V during startup or first 100ms? 

      

  • Hi Richard,

    Officially, per the spec, the voltage should try to remain within 5% of the nominal voltage. Obviously this may not always be the case due to IR drops in a cable and other factors, but 20% (4-V is a lot)

    We may have something that provides some tolerance here, but realize it will apply to all situations, even ones where UVP is happening due to load draw or other situations where we might desire a disconnect, so you may need to use it at your own discretion.

    Within the Port Config(0x28) register (in Advanced Mode), there is a VBUS Sink UVP Trip HV that may work here. It may not affect the initial 5-V connection as the UVP requirements are a little more strict.

    Thanks and Regards,

    Chris

  • Yes, I understand 20% is much out of spec.

    But note that this is before boot, CC communication and negotiation, which is why I mentioned grace and timing.

    Register settings will have no effect as the chip has not yet booted.

  • Hi Richard,

    Oh, pre-boot will cause difficulties. If this is only on the VBUS side, I don't think there is too much we can do here. For sink devices, VBUS can only have a max of 10uF exposed on the port, so adding capacitance to mitigate the droop is not an option.

    which is why I mentioned grace and timing.

    There is nothing I can think of to mitigate this behavior. The only way to change the TPS26750s UVP is through updates to the configuration or patch fw, which wouldn't come into affect until the chip has been booted.

    Thanks and Regards,

    Chris

  • Yes I understand, there is probably not much that can be done, could need HW changed. Or if there is a preboot FW that handles this.

    Maybe at least make a note to investigate.

    I will test with 10uF on VBUS. We are probably talking about ~100mV and a few ms margin, so adding capacitance may help.

    I am just worried that this charger (who knows if just this one or many) works with other devices but will not work with mine (or other TPS26750) which will come back on me as bug/bad design.

  • Hi Richard,

    Understood, i'll keep a note.

    I am just worried that this charger (who knows if just this one or many) works with other devices but will not work with mine (or other TPS26750) which will come back on me as bug/bad design.

    Unfortunately we can't really account for everything outside of the spec, especially if it is something that triggers before any patched FW could be loaded.

    Thanks and Regards,
    Chris

  • I tested with 10uF with the same result. With 100uF it will work.

    I will leave this for now. Thanks again for your support.

  • Hi Richard, 

    Closing this e2e thread. Please open a new e2e thread for additional support!

    Thanks and Regards,

    Raymond Lin

  • Hi again Raymond, just wanted to let you know I still have the problem with power off if requesting EPR from 5V, I need a workaround where I first go to e.g. 9V before EPR.

  • Hi, 

    Raymond is currently out of office. Please allow for some delay in responses. 

    Best Regards, 

    Aya Khedr

  • Hi Richard, 

    You can configure TPS26750 Transmit Sink Capabilities (Reg 0x33) to only have two SPR sink PDOs of 5V/3A (Sink PDO1 ) and 9V/3A (Sink PDO2) as shown below:

    This is the PD log tested with the above configuration (5V to 9V and then jumped to 48V): 

    Let us know if there's any further questions or concerns! 

    Thanks and Regards,
    Raymond Lin

  • Thanks Raymond,

    I think you misunderstood my question.

    Read the beginning of the thread, we discussed it earlier and I believe there was a fix, but maybe it has not yet been implemented?

    The problem is the source will cut off if sink is at 5V and I request EPR. I first have to request e.g. 9V, then it will work to request EPR.

    I also have another problem, not sure if it is the source that is the problem. Its a cheap EPR/PPS/AVS "macbook pro" 36V/160W charger. It has 6 SPR profiles and 2 EPR profiles.

    If the sink is not powered, it works fine, source cap shows EPR, however, the header byte shows only 4 SPR profiles and 2 EPR profiles, but source cap lists all 6 SPR and 2 EPR 

    aIf the sink is powered by 3.3V, the first time I plug in the source it will show same as above, but if I unplug it and plug it back, header byte will now show 6 SPR but no EPR and source cap will only list the 6 SPR. If I keep unplugging/plugging it will never show the EPR. EPR will only show at first connection after boot.

  • Hi Richard, 

    I think you misunderstood my question.

    Read the beginning of the thread, we discussed it earlier and I believe there was a fix, but maybe it has not yet been implemented?

    The problem is the source will cut off if sink is at 5V and I request EPR. I first have to request e.g. 9V, then it will work to request EPR.

    Let me check with the team and get back to you on this. 

    I also have another problem, not sure if it is the source that is the problem. Its a cheap EPR/PPS/AVS "macbook pro" 36V/160W charger. It has 6 SPR profiles and 2 EPR profiles.

    If the sink is not powered, it works fine, source cap shows EPR, however, the header byte shows only 4 SPR profiles and 2 EPR profiles, but source cap lists all 6 SPR and 2 EPR 

    aIf the sink is powered by 3.3V, the first time I plug in the source it will show same as above, but if I unplug it and plug it back, header byte will now show 6 SPR but no EPR and source cap will only list the 6 SPR. If I keep unplugging/plugging it will never show the EPR. EPR will only show at first connection after boot.

    Do you have PD logs showing the SPR/EPR profiles of the macbook pro charger? Also what is the exact model name for this 160W charger? 

    Thanks and Regards,

    Raymond Lin

  • Thanks Raymond,

    The charger is https://www.amazon.com/dp/B0DNYL45VG?ref_=ppx_hzsearch_conn_dt_b_fed_asin_title_1

    Its 28V/5.5A/160W PPS/AVS.

    These are the logs with TPS26750 not powered by debugger:

    These are the logs when TPS26750 is powered by debogger when connecting the charger.

    Note that it makes a hard reset both with and without debugger. The second time it looses power is me disconnecting and reconnecting the charger and it will then not do a hard reset, but will not go into EPR mode.

  • TI USA is on holiday, please expect delays in response