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.

BQ40Z80EVM-020: Assistance with Calibration and Learning Cycle, Disabling IT, and enabling CAL

Part Number: BQ40Z80EVM-020

Tool/software:

Hello, my name is Caleb Henderson, and I am an electrical engineer working with the BQ40Z80EVM-020 

I am new to this device, and I am just being put on it so please bear with me.

Currently, we are having issues where our 22.2V 6S 25C LiPo is not fully charging/discharging.

I am investigating the circuit, and I figured the best way to get started is to perform a fresh calibration and complete a learning cycle.

We were struggling in completing the entire learning cycle, since the circuit would not fully charge/discharge.

I am going to try and calibrate and rerun the learning cycle to get an idea myself.

Since it is my first time calibrating, I am trying to start by following the Technical Reference Manual, User Guide, SLUA868 Manufacture Production Calibration, SLUA848 How to Complete a Successful Learning Cycle

However, I am immediately running into an issue on the first step:

Enabling calibration through ManufacturingStatus()[CAL] = 1

I have tried writing the command in little endian for register 0x00 (ManufacturingStatus), command (0x2D), and data 0x01

I have also tried through the CAL_TOGGLE command

Both Result in N/A and do not flip the CAL from green to red in the Bit registers

I can successfully read in DEVICE_NUMBER, HW_VERSION, FW_VERSION, etc from 0x44.

I checked OperationStatus()[SEC1][SEC0] which is [0][1], meaning our battery is unsealed and has full access.

I will note that currently ITEN = 1, FET_EN = 1, GAUGE_EN = 1, VOK and QEN = 1. 

I believe the IT track is enabled which may prevent enabling calibration

Could you provide any hints as to what may be preventing us from enabling calibration, and how we can disable IT track?

Our device consistently responds with Send Command: No acknowledge from device.

Thank you sincerely,

