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.

BQ25792: TypeA to TypeC charging can not work, but TypeC to TypeC works fine

Part Number: BQ25792
Other Parts Discussed in Thread: BQ40Z50-R1, , TPS25750, BQ40Z50

TypeC to TypeC charging works fine,  --> PD 20V charging; 5V CDP charging

TypeA to TypeC charging can not work --> 5V SDP charging; 5V DCP charging

When use the TypeA to TypeC charging, the bq25792's STAT seems OK, but the battery's charging current is not positive (we read this from bq40z50-r1).

Here are the register dumps, could you help to have a look?

TypeC to TypeC charging works fine: [PD 20V]

[ 2930.984040] tps25750_pdic_dump(572): TPS_REG[0xf] = 0xf5090561
[ 2930.992762] tps25750_pdic_dump(576): TPS_REG[0xd] = 0x19f8
[ 2931.004740] tps25750_pdic_dump(580): TPS_REG[0x1a] = 0x60001d
[ 2931.012188] tps25750_pdic_dump(584): TPS_REG[0x26] = 0x3000
[ 2931.022750] tps25750_pdic_dump(588): TPS_REG[0x29] = 0x3805052
[ 2931.031493] tps25750_pdic_dump(592): TPS_REG[0x2d] = 0xa2f00018
[ 2931.049634] tps25750_pdic_dump(600): TPS_REG[0x40] = 0x3c
[ 2931.056865] tps25750_pdic_dump(604): TPS_REG[0x69] = 0x61050002
[ 2931.070626] tps25750_pdic_dump(608): TPS_REG[0x70] = 0x1
[ 2931.105613] tps25750_charger_dump(617): BQ_REG[0x0]=0x12
[ 2931.139328] tps25750_charger_dump(620): BQ_REG[0x1]=0x348
[ 2931.171487] tps25750_charger_dump(627): BQ_REG[0x3]=0x0c8
[ 2931.202988] tps25750_charger_dump(634): BQ_REG[0x5]=0xb8
[ 2931.233677] tps25750_charger_dump(637): BQ_REG[0x6]=0x12c
[ 2931.267154] tps25750_charger_dump(644): BQ_REG[0x8]=0xc
[ 2931.299417] tps25750_charger_dump(647): BQ_REG[0x9]=0x3
[ 2931.331365] tps25750_charger_dump(650): BQ_REG[0xa]=0x63
[ 2931.363095] tps25750_charger_dump(653): BQ_REG[0xb]=0x0
[ 2931.395157] tps25750_charger_dump(656): BQ_REG[0xd]=0x4b
[ 2931.427342] tps25750_charger_dump(659): BQ_REG[0xe]=0x3d
[ 2931.457829] tps25750_charger_dump(662): BQ_REG[0xf]=0xa2
[ 2931.482519] tps25750_charger_dump(665): BQ_REG[0x10]=0x80
[ 2931.514861] tps25750_charger_dump(668): BQ_REG[0x11]=0x0
[ 2931.547546] tps25750_charger_dump(671): BQ_REG[0x12]=0x0
[ 2931.571460] tps25750_charger_dump(674): BQ_REG[0x13]=0x1
[ 2931.603213] tps25750_charger_dump(677): BQ_REG[0x14]=0x1c
[ 2931.626339] tps25750_charger_dump(680): BQ_REG[0x16]=0xc0
[ 2931.650616] tps25750_charger_dump(683): BQ_REG[0x17]=0x7a
[ 2931.682908] tps25750_charger_dump(686): BQ_REG[0x18]=0x54
[ 2931.715153] tps25750_charger_dump(689): BQ_REG[0x19]=0x1
[ 2931.746241] tps25750_charger_dump(692): BQ_REG[0x1b]=0xf
[ 2931.774502] tps25750_charger_dump(695): BQ_REG[0x1c]=0x90
[ 2931.807469] tps25750_charger_dump(698): BQ_REG[0x1d]=0x1
[ 2931.834797] tps25750_charger_dump(701): BQ_REG[0x1e]=0x0
[ 2931.857999] tps25750_charger_dump(704): BQ_REG[0x1f]=0x0
[ 2931.882611] tps25750_charger_dump(707): BQ_REG[0x20]=0x0
[ 2931.910783] tps25750_charger_dump(710): BQ_REG[0x21]=0x0
[ 2931.938121] tps25750_charger_dump(713): BQ_REG[0x22]=0xef
[ 2931.970333] tps25750_charger_dump(716): BQ_REG[0x23]=0x92
[ 2931.994558] tps25750_charger_dump(719): BQ_REG[0x24]=0x10
[ 2932.026567] tps25750_charger_dump(722): BQ_REG[0x25]=0x10
[ 2932.051928] tps25750_charger_dump(725): BQ_REG[0x26]=0x20
[ 2932.074614] tps25750_charger_dump(728): BQ_REG[0x27]=0x0
[ 2932.106320] tps25750_charger_dump(731): BQ_REG[0x28]=0x0
[ 2932.143072] tps25750_charger_dump(734): BQ_REG[0x29]=0x0
[ 2932.175112] tps25750_charger_dump(737): BQ_REG[0x2a]=0x0
[ 2932.207160] tps25750_charger_dump(740): BQ_REG[0x2b]=0x0
[ 2932.239163] tps25750_charger_dump(743): BQ_REG[0x2c]=0x0
[ 2932.262559] tps25750_charger_dump(746): BQ_REG[0x2d]=0x0
[ 2932.295179] tps25750_charger_dump(749): BQ_REG[0x2e]=0x30
[ 2932.330764] tps25750_charger_dump(752): BQ_REG[0x2f]=0x0
[ 2932.367408] tps25750_charger_dump(755): BQ_REG[0x30]=0x0
[ 2932.399136] tps25750_charger_dump(758): BQ_REG[0x31]=0x00
[ 2932.435413] tps25750_charger_dump(761): BQ_REG[0x33]=0x00
[ 2932.470969] tps25750_charger_dump(764): BQ_REG[0x35]=0x3c3c
[ 2932.510530] tps25750_charger_dump(767): BQ_REG[0x37]=0x00
[ 2932.547104] tps25750_charger_dump(770): BQ_REG[0x39]=0x00
[ 2932.579373] tps25750_charger_dump(773): BQ_REG[0x3b]=0x00
[ 2932.606654] tps25750_charger_dump(776): BQ_REG[0x3d]=0x00
[ 2932.631291] tps25750_charger_dump(779): BQ_REG[0x3f]=0x00
[ 2932.658590] tps25750_charger_dump(782): BQ_REG[0x41]=0x00
[ 2932.690665] tps25750_charger_dump(785): BQ_REG[0x43]=0x00
[ 2932.722690] tps25750_charger_dump(788): BQ_REG[0x45]=0x00
[ 2932.747412] tps25750_charger_dump(791): BQ_REG[0x47]=0x0
[ 2932.771689] tps25750_charger_dump(794): BQ_REG[0x48]=0x8

