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.

BQ34110EVM-796: Issues with control commands and writing DF on BQ34110EVM

Part Number: BQ34110EVM-796
Other Parts Discussed in Thread: BQ34110, BQSTUDIO, EV2400

Hi all,

I'm having some issues talking to the BQ34110 as part of the Evaluation Module, and I'm hoping to get some pointers as to what I'm doing wrong.

I'm talking to the part via I2C from a Cypress PSoC5 microcontroller.  I2C speed is 100KHz.  Right now I'm looking to do a couple things at bare minimum:

- I need to set V_EN high to measure battery voltage.

- I need to read current to determine if battery is charging/discharging/charged.

First thing I'm trying to do is establish I can communicate by reading the firmware version.  I am following the procedure outlined in Application Report SLUA790 Example 2. I can't seem to get a response other than 0xFFFF:

I can't get a good zoom on my I2C analyzer to fit the whole transaction while remaining legible, so I split it into two parts:

First Part:

Second Part:

As far as I can tell, I am following SLUA790, but why am I only receiving 0xFFFF?  There also seems to be quite a bit of time on these transactions where the BQ34110EVM is stretching the clock.  Is this normal?

I am also having problems entering Calibration mode and writing DF, but one problem at a time...

Thanks in advance for any pointers.

  • Hi Kyle,

    Thank you for including the shots from your logical analyzer. The device may stretch the clock when writing information to DF.

    A few questions:
    1. Is your device sealed?
    2. Are you currently running the default configuration for your device, or have you modified the values with bqStudio?
    3. Are you able to write, have values saved to DF, and read those modified values from DF with bqStudio?

    Sincerely,
    Bryan Kahler
  • Hi Bryan, thanks for the reply.

    1. A read of the OperationalStatus register (0x3A) is giving me back 0x0282, which would indicate the device is unsealed.
    2. No configuration values have been changed yet.
    3. I have attempted to write to DF location 0x4196 so I can change V_EN, but I don't think it's actually working. I have read that I can't make changes to DF if VBAT is less than a certain threshold (which is strange to me, because I won't have VBAT until I can set V_EN high)

    I do not have a EV2400 module to use bqStudio at the moment (hoping to have one within the week) EDIT: EV2400 should be coming in tomorrow. I've been trying to make these changes by writing I2C functions to do so in our firmware.  I imagine bqStudio is going to make this process much more painless.

  • Hi Kyle,

    With respect to (3), this is correct if you have updated the number of series cells and/or chemistry. If you are unable to write to DF, as a workaround, please enable calibration mode. Then, update the CELL UPDATE OK VOLTAGE parameter to 0. Read the value back from the device to ensure that it 'took'. Next, exit calibration mode. To verify you can now write to dataflash, please reset the device, read a register, write a new value to that register, then read that register again to ensure that it 'stuck'.

    This process will also be much easier to perform with bqStudio as the enter and exit calibration commands are linked to buttons.  Please let me know if you run into any issues!


    Sincerely,
    Bryan Kahler

  • Hi Bryan,

    Thanks again for the response. I have managed to write DF and run some calibration via bqStudio. I'll probably use the I2C Analyzer to take a look at the various commands to ensure I'm replicating them properly in my microcontroller firmware. I'm putting interfacing via microcontroller on hold for the moment while we calibrate and configure the device.

    I have a further question regarding the setup of the gauge. For this application all we require is measurements of voltage, current (to determine if we are charging or discharging), and a percentage of battery currently remaining. We will not be using the bq34110 directly for charging/discharging our battery, this will be handled by a separate circuit. What parameters are required for this functionality? Is proper configuration of the CEDV profile required in our usage case? Or are we okay simply setting the voltage and current calibrations and maximum charge capacity manually? This device has many registers for many features, but I'm not sure how many of them we actually need to concern ourselves with to get the functionality we are looking for.

    Thanks again!
  • Hi Kyle,

    Correct configuration of the CEDV profile is required to determine the percentage of battery currently remaining. If you need assistance with these settings, please open up a new thread so we may discuss.

    Thanks!

    Sincerely,
    Bryan Kahler