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.

Firmware/config cause for incorrect bq78PL114S12 current reading?

Other Parts Discussed in Thread: BQWIZARD, BQ78PL114

Hello,

I'm having problems with a bq78PL114S12 PCB we've created. Everything seems to work except for the current readings. I've tried multiple calibrations (all steps = Success) and reloading of the V5000 firmware and the S12 config and ppsv and the proper chem file (#400, since we're using A123 M1 cells), but no luck. All current readings by the chip are 5 times too low. I've confirmed that the voltage across the sense resistor is correct for the current flowing through it and that the SHUNT_BATT and SHUNT_PACK voltages are reaching the chip correctly (both in value and polarity). It seems as if the chip is set for the wrong sense resistor by a factor of 5.

We have configured the board for a 1mOhm sense resistor and have tried to set everything to reflect this. But, the Specification Info value is 49. This doesn't seems correct. Shouldn't the SpecInfo IPScale bits be set to to 1 for a 1mOhm sense resistor, resulting in a much higher SpecInfo value? I can't see any way to change this though.

[Edit] Also, we've cycled the pack three times so far and the SBData Dynamic values for Abs. SOC and Rel. SOC are still zero after discharge and charge. The Pack History still shows zero for the LifeTime Delivered Amp Hours and the Pack Dynamic Pack Passed Current and Cycle Since Learn are zero too.

[Edit] The SBData Dynamic Pack Voltage reading also rises way too high during charge (up to 400mV) and drops too low during discharge (about 300mV). Almost as if the internal resistance values for the cell were ridiculously high. But, the cell readings are very different from what bqWizard is reporting. The impedance values in the cell Learned tab display are very, very high. Is this the cause for the incorrect readings? After a half an hour or so (once charge or discharge has stopped), the voltage readings drift back to close to the correct value. This seems to be unrelated to the above other problems but I wanted to mention it as it's causing premature CC and DC cutoffs.

Here are a few numbers from the parameters:

<SBData Static>

Specification Info = 49

 

<Pack Configuration>

Hardware Configuration = 0x0F31 (both Sense 0 and Sense 1 are set)

Sense Resistor = 1000 uohms

 

<Calibration>

Current Gain  = 20490

Coulomb Gain = 21502

 

