arjun.a
commit
b24351f
{
"ticketNumber" : "891082",
"reporterName" : "Alain Roger",
"rankPoints" : "60",
"resolutionStatus" : "",
"ticketName" : "BQ25703A: Reinitialization impossible to 1S-4S cell default values",
"rankName" : "Prodigy",
"replies" : " 10",
"views" : " 73",
"queryText" : "Part Number: BQ25703A Hello, I had an electronic module bq25703a working fine, but some days ago the charger would not start and no adc measurement are possible. I used to initialize the module by resetting all registers by 0x35[6] = 1, and then setting 0x05/04[15…0] = 0 to reset MaxChargeVoltage to 4S default value. After initialization, I used to charge the battery by setting 0x05/04[15…0] = 7680mV. Now everytime I send 0x05/04[15…0] = 0, the register remains at previous value non-null value set. There is no way to get 4S cell default value that is 16800 mV. I have the same problem with MinSystemVoltage 0x0D/0C which should be 12288 mV at the end of initialization. I join an history of the I2C register. During init I send one time 0x05/04[15…0] = 0 and just before end of init, 0x05/04[15…0] = 7680mV whereas it should be 16800mV. Please can you tell me if a register value may prevent the reinitialization to 4S default values after POR ? Thank you, The history of the I2C register is the following I2C register listing. From first line to «EndInit … Endinit» is the register state before entering repeatitive task. The register state is displayed another time and then only modifications are listed. At t=23:58:05.939, Vadapter is set at 5V and input is open at 23:58:52.919. 23:57:53.505 -> 0 : 1110 23:57:53.550 -> 1 : 10 23:57:53.550 -> 2 & 3 ChargeCurrentRqst : 0 mA 23:57:53.550 -> 4 & 5 ChargeVoltageRqst: 7680 mV 23:57:53.550 -> 6 : 0 23:57:53.550 -> 7 : 0 23:57:53.550 -> 8 : 0 23:57:53.550 -> 9 : 0 23:57:53.550 -> A & B minInVoltRqst: 3200 mV 23:57:53.550 -> A & B minInVoltRqst: 3200 mV 23:57:53.550 -> C & D minSystVoltRqst: 0 mV 23:57:53.550 -> C & D minSystVoltRqst: 0 mV 23:57:53.550 -> E & F maxInputCurrent: 3300 mA 23:57:53.550 -> E & F maxInputCurrent: 3300 mA 23:57:53.550 -> 20 : 0 23:57:53.550 -> 21 : 100000 23:57:53.550 -> 22 : 1 23:57:53.550 -> 23 : 0 23:57:53.550 -> 24 : 0 23:57:53.550 -> 25 inputCurrentDPM: 3300 mA 23:57:53.550 -> 26 : 0 23:57:53.550 -> 27 inputVoltMeas: 3200 mV 23:57:53.550 -> 28 dischrgCurrentMeas: 0 mA 23:57:53.550 -> 29 chrgCurrentMeas: 0 mA 23:57:53.550 -> 2A : 0 23:57:53.550 -> 2B inputCurrentMeas: 0 mA 23:57:53.550 -> 2C battVoltMeas: 2880 mV 23:57:53.550 -> 2D systVoltMeas: 3200 mV 23:57:53.550 -> 2E : 1000000 23:57:53.550 -> 2F : 1111000 23:57:53.550 -> 30 : 0 23:57:53.550 -> 31 : 10 23:57:53.550 -> 32 : 1110010 23:57:53.550 -> 33 : 10 23:57:53.550 -> 34 : 0 23:57:53.550 -> 35 : 0 23:57:53.550 -> 36 : 111100 23:57:53.550 -> 37 : 1001010 23:57:53.550 -> 38 : 0 23:57:53.550 -> 39 : 10000001 23:57:53.550 -> 3A : 11111111 23:57:53.550 -> 3B : 10100000 23:57:53.550 -> bq25703a digout: not_proc_hot/ChrgOK : 0 23:57:53.550 -> EndInit EndInit EndInit EndInit EndInit EndInit EndInit 23:57:53.781 -> 0 : 1110 23:57:53.781 -> 1 : 10 23:57:53.781 -> 2 & 3 ChargeCurrentRqst : 0 mA 23:57:53.781 -> 4 & 5 ChargeVoltageRqst: 7680 mV 23:57:53.781 -> 6 : 0 23:57:53.781 -> 7 : 0 23:57:53.781 -> 8 : 0 23:57:53.781 -> 9 : 0 23:57:53.781 -> A & B minInVoltRqst: 3200 mV 23:57:53.781 -> A & B minInVoltRqst: 3200 mV 23:57:53.781 -> C & D minSystVoltRqst: 0 mV 23:57:53.781 -> C & D minSystVoltRqst: 0 mV 23:57:53.781 -> E & F maxInputCurrent: 3300 mA 23:57:53.781 -> E & F maxInputCurrent: 3300 mA 23:57:53.781 -> 20 : 0 23:57:53.781 -> 21 : 100000 23:57:53.781 -> 22 : 0 23:57:53.781 -> 23 : 0 23:57:53.781 -> 24 : 0 23:57:53.781 -> 25 inputCurrentDPM: 3300 mA 23:57:53.781 -> 26 : 0 23:57:53.781 -> 27 inputVoltMeas: 3200 mV 23:57:53.781 -> 28 dischrgCurrentMeas: 0 mA 23:57:53.781 -> 29 chrgCurrentMeas: 0 mA 23:57:53.781 -> 2A : 0 23:57:53.781 -> 2B inputCurrentMeas: 0 mA 23:57:53.781 -> 2C battVoltMeas: 2880 mV 23:57:53.781 -> 2D systVoltMeas: 3200 mV 23:57:53.781 -> 2E : 1000000 23:57:53.781 -> 2F : 1111000 23:57:53.781 -> 30 : 0 23:57:53.781 -> 31 : 10 23:57:53.781 -> 32 : 1110010 23:57:53.781 -> 33 : 10 23:57:53.781 -> 34 : 0 23:57:53.781 -> 35 : 0 23:57:53.781 -> 36 : 111100 23:57:53.781 -> 37 : 1001010 23:57:53.781 -> 38 : 0 23:57:53.781 -> 39 : 10000001 23:57:53.781 -> 3A : 11111111 23:57:53.781 -> 3B : 10100000 23:58:05.839 -> 31 : 10 23:58:05.839 -> 32 : 1110010 23:58:05.839 -> 33 : 10 23:58:05.839 -> 34 : 0 23:58:05.839 -> 35 : 0 23:58:05.839 -> 36 : 111100 23:58:05.839 -> 37 : 1001010 23:58:05.839 -> 38 : 0 23:58:05.839 -> 39 : 10000001 23:58:05.839 -> 3A : 11111111 23:58:05.839 -> 3B : 10100000 23:58:05.839 -> 31 : 10 23:58:05.839 -> 32 : 1110010 23:58:05.839 -> 33 : 10 23:58:05.839 -> 34 : 0 23:58:05.839 -> 35 : 0 23:58:05.839 -> 36 : 111100 23:58:05.839 -> 37 : 1001010 23:58:05.839 -> 38 : 0 23:58:05.839 -> 39 : 10000001 23:58:05.839 -> 3A : 11111111 23:58:05.839 -> 3B : 10100000 23:58:05.939 -> 21 : 10100000 23:58:05.939 -> bq25703a digout: not_proc_hot/ChrgOK : 1 23:58:06.072 -> C & D minSystVoltRqst: 1280 mV 23:58:06.105 -> E & F maxInputCurrent: 1150 mA 23:58:06.105 -> 25 inputCurrentDPM: 1150 mA 23:58:06.837 -> 3B : 11100000 23:58:12.359 -> 2 & 3 ChargeCurrentRqst : 64 mA 23:58:15.560 -> 2 & 3 ChargeCurrentRqst : 128 mA 23:58:52.919 -> 21 : 100000 23:58:52.919 -> 25 inputCurrentDPM: 3300 mA 23:58:52.919 -> bq25703a digout: not_proc_hot/ChrgOK : 0 23:58:53.085 -> 2 & 3 ChargeCurrentRqst : 0 mA 23:58:53.085 -> E & F maxInputCurrent: 3300 mA",
"partNumber" : " BQ25703A",
"allResponseList" : [ {
"contentId" : "3295810",
"userName" : "Joel Hernandez II",
"rankPoints" : "25800",
"rankName" : "Mastermind",
"date" : "Mar 24, 2020 6:07 PM",
"userId" : "4615895",
"content" : "Hey Alain, Does this happen on every charger you have, or just on this single device? Does it no longer respond to any of your I2C commands? Or can you still write a sequence, but all subsequent commands are ignored? Regards, Joel H"
}, {
"contentId" : "3296065",
"userName" : "Alain Roger",
"rankPoints" : "60",
"rankName" : "Prodigy",
"date" : "Mar 24, 2020 11:39 PM",
"userId" : "6152039",
"content" : "Hello, The problem happens on my prototype, it is a single device before producing some more. All commands sent to the bq25703a seem to be correctly set when they are read back, except the commands that should get default values according 1S-4S cell configuration : MinSystemVoltage 0x0D/0x0C and MaxChargeVoltage 0x05/0x04 after POR. Also when I command 0x05/0x04 = 0, it should « set REG0x05/04() to default value on CELL_BATPRESZ pin» but in fact the register keeps previous value. Then there is no charging whereas 21[7] gets to 1 as Vbus get above 3.2V, 0x0F/0x0E is set to 1150 mA and 0x05/0x04 is set to 7680 mV. Also 0x3B[6] set to 1 does not start any adc measurement. I am wondering if there are some register commands that force to ignore CELL_BATPRESZ pin, so no reinitialization to CELL_BATPRESZ default values are possible ?"
}, {
"contentId" : "3298023",
"userName" : "Joel Hernandez II",
"rankPoints" : "25800",
"rankName" : "Mastermind",
"date" : "Mar 26, 2020 2:20 PM",
"userId" : "4615895",
"content" : "Hey Alain, If you write the RESET_REG bit in ChargeOption3() bit 6, do the values return to their default state? I also wonder if any functions of the charger are operating. Do you have as schematic you can provide of your board? What do you do to POR the charger? Do you remove both VBUS and VBAT? Regards, Joel H"
}, {
"contentId" : "3298376",
"userName" : "Alain Roger",
"rankPoints" : "60",
"rankName" : "Prodigy",
"date" : "Mar 26, 2020 6:53 PM",
"userId" : "6152039",
"content" : "Hello, In order to perform a POR, I remove first VBUS and then VBAT. Then when I want to use again the converter, I start to plug VBAT and I wait a little before plugging in VBUS. I did try to restart the bq25703a and then 13s later I plug VBUS and then I sent a RESET_REG 1 minute later. I did also another test : I restart the bq25703a and then 1 minute and a half later I send a RESET_REG. In both cases, register 0x01, 0x30, 0x32, 0x36, 0x38, 0x3A and 0x3B get updated to default values. But 0x05/04[15…0] MaxChargeVoltage and 0x0D/0x0C MinSystemVoltage do not get default values. I join you the I2C evolution of both experiments, and also a schematic I did for the module. I hope it may help, Vincent ResetWhileNotCharging.txtResetWhileCharging.txt"
}, {
"contentId" : "3299335",
"userName" : "Joel Hernandez II",
"rankPoints" : "25800",
"rankName" : "Mastermind",
"date" : "Mar 27, 2020 3:23 PM",
"userId" : "4615895",
"content" : "hey Alain, I noticed in your register dumps that you set VSYSMIN to 0mV during your initialization. And I also notice you don't read 0x20 later in the register dump, only 0x21. I have a suspicion that your 0mV is tripping the SYS SHORT protection, and preventing those two reigsters from being set. Additionally, I would have you compare your schematic against our checklist here in this FAQ: Regards, Joel H"
}, {
"contentId" : "3299506",
"userName" : "Alain Roger",
"rankPoints" : "60",
"rankName" : "Prodigy",
"date" : "Mar 27, 2020 5:49 PM",
"userId" : "6152039",
"content" : "Hello, Thanks for your remark. I was not initializing at all VSYSMIN at start but now I tried to set it to 4352mV and also to 12544mV (batteries are at 6.3 V, 5 NIMH cells). The charger did not start, I join the register dumps for 4352mV. It is the same sequence for 12544 mV. I could see that when a RESET_REG is done, the VSYSMIN is set to 0V. After initialization I read once all registers, then I display every register changes. 0x21 changes as soon as CHRG_OK 0x21[7] is set to 1 or reset to 0. No status error appear so 0x20 remain to latest display value, 0. ResetWhileChargingMinSys4352.txt"
}, {
"contentId" : "3310681",
"userName" : "Alain Roger",
"rankPoints" : "60",
"rankName" : "Prodigy",
"date" : "Apr 8, 2020 5:56 PM",
"userId" : "6152039",
"content" : "Hello, I write back because I do not understand why the charger is not working. I do not know why the ADC measurement does not start after I set register 3B : 0b11100000, and 3A : 11111111. I know that could happen if I was in low power mode (REG0x01[7] = 1), but my register 0x01 is 0b00000010. Do anyone would have a reason why the measurement ADC is not launched ? Thank you,"
}, {
"contentId" : "3316168",
"userName" : "Tiger Zhou",
"rankPoints" : "610",
"rankName" : "Prodigy",
"date" : "Apr 15, 2020 4:00 AM",
"userId" : "1451791",
"content" : "Hi, Alain, This is weird, especially it worked previously. I checked your register settings, didn't see any unusual. Could you check if Vin, REGN, ILIM-HIZ and CELL-BATPRESZ voltage in the range?"
}, {
"contentId" : "3328060",
"userName" : "Alain Roger",
"rankPoints" : "60",
"rankName" : "Prodigy",
"date" : "Apr 26, 2020 10:29 AM",
"userId" : "6152039",
"content" : "Hello, I could perform measurements on REGN and CELL-BATPRESZ, with 4 NiMH batteries plugged via Batfet. Then I set Vin to 4.98V, so I get pin CHRG_OK turning on. At that moment, no measurement are launched while I have registers 3A : 11111111 & 3B : 11100000. In those conditions, I measure REGN pin voltage and I get less than 50mV, far from the 6V LDO announced in the datasheet. Then I measure CELL-BATPRESZ and I get nearly 0V, very lower with regards to the Vdda voltage that should be a few volts. This Vdda is also near 0V. The register 0x32[7] is set to 1 in order to disable ILIM_HIZ pin, so I use to set it to GND. Even when I set it higher than 4.0V, the adc converters do not start and I still have same voltage values for REGN, CELL-BATPRESZ and Vdda. I suppose the LDO is blown out, what do you think ? Vincent,20200426_RegisterHistory.txt"
}, {
"contentId" : "3329519",
"userName" : "Tiger Zhou",
"rankPoints" : "610",
"rankName" : "Prodigy",
"date" : "Apr 27, 2020 9:15 PM",
"userId" : "1451791",
"content" : "Hi, Alain, That is what I worried. REGN is the most important voltage for the function of BQ25703A. It provides the gate drive current as well as the power for VDDA rail. It looks to me the part was damaged during the troubleshooting. Please replace the IC or work on a new prototype."
} ],
"tags" : [ "/support/power-management/f/196/tags/BQ25703A" ],
"fourmType" : "TI"
}