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.

BQ25895: Adding USB type-c bidirectional support using TPS65988

Part Number: BQ25895
Other Parts Discussed in Thread: TPS65988, , PMP4496, TUSB320LI, TS3USB221, TPS2514A

Hi everyone ,

I am working a power bank product, and I am already using BQ25895 as PMIC, now I want to upgrade the system to support the USB Type-C bidirectional port, and I think the TPS65988 is the best choice for me to achieve this goal.

The main problem is that BQ25895 needs to connect with the power source D+/- to identify the power source and based on this is going to set the current limit, however and based on TIDA-01515 reference design, the USB Type-C D+/- are going to be connected to to TPS65988. so the BQ25895 won't be able to identify the power source type and set the correct current limit.

so the first and main question is what would happen if I tried to connect the USB port D+/- to both BQ25895 and TPS65988, but it doesn't seem correct to me :/

Just to enhance the discussion more and to make all of us looking from the same point of view and have the same background - although I am sure you are more experienced than me, but just as reminder of what you already know-.

In the reference design PMP4496, BQ25895 is actually used with Type-C bi-directional support, however there's 2 things I didn't like about that design which is relatively old (DEC,2015 while TIDA01515 date is MAY,2019):

1- The use of multiple ICs to manage the USB-C port ( TUSB320LI + TS3USB221 + TPS2514A ) although it kinds solves the problem of D+/- which is my main problem now, but regarding the BOM cost and PCB size this can by more requiring than the use of TPS65988 which can replace all of those 3 ICs

2- The use of dedicated boost converter, while you have BQ25895 totally suitable to meet the boost requirements! which is a big question mark I couldn't resolve about that reference design, in addition to the poor documentation is has, I wasn't able to understand this design decision!

with no clear port detection method, this reference design becomes even harder to understand and learn from, as in the document number SLVA770: port detection for powerbanks you have introduced a very good methods to achieve such target.

So based on all the above information, here is what I have in mind:

1- My target is to keep using BQ25895 as long as this is possible, as changing it will drive me to new cycle of choosing suitable PMIC and as I searched there is no embedded USB-C port in battery charger IC "Yet" !

2- So to use BQ25895 with USB-C bidirectional power path, I want to use TPS65988 but I have 2 major problems:

Problem 1: BQ25895 must contact with D+/- with the power source to identify input source type and set the correct current limit based on this

Problem 2: BQ25895 power bath is not bi-directional, which means VBUS is input only, and PMID is the 5V boost output which is used to charge the phone (along with TPS2514A for port identification), while the USB-C power path uses the same VBUS for both source/sink, but I assume in worst case scenario we can use external power MOSFET to connect the USB-C VBUS to either PMID or BQ25895 VBUS (I would like to hear your ideas on this too) .

other points would show up, like the fact that PMID is on way connected to VBUS! so when there is voltage on VBUS, same voltage will be on PMID which can be very dangerous as the PMID is connected to the phone USB charging voltage which can't exceed 5V while the power bank VBUS can be more than 5V-9V-12V but this is going to be controlled by the system host controller (ATMEL AVR) when there is high voltage on VBUS (more than 5V) never open the power path for mobile phone to be charged with the power bank!

That's all I have in my mind now, I am excited to see your comments and suggestions.

  • Hi,

    1. If D+/D- input current limit detection is not needed, it is ok to short or open D+ and D- pins. After the initial input current limit detection is complete, user may modify the input current limit via I2C.

     2. When applying valid VBUS voltage, the device will exit OTG automatically.

    Thanks,

    Ning.

  • Hi Ning,

    thanks for your reply,

    1- I know that BQ25895 auto current limit can be skipped, and can be set with host, but still in the system that I am building how can I know the source type to set the current limit? I don't know if the end user is going to connect it to 500mA computer port or dedicated charging port.

    2- Yes and that's what I am worried about, when valid VBUS is detected the BQ25895 exits OTG and connects the PMID to the VBUS voltage! which may be a high voltage source!

    so what if this usage scenario happened, the user is charging his phone with BQ25895 boost, then decided to connect a nice 9V source to charge the power bank too? BOOM :D his phone is dead! 

  • Hello again.

    during the previous days I made more search/think cycles to solve this issue, I found answers to my questions, so let me share them so if anyone came to this point in the future he may find my answeres useful for him too. 

    so in answer to the first and main questions, what would happen if I connected D+/- of both BQ25895 and TPS65988 with the USB connector D+/-? based on BQ25895 datasheet that is describing the process of source detection, there is no "data" being sent on the D+/- pins, but they are being derived to high/low sequences to identify the source, so if you can assume that both ICs are going to do the exact same sequence in the exact same time so they will have the exact same decision, but this is subject to real life test! 

    So what is the best way to do it? don't connect the BQ25895 D+/- to the USB, the TPS65988 will detect the source type, then you with the host controller can read the source type (register 0x3F,bits 7:4) and manually inform the BQ25895 with it. 

    second question was about the reference design PMP4496, why does it use external boost not BQ25895 boost on the PMID? this is answered by our good support friend Ning, the OTG boost will be disabled the moment we detect valid voltage on VBUS, so since the same VBUS is used for both input and output, the moment you will enable the OTG and get an output, BQ25895 will automatically disable the boost because it detected a valid voltage on VBUS, which happens to be it's own output! 

    third point is about the port detection in PMP4496, when the USB is plugged in, TUSB320LIRWBR will be enabled and detect the device type, this will be read by the microcontroller (ATCH signal) and then it will decide which channel of the TS3USB221RSER will be enabled, so yes there is a good port detection that is also different than the methods in the SLVA770 application note.

    finally the BQ25895 has a register that informs the host with the source voltage level, you should have control on your output that can disable it when high voltage source is detected.