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.

BQ25703A: Settings sent via i2c bus not being repeated/saved when reading them back, Battery not charging.

Part Number: BQ25703A
Other Parts Discussed in Thread: BQ25703, , EV2400

I am experiencing issues trying to set parameters on the BQ25703 when trying to write the data directly to the registers over I2C.

The issue I am having is that I cannot get it to retain the data I send, for example I send/read back the following (MSB followed by LSB, although I am sending the LSB first as according to the datasheet):

ChargerOption0:

Send: 00000010 00001000 Read back: 00000001 00001000


ChargerOption1:

Send: 10000010 00010001 Read back: 00110001 00010000


ChargerOption2:

Send: 00000010 00110101 Read back: 00110011 00110101


ChargerOption3:

Send: 00000001 00000000 Read back: 00110000 00000000

The same happens with all the other registers when I try to read the data back from them. 

The code I am using to send looks as follows (this is for ChargeOption2): 

Wire.beginTransmission(0x6B);
Wire.write(0x32);
Wire.write(0x35);
Wire.endTransmission();
Wire.write(0x33);
Wire.write(0x02);
Wire.endTransmission();
I am using an RP2040 to communicate with the charger and using Arduino IDE for the time being to get the charger working. I have 10K pull-up resistors to 3v3 for the i2c lines of the charger. The board will eventually be used with a 4S Lithium-Ion battery, but for this testing example I was trying to charge a 2S Li-Po. I am powering the regulator from 10V as shown in the schematic, and the 10V is present at the regulator input.
Please let me know if there is anything else I can provide to help.
Here is the schematic:
  
  • Hi, Jadon,

    This is weird. Have you tried to use EV2400 to communicate with bq25703A?  This is suggested in the user guide. 

    We don't know how the I2C script was implemented in RP2040, however we have seen many DIYer implemented the communication with MCU.

    Regards,

    Tiger

  • Hi Tiger

    I can send the code if you wish. I do believe that overnight I have found a bug in the library though. Will test today and see if that makes a difference.

    Regards

    Jadon

  • Hi tiger. The issue I thought was the problem made no difference to the overall outcome, but I now have the charger reading back the values I send it, but some simply read back as 0. What could cause this?

  • Hi Tiger

    I have 0V on the ILIM_HIZ pin, going to try troubleshoot this.

    Regards

    Jadon

  • Hi Jadon,

    Glad to see your progress. See below a list of default settings after startup. 

    * Created: Wed Mar 04 16:10:40 CST 2020
    *
    * Format: Register Name  tab Character,\t  Hexadecimal register value.
    * Device: bq25703A
    * BQZ Container: Charger_1_00-bq25703A.bqz
    *
    Charge Option 0	E20E
    Charge Current Register	0000
    Charge Voltage Register	20D0
    OTG Voltage Register	0000
    OTG Current Register	0000
    Input Voltage Register	15C0
    Minimum System Voltage	1800
    Input Current Register	4100
    Charge Status Register	A000
    Prochot Status Register	0000
    Input Current Limit In Use	4100
    VBUS and PSYS Voltage Read Back	6B00
    Charge and Discharge Current Read Back	0000
    Input Current and CMPIN Voltage Read Back	0000
    System and Battery Voltage Read Back	0000
    Manufacture ID and Device ID Read Back	7840
    Device ID Read Back	1078
    Charge Option 1	0210
    Charge Option 2	02B7
    Charge Option 3	0000
    Prochot Option 0	4A54
    Prochot Option 1	8120
    ADC Option	2000

    Regards,

    Tiger