TypeA to TypeC charging can not work: [DCP 5V]

[ 3034.780246] tps25750_pdic_dump(572): TPS_REG[0xf] = 0xf5090561
[ 3034.787098] tps25750_pdic_dump(576): TPS_REG[0xd] = 0x19f8
[ 3034.793564] tps25750_pdic_dump(580): TPS_REG[0x1a] = 0x10000d
[ 3034.800279] tps25750_pdic_dump(584): TPS_REG[0x26] = 0x3000
[ 3034.806823] tps25750_pdic_dump(588): TPS_REG[0x29] = 0x3805052
[ 3034.813769] tps25750_pdic_dump(592): TPS_REG[0x2d] = 0xa2f00018
[ 3034.821413] tps25750_pdic_dump(600): TPS_REG[0x40] = 0x50034
[ 3034.828162] tps25750_pdic_dump(604): TPS_REG[0x69] = 0x61000301
[ 3034.834853] tps25750_pdic_dump(608): TPS_REG[0x70] = 0x1
[ 3034.860333] tps25750_charger_dump(617): BQ_REG[0x0]=0x12
[ 3034.888519] tps25750_charger_dump(620): BQ_REG[0x1]=0x348
[ 3034.925976] tps25750_charger_dump(627): BQ_REG[0x3]=0x0c8
[ 3034.972565] tps25750_charger_dump(634): BQ_REG[0x5]=0x2b
[ 3035.015902] tps25750_charger_dump(637): BQ_REG[0x6]=0x032
[ 3035.056551] tps25750_charger_dump(644): BQ_REG[0x8]=0xc
[ 3035.096433] tps25750_charger_dump(647): BQ_REG[0x9]=0x3
[ 3035.121655] tps25750_charger_dump(650): BQ_REG[0xa]=0x63
[ 3035.159033] tps25750_charger_dump(653): BQ_REG[0xb]=0x0
[ 3035.185007] tps25750_charger_dump(656): BQ_REG[0xd]=0x4b
[ 3035.224156] tps25750_charger_dump(659): BQ_REG[0xe]=0x3d
[ 3035.271951] tps25750_charger_dump(662): BQ_REG[0xf]=0xa2
[ 3035.299334] tps25750_charger_dump(665): BQ_REG[0x10]=0x80
[ 3035.334331] tps25750_charger_dump(668): BQ_REG[0x11]=0x0
[ 3035.377456] tps25750_charger_dump(671): BQ_REG[0x12]=0x0
[ 3035.423391] tps25750_charger_dump(674): BQ_REG[0x13]=0x1
[ 3035.467650] tps25750_charger_dump(677): BQ_REG[0x14]=0x1c
[ 3035.511731] tps25750_charger_dump(680): BQ_REG[0x16]=0xc0
[ 3035.548807] tps25750_charger_dump(683): BQ_REG[0x17]=0x7a
[ 3035.595861] tps25750_charger_dump(686): BQ_REG[0x18]=0x54
[ 3035.639615] tps25750_charger_dump(689): BQ_REG[0x19]=0x0
[ 3035.683544] tps25750_charger_dump(692): BQ_REG[0x1b]=0x8f
[ 3035.727642] tps25750_charger_dump(695): BQ_REG[0x1c]=0x70
[ 3035.768459] tps25750_charger_dump(698): BQ_REG[0x1d]=0x1
[ 3035.808157] tps25750_charger_dump(701): BQ_REG[0x1e]=0x0
[ 3035.835470] tps25750_charger_dump(704): BQ_REG[0x1f]=0x0
[ 3035.871536] tps25750_charger_dump(707): BQ_REG[0x20]=0x0
[ 3035.905758] tps25750_charger_dump(710): BQ_REG[0x21]=0x0
[ 3035.932095] tps25750_charger_dump(713): BQ_REG[0x22]=0xcf
[ 3035.956079] tps25750_charger_dump(716): BQ_REG[0x23]=0x90
[ 3035.996699] tps25750_charger_dump(719): BQ_REG[0x24]=0x0
[ 3036.038104] tps25750_charger_dump(722): BQ_REG[0x25]=0x0
[ 3036.076743] tps25750_charger_dump(725): BQ_REG[0x26]=0x0
[ 3036.107698] tps25750_charger_dump(728): BQ_REG[0x27]=0x0
[ 3036.132984] tps25750_charger_dump(731): BQ_REG[0x28]=0x0
[ 3036.170930] tps25750_charger_dump(734): BQ_REG[0x29]=0x0
[ 3036.195455] tps25750_charger_dump(737): BQ_REG[0x2a]=0x0
[ 3036.231803] tps25750_charger_dump(740): BQ_REG[0x2b]=0x0
[ 3036.259545] tps25750_charger_dump(743): BQ_REG[0x2c]=0x0
[ 3036.287639] tps25750_charger_dump(746): BQ_REG[0x2d]=0x0
[ 3036.312209] tps25750_charger_dump(749): BQ_REG[0x2e]=0x30
[ 3036.349280] tps25750_charger_dump(752): BQ_REG[0x2f]=0x0
[ 3036.393287] tps25750_charger_dump(755): BQ_REG[0x30]=0x0
[ 3036.436823] tps25750_charger_dump(758): BQ_REG[0x31]=0x00
[ 3036.463649] tps25750_charger_dump(761): BQ_REG[0x33]=0x00
[ 3036.485640] tps25750_charger_dump(764): BQ_REG[0x35]=0x13ad
[ 3036.510030] tps25750_charger_dump(767): BQ_REG[0x37]=0x00
[ 3036.534775] tps25750_charger_dump(770): BQ_REG[0x39]=0x00
[ 3036.558297] tps25750_charger_dump(773): BQ_REG[0x3b]=0x00
[ 3036.581610] tps25750_charger_dump(776): BQ_REG[0x3d]=0x00
[ 3036.605904] tps25750_charger_dump(779): BQ_REG[0x3f]=0x00
[ 3036.629763] tps25750_charger_dump(782): BQ_REG[0x41]=0x00
[ 3036.653840] tps25750_charger_dump(785): BQ_REG[0x43]=0x00
[ 3036.678200] tps25750_charger_dump(788): BQ_REG[0x45]=0x00
[ 3036.701937] tps25750_charger_dump(791): BQ_REG[0x47]=0x0
[ 3036.725684] tps25750_charger_dump(794): BQ_REG[0x48]=0x8

