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.

TPS25750: ADCINx configuration and debugging

Part Number: TPS25750

Hello, by now I managed to fetch the PCB's and assemble the following circuit

As I said before I am trying to source 15V 3A from USB C using TPS25750.

I followed an earlier post here https://e2e.ti.com/support/interface-group/interface/f/interface-forum/988215/faq-tps25750-how-do-i-create-a-sink-only-usb-c-pd-port-to-replace-a-legacy-barrel-jack-connector and now I am not sure how to continue.

Here's my setup:

- I managed to pull the .bin file from ti's configuration tool and flash it to the EEPROM using raspberry pi. I picked the "Full flash" version and not the "Low addressing" option. I verified that my write was successful by reading the contents and comparing. The address of my EEPROM is 0x50 as per the datasheet requirements

- I have two chargers wall adapters: one 5V 3A USB C dumb charger and one 65W adapter from lenovo (see photo)

- I attempted to use the setup in the post mentioned before which puts the chip in SafeMode (essentially grounding both ADC pins)

 first_message

- I also attempted dividing the 3V3 voltage using 4 10k ohm resistors

The result is the setup using the dumb 5V 3A input the device powers up and I get some i2c activity (see pictures). As you can see, in the second osci photo, the master writes to the EEPROM and the EEPROM gives an ACK which leads me to believe it has access to the flashed config.

However, with the 65W charger, it doesn't power up at all and probably doesn't load the EEPROM config.

Now I don't know if my above assumptions are wrong or I am not seeing something else that is obvious.

One of my issues in understanding is how to set the ADCx pins. I see the two diagrams below but I don't get how to divide the current so I am in the right "Mode".

Also, what would be the "right" "Mode" for my case?

What I want to happen is:

Using the 65W adapter, power up in "Dumb 5V mode" so the EEPROM can load

Negotiate higher power and power up the PHV line

  • The I2C traffic that you are describing after power up is the EEPROM boot sequence.  I can't decode it to be sure, but the general shape looks like it was a successful boot.

    The EEPROM is loaded in SafeMode.  This is reached by pulling ADCIN1 and ADCIN2 to GND.  This will set the I2C slave address of the TPS25750 to 0x21.

    Can you confirm that when you configured the binary, you disabled all of the GPIO.  If you did not, then you will see several issues with the device working.

  • I found my issue. 

    TL;DR - Connect your CC lines correctly - otherwise an active USB power adapter will not turn on!

    First of all, thank you Chuck.

    My issue was that my USB-C connector was connected wrong from my schematic and this reflected in the PCB. As you can see my CC lines are A8 and B8 instead of A5 B5. I did not realize this until I read this article https://www.ti.com/lit/wp/slyy109a/slyy109a.pdf?ts=1638433327174&ref_url=https%253A%252F%252Fwww.google.de%252F explaining the USB protocol and what needs to be done for a USB-C cable to work with safety features enabled.

    To summarize the above article  in the context of deploying this chip - Note that this is my understanding:

    There are two types of USB-C connectors: active and passive. The passive ones are like your old usb cables, 5V, can short circuit and burn. On the other hand you have active USB cable which has CC lines connected. They divide in two subcategories -  Active USB with passive messaging a nd active USB with active messaging. The  first has the CC lines connected to a fixed resistor (4-5k) depending on the resistance of your cable. Those resistors, if bypassed (shorted by water) or if the board heats so much that they get more resistive; they (and their pairs inside your active power source) will divide the voltage outside set range. This will in turn trigger the power source to a fault state and stop the transfer (thus avoiding fire, short etc). Neat feature. 

    My CC lines were left floating. When I was using a passive charger it would provide 5V to my TPS2570 (and it would in turn power up the EEPROM and read from it). I had to modify my circuit in order to have the CC lines connected correctly. 

    More on EEPROM Flashing

    I refused to pay for a i2C programmer. I have a sense that open source protocols should be accessed by open source tools.

    I used this tool and a raspberry pi to flash my EEPROM. It can't write pages yet (so you flash byte by byte which takes a little longer - about 2 minutes), but it does the job if you are prototyping like I do.

    https://www.richud.com/wiki/Rasberry_Pi_I2C_EEPROM_Program

    I also tried Arduino to flash my eeprom but arduino can't load files. I chose raspberry pi because you havee access both to i2c bus and files at the same time. See the above.

    Many thanks to Chuck, again. I hope this helped someone.