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: I can't read VBAT and i can't write ChargeCurrent.

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


Hello,

I  am using bq25703a for the battery Charger. I manage to establish a communication between this module and the card STM32F4 .The communication is well established and I manage to write and read data in the registers of bq25703 but there are two registers I can not handle (the register 03 / 02h and the register 2D / 2A), in fact I can not write charge current  in the register 03 / 02h (it is always at zero) and I can not read VBAT from 2D / 2C register.

NOTE: I am using the EVM BQ25703AEVM-732.

Is there a specific configuration to write to bq25703a registers before writing charge current or reading VBAT?

  • Hello Mohamed,

    There may be two separate issues here.  Let me begin with procedure to read V_BATT using EVM and EV2400. There is flexibility in many of these steps, but I wanted to give you my exact procedure.
    1.  EVM jumper J2 is on, and J3, J4 jumpers are off (2-cell)
    2.  Attach 100,000 uF capacitor and bipolar CV power supply at J5, power supply set to 7.4V
    3.  Power on board with 5V at J1
    4.  Write 0x000E into register pair 0x01/0x00
         This turns off the watchdog timer and takes the device out of low power mode.  Note datasheet description of EN_LWPWR bit in section 8.6.1.1, "ADC is not available in low power mode."
    5.  Write 0x6001 into register pair 0x3B/0x3A
         This enables the ADC in one-shot mode, enables the VBATT read and sets the ADC_START trigger bit.
    6.  Read register 0x3B/0x3A pair
         it should return 0x2001, which is the value that was written but with the ADC_START bit cleared, indicating that the ADC has run.
    7.  Read register 0x2D/0x2C pair
         it returns 0x0046, which is a value of 7360 mV for V_BATT.  V_SYS is zero'ed because its bit was not set in step 5

    Please follow this procedure and let me know if you still see an issue reading the V_BATT voltage.

    Regards,
    Steve

  • Hi Mohamed,

    The second issue you mentioned is that when you write the charge current value it does not "stick" and you read back a 0x00. Given that you are able to read and write other registers, I am guessing that this is not an I2C issue but that instead the value is being correctly written but them reset back to 0x0.

    Various conditions can cause BQ25703 to drop charge current to 0x0, such as a watchdog timer trip, a thermal trip, etc. Please disable the watchdog timer in register 0x01/0x00 and then attempt to write the charge current. If you then read back zero, you can read the charge status and prochot status registers (0x21/0x20) and (0x23/0x22). If an alarm it causing the charge current to reset back to zero it will likely show up in one of these registers. Also, it would be good to measure charge current with a scope (set up to trigger and with a relatively small time scale) as you may see a very short "blip" of current that then drops back to zero. If so, this confirms that the charge current is being written, but then reset back to 0 by an alarm condition.

    Also, do you have BQ25703A EVM and/or EV2400? Ideally you would have both. We should have no issue getting charge current written from EV2400 on EVM, and then we can "mix and match" your board and the STM32F4 with the EVM and EV2400 to attempt to isolate the issue.

    Regards,
    Steve
  • Hi Steve,

    thank you verry much for your reply.


    The problem is solved .

    Now I am charging a battery (3 cell) with the BQ25703a.

    Can I determine (measure) the voltage at the battery terminal with BQ25703a?

    Does VBAT give an idea about the voltage at the battery or the voltage injected into the battery?

    Best Regards,
    Mohamed

  • Hi Mohamed,

    The measured voltage is the voltage across the battery. When you say "voltage at the battery," I think you are referring to the open-circuit voltage, i.e. the voltage that would be across the battery if no current is flowing into or out of it. If so, the voltage measured across the battery is a combination of this with the voltage delta associated with charging the battery.

    The simplest representation of a battery is a capacitor and resistor in series. The capacitor voltage is the open-circuit voltage. Usually I think of injecting current into the battery as opposed to injecting voltage, but one is not more correct to the other since they are just related by the resistor in the battery model. As I inject a larger current to charge the battery, the resistor of the battery model will raise the voltage measured across the battery above the open-circuit voltage across the capacitor. Since VBAT measurement is measuring both the voltage across the capacitor and the voltage across the resistor, it is measuring the sum of both of these quantities, so basically it is measuring both what you are calling the voltage at the battery as well as the voltage injected into the battery summed together.

    If you want to measure the open-circuit voltage of the battery, you can do it by measuring this VBAT, but you have to force your charging current to 0.

    Regards,
    Steve