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.

  • TI Thinks Resolved

BQ34Z651: Board Offset Calibration

Intellectual 530 points

Replies: 14

Views: 1627

Part Number: BQ34Z651

Hi There,

I am wanting to calibrate the board offset on my BQ34Z651 system and i cannot find any reference that details how to do that. 

Can someone point me in the direction of such a reference?

Thanks,

David

  • Hi David,
    Please take a look at www.ti.com/.../slua379e.pdf for calibration of this gauge.
    Regards,
    Swami
  • In reply to Swaminathan Ramanathan75031:

    Hi Swami,

    I am attempting to use that document to write my own calibration routine and to start that I wanted to do a basic current calibration to get things up and running. I used a protocol analyser to observe all of the SMB transactions that occur when the evaluation software calibrates the part and I am noticing discrepancies between what is documented in the pdf you pointed me to and what I am observing. 

    Firstly the pdf indicates that you tell the device what the true current is by writing to command 0x60. But that command is never written. In the setup phase the only transactions that occur between the 0x40 to enter calibration mode and 0x51 to start calibration are writes to 0x58 and 0x54, neither of which are documented in the pdf you sent me. 

    Secondly, there seem to be reads from 0x50, I assume to check the status of the calibration, can you tell me what that command tells me?

    Thirdly, the 0x54 command is also sent at the end of the calibration routine, in between the expected 0x72 and 0x73 commands.

    Are you able to reconcile this for me?

    Thanks,

    David

  • In reply to Swaminathan Ramanathan75031:

    I asked a followup question that explains why this answer did not resolve it and my follow up question has not been answered.
  • Genius 14785 points

    In reply to David Wright33:

    Hi David,
    Were you able to successfully calibrate using the instructions in the app note? That is the recommended method. We do not recommend that you try to replicate what EVSW is doing because it may have additional stuff going on in the background or may use different methods.
  • In reply to dMax:

    Hi There,

    Unfortunately I have been too busy with other things to try yet!

    That is good to know though, thanks!

    David

  • In reply to David Wright33:

    Hi There,

    I have just spent a couple of days trying to recreate the calibration scheme in the app note with no luck.

    I am trying to test it by doing a deliberate miss-calibration of voltage so that I would see a change in my well calibrated pack. And I am seeing no such change.

    my pseudo code is as follows:

    Put the device into calibration mode
    (write 0x0040 to address 0x00)

    write the number of cells (2) to 0x63

    write the calibration voltage in mV (7000) to 0x61

    Begin calibration
    (write the desired calibration mode (0xC080) to address 0x51)

    Wait for the calibration to complete:
    (poll 0x52 regularly until (it's value & 0x3FFF) = 0)

    write the results to data flash (send command 0x72)

    wait for writing to take place (10ms wait)

    exit calibration mode (send command 0x73)

    It appears as if no calibration take place (there does not seem to be a delay) and the values in the data flash and the measured voltage are unchanged. This is still the case after a reset (which should refresh registers from the data flash if that hasn't already been done (it is unclear if this is necessary))

    So I have a few follow up questions:

    1. Can you provide me with documentation that covers the commands used (0x60, 0x63, 0x73 etc.) So I can understand what is actually going on here.
    2. Can you explain why the BQ software (which can calibrate successfully) does something completely different to the recommended procedure?
    3. The function in the application note is called CalibrateAll() yet it only calibrates 5/10 of the available calibration items. Is there any documentation that covers the calibration of the other elements? In particular what values need to be written to which registers in order for those calibrations to actually function.
    4. Do you have any insight as to why the process I detailed above wouldn't work? I can provide actual C code if you would like but that will be harder to understand. 

    Thanks,

    David

  • In reply to dMax:

    Please see my subsequent message.
  • In reply to David Wright33:

    Posting another update of my progress thus far, still no luck. 

    I have attached the captured the SMB traffic during an attempted voltage calibration (calibration only the voltage to 8V).

    The first couple of messages are me reading the cell count from the gas gauge so as to avoid manually entering that information. 

    Another thing to note is that I have PEC enabled so those bytes are present at the end of all transactions.

    For some reason the gas gauge NACKs my read of 0x52 during calibration, I don't understand why that happens.

    Hopefully this will give you some insight into what I am doing wrong. 

    /cfs-file/__key/communityserver-discussions-components-files/196/4857.Voltage_5F00_Calibration_5F00_Data.xlsx

    Cheers,

    David

     

  • In reply to David Wright33:

    Hi David,
    I will have an opportunity to duplicate this next week.
    So Let me try it and get back to you.
    Regards,
    Swami
  • In reply to Swaminathan Ramanathan75031:

    Hi Swami,

    Have you had a chance to look into this?

    Thanks,

    David

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.