Caleb Henderson

  • Hello Caleb,

    This question has been assigned and will be reviewed when possible.

    Thank you,
    Alan

  • Hi Caleb,

    If the device is responding with No acknowledgement, it might be an issue with how the unit is being powered. Can you please share an image of the EVM and how it is being powered at this time?

    Regards,

    Anthony

  • Unfortunately, I get the error "file embedding is not allowed" when I try to attach images of the EVM.H

    Here is the way the EVM is currently being powered. We have a 6S 22.2V LiPo connected J12 1P-6P. The yellow wire on PACK is our SENSE and is currently not connected. 

    postimg.cc/.../TKFyWvN

    I have since been able to enable calibration using the CAL_TOGGLE and enable cell voltage readings by writing 0xF081 to ManufacturerAccess().
    My SMBus Communication issue was due to not using the proper target address 0x16 and having an invisible zombie instance of the Battery Management Studio running in the background (preventing reconnection to the battery).

    These are my arguments for the SMBus Communication
    Target Address: 16 (Hex) 22 (Dec)
    Write Word 00 (Hex) 0xF081
    Block Read 23 (Hex)


    These are the results of my block reads:


    0xF081

    Read: 81 61 00 00 

    Read: 9E 0F 1A 23

    Read: 02 0F 07 0F 00 0F 14 0F

    Read: 30 11 30 11 30 11 30 11

    Read: 97 07 9B 10 72 06 26 0F

    Read: 04 00 00 00 00 00 3E 74

    0xF083

    Read: 81 61 00 00

    Read: 9E 0F 1A 23

    Read: 92 0B 90 0B 90 0B 00 00

    Read: 97 07 9B 10 72 06 26 0F 

    Read: E8 03 00 00 E0 20 00 05

    Read: 03 0F 06 0F 00 0F 14 0F

    Read: 02 0F 07 0F 00 0F 14 0F

     

    These block reads do not seem to exactly match the expected output format for 0xF081 and 0xF082:

    ZZYYaaAAbbBBccCCddDDeeEEffFFggGGhhHHiiIIjjJJkkKKllLLmmMMnnNNooOO


    If I assume the ZZ counter and YY is absent from the block read

    02 0F 07 0F 00 0F 14 0F” --> [0x0F02, 0x0F07, 0x0F00, 0x0F14] = [3842, 3847, 3840, 3860]

    Current=3842 counts, Cell1=3847, Cell2=3840, Cell3=3860

    “03 0F 06 0F 00 0F 14 0F” --> [0x0F03, 0x0F06, 0x0F00, 0x0F14] = [3843, 3846, 3840, 3860]

    Current≈3843, Cell1≈3846, Cell2≈3840, Cell3≈3860 counts

    “97 07 9B 10 72 06 26 0F” --> [0x0797, 0x109B, 0x0672, 0x0F26] = [1943, 4251, 1650, 3878]

    Cell4=1943, Cell5=4251, Cell6=1650, PACK=3878

    “E8 03 00 00 E0 20 00 05” --> [0x03E8, 0x0000, 0x20E0, 0x0500] = [1000, 0, 8416, 1280

    BAT=1000 counts, next fields would be CellCurrent1..2. Negative values would appear if any 16-bit ≥0x8000.

    For 0xF083 frames (Cell7 sense path)

    Parsing pairwise as LSB,MSB gives [0x0B92, 0x0B90, 0x0B90, 0x0000] = [2962, 2960, 2960, 0].

    Cell 7 Voltage, Cell 7 Current

    Can you help me confirm these are valid SMBus readings for the calibration? Thank you.

    ...

  • I believe I understand why my SMBus readings were incomplete. The block read data was being cut off by the box element UI, and I just was not seeing it all. It is also now my understanding that I need to write 0xF081/0xF082/0xF083 in-between each block read (else I clock out 81 61 00 00). This was how I managed to steadily clocked data out.

    For example I clocked this data out by writing 0xF081 to 0x00 and block reading from 0x23 (Target Address 0x16).

    1) 5A 01 00 00 0E 51 27 51 01 51 6E 51 B8 50 5E 50 00 00 41 4F 00 00 00 00 02 00 04 00 03 00 01 00 

    2) 0E 01 01 00 0F 51 27 51 01 51 6D 51 B9 50 5E 50 FF FF 40 4F 00 00 00 00 00 00 00 00 03 00 FE FF 

    3) 6B 01 00 00 0F 51 27 51 00 51 6E 51 B9 50 5F 50 FD FF 42 4F 03 00 04 00 02 00 05 00 FF FF 00 00 

    4) 12 01 00 00 0F 51 27 51 FF 50 6E 51 B8 50 5F 50 00 00 3F 4F 00 00 01 00 FF FF 01 00 02 00 FE FF 

    5) 58 01 00 00 0E 51 26 51 01 51 6E 51 BA 50 5F 50 00 00 41 4F 01 00 FF FF 00 00 00 00 03 00 FE FF 

    6) 7C 01 00 00 0E 51 28 51 01 51 6D 51 B9 50 5E 50 01 00 41 4F FF FF 01 00 01 00 FE FF 02 00 FF FF 

    7) A2 01 01 00 0F 51 28 51 00 51 6F 51 B9 50 60 50 01 00 41 4F 01 00 00 00 01 00 01 00 00 00 FC FF 

    8) C2 01 00 00 0F 51 28 51 01 51 6F 51 B8 50 5F 50 00 00 40 4F 00 00 02 00 02 00 03 00 01 00 FB FF 

    9) EA 01 FF FF 0F 51 26 51 00 51 6E 51 B8 50 60 50 00 00 40 4F 00 00 01 00 02 00 02 00 01 00 FA FF 

    10) 42 01 FF FF 0F 51 27 51 02 51 6E 51 B9 50 5F 50 00 00 3E 4F FF FF 01 00 01 00 04 00 03 00 FF FF 

    11) 7E 01 01 00 0F 51 27 51 01 51 6F 51 B9 50 5F 50 00 00 3F 4F 01 00 02 00 03 00 06 00 04 00 FD FF

    Thank you.