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.

BQ27421EVM-G1A: Remaining and Full Capacity Utilize Presets Rather than Programmed Design Capacity

Part Number: BQ27421EVM-G1A
Other Parts Discussed in Thread: GPCCHEM

Hello 

I am using the remaining and full capacity values reported by my gas gauge to inform the host microprocessor of when the device has low battery. This is utilized for cutting off power supply to connections. Unfortunately these parameters are consistently incorrect and utilize the pre-programmed design capacity for their calculations, even after I reprogram the design capacity and confirm that it has been reprogrammed. These calculations seem to take the new design capacity into account if the device user allows the device to fall asleep for a few minutes (the host microprocessor enters sleep mode after 10s of inactivity). Resetting the host microprocessor also allows the programmed value to "sink in" (be taken into account for the calculations). This is causing my device to unnecessarily cut off power to connected devices even though it has adequate battery capacity. I have attempted using filtered and unfiltered values, and get the same issue with both. I have not tried uncompensated values.

Please let me know if there is some way to fix this or if I have to account for it with software tricks in the host. What I may do is require that the logic to cut off power to the connections have an "and" logic for two conditions. The first condition (the condition that leads to this issue) will stay the same, and be that the remaining capacity must be below a certain value. The second condition will be that the SOC % be below a certain value, since the ratio of remaining and full capacity remains proportional both before and after the programmed design capacity is taken into account for the capacity calculations (e.g. RCAP of 600 with FCAP of 1200 becomes RCAP of 1200 and FCAP of 2400).

Still, it would be good for the manufacturer to be aware of the fact that software designers need to implement a workaround when utilizing the queried parameters. 

  • Hi Zachary

    The problem might be the fact that you are using a wrong gauge for your application. before choosing this device, did you run the test outlined in our gpcchem online tool to determine if the default chem id hardcoded in the bq27421 is a good fit for your cells?  Furhermore, the gauge has to learn the qmax and resistance of your cells. Have you ensure that has occured?

    thanks

    Onyx

  • Hi Onyx,

    Rereading my description, I can see that it sounds like I am saying that the parameters (remaining and full capacity filtered and unfiltered) that are supposed to take into account the programmed design capacity are never correct and continue to be incorrect indefinitely. However, I mean to say that they are incorrect on startup of the gas gauge. The gas gauge starts to return capacities that take the programmed design capacity into account after the host falls asleep for a few minutes or is reset. However, if the user uses the device continuously from boot-up, the full and remaining capacities will continue to use the preprogrammed design capacity as an input rather than the design capacity that I program into the device (via the host). If, at any point, the user lets the device sit for a long period of time (minutes) then the device will suddenly start taking into account the design capacity that I have programmed in.

    In action, this looks like the following. 

    Host: Programs design capacity, provides correct checksum, rereads parameters from gauge as confirmation, sends soft reset command

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host : *falls asleep for 3 minutes and makes no request*

    Host: Give me remaining and full capacity

    Gauge: 1200 2400

    OR

    Host: Programs design capacity, provides correct checksum, rereads parameters from gauge as confirmation, sends soft reset command

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host : *is reset because the user hits reset, but power to gauge is not lost*

    Host: Give me remaining and full capacity

    Gauge: 1200 2400

    OR

    Host: Programs design capacity, provides correct checksum, rereads parameters from gauge as confirmation, sends soft reset command

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    Host: Give me remaining and full capacity

    Gauge: 600 1200

    ...

  • Hi Zachary

    I believe there is another post that you have open and i have addressed. You need to make sure that you are following the flow chart for updating df parameters. Make sure to send a soft reset command as that will update your changes and cause a remcap simulation using your updates to the DF.

    thanks

    Onyx