Thanks for any help you can offer!

 

  • A follow up...

    To act as a double-check on the functionality of our PCB, I did the S12 conversion to our bq78PL114 EVM. I did all of the hardware conversions detailed in the "8-Cell PowerLAN Configuration for use in the bq78PL114S12" document, Rev 1.0. I then followed the "Firmware Update Procedure" document instructions to go from firmware 4452 to 5000.

    I still have the same current measurement problem with the EVM board as I do with our prototype PCB. This is good as it points to the firmware or config files as being the cause and not our PCB design. It's also bad because it points to the firmware or config files causing our problems. :-))

    Any recommendations as to how we can fix this problem?

    Thanks!

  • I am still designing my PCB so I have not tested this yet, but I have a couple of suggestions:

    • I have read that the byte order between bqWizard and the TI chip is sometimes swapped, causing all sorts of funny results, could this be the case here? Either on values being written to pl114 initially, or values beeing read? It could be smart to log the SMBus if you have the equipment to do so to see if values are written or read correctly.
    • Have you checked the voltage drop over the current shunt with a good & fast scope to see if there are transients or noise that could influence the current values? Remember that the pl114/pl102 does create switching noise in addition to possible noise from your own load.
    • Does the current scale setting work as documented? This could tell if the problem is HW or SW/FW related.  

     

  • Great suggestion, thanks!

    • I don't have a SMBus monitor but perhaps our USB monitor could be used to read the data stream.
    • I'll put a scope on the shunt...great suggestion. Though, I'm getting the same 1/5th current reading problem on both the EVM and our PCB since updating to FW5000 so I suspect that the current readings will be OK. Best to double-check though.
    • Current scale setting? I'm familiar with the Sense Resistor parameter (Sense 1 and Sense 0 bits) and the Current calibration setting, but not that one. Which setting is this? It sounds like something I definitely want to check. :)

    As another test, I reloaded the calibration data I save from the EVM when using FW4452 and it also now shows the incorrect current reading, by the same amount. Since I think the IPScale bits in the Specification Info are still not correctly set since going to FW5000 (for both the EVM and our PCB), that's my #1 possible culprit for now. But, it's definitely worth checking the shunt noise and trying to find a way to check the byte order. It sure seems that since switching to FW5000 that the chip thinks it has the default 5mOhm sense resistance of the regular bq78PL114, especially with the Specification Info IPScale bits currently being the same as for the regular '114 ("0000").

    How can i swap the byte order if that's the problem though? If the bq78PL114S12 is using the incorrect current values, all sorts of calculations will be off.

    Any idea how to change the Specification Info IPScale bits? I'd love to set them to "0001" to match what they should be as detailed in Table 9-13 of the Tech Ref document and see if that made a difference in my current readings.

    Thanks!

     

     

  • With current scale I was thinking of the register specifiying shunt resistor value, i.e. see if the value change proportional to setting, (but it seems to me that you have done so already).

    That reminds me about a funny SMPS story: 

    On a huge 35kW bucket converter development we had chosen to use a Honeywell hall current sensor between IGBT and inductor. When testing, we did not understand at first why our main fuse kept disconnecting since we were only consuming 35kW and the fuse should be able to handle more than 60kW.  Well, to measure the current we had done a trick: The current sensor was not able to handle full current so we split the current in two using two copper bars and let one bar go thru the CS, making sure the two bars were current balanced. It took many hours of testing before we discovered that it was not our main fuse that was bad, we simply forgot to double the current read from the sensor in our SMPS firmware to find the full power.  We had been running our SMPS at twice the rated power for a day or two! The only problem discovered was the fuse, so you might say that the testing was succesful [:D]

  • LOL, great story! And I was so sure that I was doing something similar, that I missed something obvious somewhere. Just can't find out where.

    That's a great suggestion you have. I remember changing the Sense 1 and Sense 0 bits from the default 10mOhm setting (0x01) to the 1mOhm setting (0x11) and nothing happened but I will definitely try changing it back (and to the 3mOhm setting) to see if the current readings change.

    I also tried fooling it during calibration, by saying it was -1000mA when it was really -5000mA, but the current readings didn't change. Very weird. I'm sure that tells me something about what's going on here...I just have no idea what. [:)]

  • Hi,

    We have the same issue as John. All the current readings seem to be about 5 times to low.

    <SBData Static>

    Specification Info = 49

     <Pack Configuration>

    Hardware Configuration = 0x0F31 (both Sense 0 and Sense 1 are set)

    Sense Resistor = 1000 uohms

    [Calibration]

    Current Offset: -299,  Gain: 1.607

    Coulomb Offset: -232 , Gain:2.000

    Chemistry ID:300.

     

    We really need a solution for this.

    Kind regards

    Johan

     

     

  • There may be something wrong with your calibration:

    1. Current offsets look too high.  Should be in the < -100 range.

    2. Current gain should always be around 0.8 to 0.99 after calibration.

    The 0.001 Ohm setting has an SBData specification parameter associated with it called IPScale.  This divides the reported current and capacity figure by 10.  The SBData spec has a default range of +/-32Amps.  This IPScale factor is needed to go beyond the 32Amp range.

    When changing the resistor selection, make sure to do a Relearn/Initialize command before calibration and operation.  This loads the resistor change to memory.

     

     

     

  • Thanks Jim for your reply.

    I have manage to lower the current offset to -127. There seems to be a problem with the gain for some reason and I am looking at that right now.

    Does the bqwizard software show actual current, or should I see the current scaled ? If I apply a load (2500mA) will the bqwizard show a factor 10 of the "real" current ? Should I read 250mA in bqwizard ?

    Is there anything I should add/configure in TMap-file except number of cells and parallels.

     

    We need to finish this project over the weekend, is there any guidelines/documentations that can help us to complete our project?

     

    Kind regards

    Johan

  • 1. Make certain that everything is disconnected from the PACK+, PACK-, VSS and GND connections When you calibrate the current offset.  This includes all test equipment grounds.

    2. You have to enter the actual current divided by 10 when doing the gain offset calibration.

    3. You do not need to edit the TMap-File beyond series/parallel cell count.

  • Thanks again, we are working late here in Sweden!

    So a conclusion of this would be:

    Bqwizard will always read the current divided by 10 becacuse of the IPScale. If I use for instance a microcontroller to read out actual current from bq78pl114, will I recieve the current divided by 10 ?

     

    Regards

    Johan

     

  • Jim, thanks for your help!

    We ended up using 0.1x of the actual calibration current value as a workaround during our testing. Glad to hear that it's actually the correct thing to be doing! I'd like to make a request to add it to the documentation for the EVM as we spent days thinking we were doing something wrong before giving up and using the 0.1x value just so we could move forward.

    We're still not getting correct capacity calculations, cycle counts, and other stuff but perhaps that's due to our other settings not allowing bqWizard to reach a point where it can be calculated.

    You mentioned that the IPScale setting affects the current readings. The Tech Reference document for the bq78PL114 mentions that the IPScale bits should indicate that the 10x scale sholuld be used. But, our Specification Info setting is still 49 (same as the stock bq78PL114). Shouldn't the Specification Info's bits 15:12 be at least 1 to indicate that a 1mOhm sense resistor is being used? Or is that why we're using a 0.1x value for the calibrations current and why the SBData Current readout is at 0.1x of its actual value?

    Thanks!

  • Start with FW5000.

    Set your .tmap file for the number of series/parallel cells.  These can be found in the bqWizard install directory under bq78PL114S12.

    After you select the 0.001 Ohm resistor using Hardware Configuration Register bit 10=1 and 11=1, do a relearn/initialize command to make change.

    All cell voltages should look correct within datasheet specifications.

    Calibrate temperature.

    Then, calibrate offset with nothing external connected to the VSS or GND nets on your PCB - just USB-TO-GPIO adapter.  Oscilloscope probe grounds and other instrumentation grounds can cause offset problems.

    Last, calibrate current gain at your nominal current level.  But, first divide the actual current by 10 before entering the value in the space provided.

    The SpecificationInfo register may have a bug in that it does not update when you select the 0.001 Ohm resistor.

     

  • Thanks Jim! That mirrors our current setup procedure.

    Are any of the SBS values reported by bqWizard, or a bq78PL114S12 using a 1mOhm config, affected by the 0.1x calibration current value?  Are Rel. SOC, Abs. SOC, Rem. Cap., Full Charge Cap., etc., correct after calibrating?

    Are the learned cell impedances correct when using a 1mOhm config? We're getting some very high values (80-100mOhm) for our A123 packs, and they're new cells using the equivalent of 8AWG cell interconnects. If the bq78PL114S12 and/or bqWizard think that, for example, only 0.5 is flowing when it's really 5.0A, that could certainly cause some very high impedance values.

    Thanks

     

  • Hello,Jim

    Sorry to bother you.I have some problems when I use bq78pl114EVM in voltage calibration.And I use 4-cells. According to User‘s Guide,I  calibrate voltage .I have updated the firmware to 5000 and began to calibrate voltage.But the voltage reading is 4200mV ,and the actual voltage of Lithium battery is about 3800mV.There are differences between them ,I dont konw why.Bsides, I also use firmware 4452 to calibrate voltage ,and each of the voltage reading is about 3700mV,it is smaller than the actual voltage,and the error between them is too big(about 70mV each cells ) .So would you analysis the reason of this ?

    Thanks

    Randy