I think the bq25752 somehow think the 2s battery is not present, because the BQ_REG[0x23]=0x90 when using TypeA to TypeC charging.

  • it is not connecting properly with a type C connection.
  • Walker,

    I am looking at the firmware this evening.  I will give you an update after I understand more about where this issue may be present.

  • Hi Chuck~

    Any update please?

    I've found something new:

    If we left bq25792's sys pin float, that means connect nothing to sys, the typeA-typeC can work now.

  • Walker,

    That is a very strange behavior.  I am going to pass this thread over to our BQ25792 charger team to look into why that would be happening.  We work closely together, so I will still be tracking this thread.

    For your information, I will be out of the office until Monday May 2nd.

    Regards,

    Chuck

  • Hi Chuck:

    Thank you. but please hurry.

    I've found something more:

    When using typeA-typeC charger, the charge voltage is 4.95V and current is 450mA

    I think the charge current is too small even if I use the 5V3A charger.

    So that's why this behavior below happen, because the charge current is not enough for both sys output and battery charging.

    If we left bq25792's sys pin float, that means connect nothing to sys, the typeA-typeC can work now.

    Sys need more power, so bq25792 make both charger and battery's power to supply sys. That's why the battery can not be charged.

    So how can we increase the current? Does the firmware can fix this?

  • Hi Walker,

    Please see the below excerpt from the BQ25792 datasheet:

    "When the system voltage is regulated at VSYSMIN and SYS voltage temporarily drops lower than VSYSMIN, the VSYSMIN loop reduces charging current so that the SYS voltage remains at the VSYSMIN level. If the charge current falls to zero, but the input source is still overloaded, the SYS voltage will drop. Once the SYS voltage falls below the battery voltage, the device automatically enters supplement mode in which the BATFET turns on. The battery starts discharging so that the system is supported from both the input source and battery."

    If you do not have enough current to charge the battery and support the system you need to supply more input power. This means a higher voltage contract going into the TPS25750.

    Regards,

    Mike Emanuel

  • Hi Michael:

    5V3A charger is enough I think.

    Is there any way to increase current in software?

  • Hello,

    If you want to increase the charge current for the same load (assuming you are not maxing out your input) please change the charge current in the "TPS25750 Application Customization Tool."

    Regards,

    Mike Emanuel

  • Hi Michael:

    Increase the charge current can not fix this issue.

    I've tried to set Bit7 of REG[0x11] of bq25792 to enable the Force D+/D- detection.

    Somehow the charge current can increase now.

    But actually the bq25792's DP DM is left unconnected.

    So why Force D+/D- detection can fix this issue?

    The "TPS25750 Application Customization Tool" has no such option.

  • Hello,

    What is your battery voltage when this is happening? You may be in precharge mode and/or LDO mode.

    Precharge is when your battery voltage is below the BAT_LOWV threshold and the charge current is set differently than fast charge current.

    In LDO mode when the SYS is being operated by MINSYS the BATFET acts in LDO mode to provide charge current to the battery. The total voltage difference multiplied by the charge current is what the BATFET dissipates here. So if SYS is 7V and the battery is 2 V (<8.4V*.15=1.26V so out of precharge) and the charge current is 2 A, 10 W is being dissipated. Depending on the wattage and board layout, this can cause the part to heat up and go into thermal regulation.

    Regards,

    Mike Emanuel 

  • Hi Michael:

    The battery is 2S, voltage is 7.8V

  • Hi Michael:

    Any suggestions please?

    I hope the bin which is generated by "TPS25750 Application Customization Tool." can set this bit automatically when plug in the non PD USB charger.

  • Hello,

    What is your total charge current, battery voltage, system voltage, system current, input voltage to the charger, and input current when this is happening? I think you may have too high of a system load to get the charge current you are looking for. This is consistent with plugging in a higher voltage input that can supply more power.

    Regards,

    Mike Emanuel

  • Hi Michael:

    What is your total charge current, battery voltage, system voltage, system current, input voltage to the charger, and input current when this is happening?

    When we are using TypeC-TypeC charger, PD charging is activated.

    It works fine no matter 5V PD charging(2.6A tested by charger monitor) or 20V PD charging(1A tested by charger monitor).

    The system voltage is 7.9V when not connect the charger, it is floating from 5V~8V which is based on battery's voltage I think.

    I don't know the system current, but it is 1A more or less I guess, because there is a power switch IC in the system line, and we can calculate the current from its ISNS pin.

    Battery voltage is 7.9V (capacity 84%).

    When using TypeA-TypeC charger, means this is a normal DCP charger (5V3A), not using PD or QC.

    The charging voltage is 5V, and the battery's fuel-gauge(bq40z50) says not charging, when this happening. And the charger's current is 450mA(tested by charger monitor).

    So after I set Bit7 of REG[0x11] of bq25792 to 1, the charging current can rise up to 2.6A, now the battery's fuel-gauge says it is charging.


    I think you may have too high of a system load to get the charge current you are looking for.

    The system load is 1A I suppose, and the charging current is 450mA when TypeA-TypeC not charging.

    And yes this may explain why the battery is not charging, because the charging current (450mA) is less than the system load(1A).

    But I just feel strange that why the charge current is small? The charger's ability is enough (5V3A).

    And why the charge current can reach up to 2.6A after I set Bit7 of REG[0x11] of bq25792?

    Should the TPS25750 + BQ25792 can support 5V3A DCP charger normally? I mean TPS25750 + BQ25792 should rise the charger current to 2.6A automatically.

    Or maybe I missed some settings? Or there is something wrong about the HW connections?


    This is consistent with plugging in a higher voltage input that can supply more power.

    I don't think so.

    The 5V3A PD charger can works fine, I don't think it need a higher voltage.


    So here is the strange thing:

    5V3A PD charger works fine.

    5V3A DCP charger can not.

  • Hello,

    We will get back to you by next Tuesday.

    Regards,

    Mike Emanuel

  • Walker,

    We are going to look into what is happening with the DCP charging later this week.

  • Thank you very much.

  • Walker,

    I will update you by Friday

  • Hi~

    Any update please?

  • Walker,

    I have identified that we do not handle the DCP case correctly in our firmware interface with the BQ25792.

    I will need to work with our firmware team to see if we can find a way to address this issue.

    Regards,

    Chuck

  • HI~

    Any progress please?

  • Walker,

    I have this entered as a bug, but I do not expect our team to have a fix in the very near term.

    Regards,

    Chuck

  • Hi~Chuck

    Thank you for your effort. I understand that.

    Could we just talk about some temporary fix options before the bug fixed?

    I think maybe we can do something in the TPS25750's bin,

    like setting Bit7 of REG[0x11] of bq25792 to 1 when SDP/DCP/CDP/Other charger is detected.

    The TPS25750 can recognize the charger type through BC1.2 (reg[0x3f] bit7:4), and of course the PD charger is HVDCP charger which is one of the DCP chargers, but it still can distinguish from the other.

  • Walker,

    The Interface firmware does not allow for the case where the BQ25792 is used to detect BC1.2.

    You could reach out to the Charger team to see if they automatically configure the charger voltage and current limits appropriately if you connect Using D+/D-.  This is outside of my expertise.

    The issue is that when a DCP charger is detected, the TPS25750 needs to update the charger to set the appropriate Input Voltage and Current Limits.  This communication is not present in the current firmware patch and is not likely to be added in the near future.

    If you have a MCU, then it is possible to work through the host interface to detect a charger is present and then update the charger appropriately.

    I don't see another option that will work in the near term.