BQ76940: IC keeps getting damaged

Part Number: BQ76940

I am working on a BMS design using BQ76940. I have pulled up the SCL and SDA line to the REGOUT pin. I have connected it to a microcontroller and powered it using REGOUT pin. I was able to read the cell voltages from the IC using UART. But, after a while the IC gets damaged and the REGOUT pin and VSS shows a short. This has happened twice already. What am I doing wrong here?

  • Hi Cleatus,

    If the IC is getting damaged, something must be wrong on the hardware. Can you share your schematic?

    Thanks,

    Matt

  • 6746.BMS.pdf

    I have attached my schematic. It is a development board that implements both high side and low side configurations.

  • Hi Cleatus,

    The schematic looks good for the most part. I did notice you have C48, C49, C50 connecting the cell group power pins to VSS. I haven't seen capacitors used with the device in this way before - are these high voltage capacitors? I was also looking at the REGIN circuit because this is the power source for the REGOUT regulator. I assume BA+ connects to the top of the battery stack? If you are doing any short circuit testing, a diode and resistor are recommended in this circuit in this application report: https://www.ti.com/lit/an/slua749a/slua749a.pdf

    I also noticed that D27 is a 45V component. Is this correct - what are the voltages of your cells?

    Best regards,

    Matt

  • C48, C49, C50 are decoupling capacitors. Are these unnecessary?

    Yes, BA+ connects to the top of the battery stack.

    D27 is DNA as of now. The battery pack is at 57V with 15 cells right now.

  • I do not think C48, C49, and C50 are needed. And I would expect these to be connected between the power pin groups (BAT-VC10X, VC10X-VC5X, VC5X-VSS). The way they are connected, C48 will have the whole battery stack voltage across it - is it rated for this voltage?

    Regards,

    Matt

  • I have connected 15 cells in series to the board. When I power up and read the voltages of cells using UART, only the first 5 cells are displayed correctly, the rest are showing 47 numeric number. What is the problem here?

    Here are my readings:

    CAP1 - VSS = 3.2V

    CAP2 - VSS = 18.4V

    CAP3 - VSS = 48.9V

  • CAP3 should only be 3.3V above VC10X. CAP2 and CAP1 voltages look okay, but CAP3 is very high. I would only expect 33.3V.

    The device has 3 groups of 5 cells, so your results are showing that the 2nd and 3rd cell group has an issue. You can read the status registers to see if there is a fault reported. Usually this means that the top groups are not being powered correctly. Measure VC5X, VC10X, and BAT pins as well.

    Regards,

    Matt

  • Hey Matt!

    Here are the readings:

    VC5X - VSS = 23.1V

    VC10X - VSS = 39.58V

    BAT - VSS = 44.84V

    When I check the voltages reaching the pads of the IC with BQ76940 removed, the cell voltages between pins VC0 - VC15 are near about 3.6V. After I mount the IC and then check the voltages reaching the IC pads, few cell voltages are off by a considerable value like 5.4V, 1.2V and so on. What could be the issue here?

  • Hi Cleatus,

    How many cells are connected to the board? VC5X seems impossibly high - CAP2 should be 3.3V above VC5X. I would expect a bigger voltage difference between BAT and VC10X. Something definitely looks very odd.

    If you have all 15 cells connected and they are 3.6V, then you should have about 54V total at the BAT pin. If you are reducing the number of cells, make sure to follow the connection guidance in the datasheet (see Alternate cell count table). 

    Best regards,

    Matt

  • I was able to clear the previous error and made sure all the cell voltages reach the IC. I dumped an example program in an STM32 microcontroller and tried reading the cell voltages.
    Now, all cell voltages are being displayed as "47".  I have uploaded the output I got as well as the code that I had dumped in the microcontroller. Please provide a solution.
    bms_output.txt
    Determining i2c address and whether CRC is enabled
    write: 00001011 --> 00011001
    Address and CRC detection successful
    Address: 8
    CRC Enabled: 0
    write: 00000100 --> 00011000
    write: 00000101 --> 01000000
    setSCD
    SCD threshold: 1
    SCD delay: 2
    write: 00000110 --> 10010001
    setOCD
    OCD threshold: 4
    OCD delay: 5
    write: 00000111 --> 01010100
    setUVP
    write: 00001010 --> 10101000
    write: 00001000 --> 00010000
    setOVP
    write: 00001001 --> 01010101
    OV_DELAY: 1
    write: 00001000 --> 00010000
    enableDischarging
    checkStatus: 0
    Clearing XR error
    write: 00000000 --> 00100000
    enableDischarging: failed
    update
    updateCurrent
    updateVoltages
    updateBalancingSwitches
    checkStatus: 32
    Clearing XR error
    write: 00000000 --> 00100000
    0x00 SYS_STAT:  00100000
    0x01 CELLBAL1:  00000000
    0x02 CELLBAL2:  00000000
    0x03 CELLBAL3:  00000000
    0x04 SYS_CTRL1: 00011000
    0x05 SYS_CTRL2: 01000000
    0x06 PROTECT1:  10010001
    0x07 PROTECT2:  01010100
    0x08 PROTECT3   00010000
    0x09 OV_TRIP:   01010101
    0x0A UV_TRIP:   10101000
    0x0B CC_CFG:    00011001
    0x2A BAT_HI:     00000000
    0x2B BAT_LO:     00000000
    0x32 CC_HI:     00000000
    0x33 CC_LO:     00000000
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    update
    updateCurrent
    updateVoltages
    updateBalancingSwitches
    checkStatus: 32
    Clearing XR error
    write: 00000000 --> 00100000
    0x00 SYS_STAT:  00100000
    0x01 CELLBAL1:  00000000
    0x02 CELLBAL2:  00000000
    0x03 CELLBAL3:  00000000
    0x04 SYS_CTRL1: 00011000
    0x05 SYS_CTRL2: 01000000
    0x06 PROTECT1:  10010001
    0x07 PROTECT2:  01010100
    0x08 PROTECT3   00010000
    0x09 OV_TRIP:   01010101
    0x0A UV_TRIP:   10101000
    0x0B CC_CFG:    00011001
    0x2A BAT_HI:     00000000
    0x2B BAT_LO:     00000000
    0x32 CC_HI:     00000000
    0x33 CC_LO:     00000000
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
    47
  • Hi Cleatus,

    I am not sure if what you shared is going to help with the debug or the voltages you a measuring on your board. As I said before, the voltages you are reading on the power pins do not make sense. Can you answer my questions about how many cells are connected and share your schematic if possible?

    Or are you saying that the previous issues are solved? 

    The SYS_STAT reading on your device shows that there is a DEVICE_XREADY fault. You need to figure out what is causing this. Here is a thread that may be helpful:

    https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/923907/bq76940-xready-trigger-reason-identify 

    Matt

  • I am using 15 cells with approximately 54.7V as output.

    Here are my readings:

    CAP1 - VSS = 3.29V

    CAP2 - VC5X = 0.06V

    CAP3 - VC10X = 3.13V

    BAT - VSS = 48.3V

  • Hi Cleatus,

    So the CAP2-VC5X voltage is showing that the middle cell group is not powered. The BAT pin voltage is low compared to the total stack voltage (48.3V vs. 54.7V). Can you measure the voltages on your cell voltage inputs (VCx pins) to see if you see anything unexpected? 

    Matt

  • Hey Matt!

    The issue seemed to be with the IC. I replaced it with a new one and now, I am able to read the cell voltages perfectly.

    I have couple more questions.

    1. I want to enter the Over Voltage and Under Voltage values. Are these values set for individual cell or the complete cell stack?

    2. What parameters should I consider while setting short circuit delay and short circuit threshold?

  • Hi Cleatus,

    Glad that issue is resolved. For the over-voltage and under-voltage values - these are set for the cell voltage. The short circuit parameters really depend on your system requirements, so it differs for each application.

    Best regards,

    Matt

  • Hey Matt!

    I am having an issue during balancing. All the cells are being balanced except one (15th cell). I have left the balancing ON for one whole day. I have attached the screenshot of all the cell voltages. All the components associated with that cell seem to be fine. Please provide a solution.

  • Hi Cleatus,

    I don't see a reason why Cell 15 would not balance from your schematic. Have you tried turning on balancing for Cell 15 only and measuring the voltage across the balance resistors to see if it is working? Your microcontroller should be controlling which cells balance.

    Regards,

    Matt

  • Thanks Matt!

    The cell is balancing now.

    I noticed another issue on my board. When I assemble the filter capacitors (1uF) for each cell, I am reading erroneous values and when they are removed, I am able to read the correct voltage readings. What could be the issue? 

    I have attached the screenshot of the readings with the filter capacitors assembled.

  • Hi Cleatus,

    I recommend reducing the cell input capacitors to 0.22uF. During balancing the RC time constant affects the settling time when balancing is paused to take a measurement. If the voltage has not fully settled, it will result in some measurement error. 

    However, looking at your screen capture, it looks like you have balancing disabled, so this may be unrelated. In your previous screen capture, it looks like your cells were measuring correctly, so has something else changed on your board? The new voltage readings look like some of the VC pins are not connected to the cells.

    Regards,

    Matt

  • This screenshot was taken with the filter capacitors assembled. 

  • I understand, but the voltages seem to show that some cell wires are not connected. The total voltage looks correct, but it is not evenly distributed across the cells. This is not an issue with the battery monitor, it indicates that connections are broken.

    Regards,

    Matt

  • Hey Matt!

    None of the connections are broken. This happens only when I assemble the filter capacitors.

  • Hi Cleatus, 

    The BQ76940 is only measuring and reporting the voltages seen at its VCx pins. Try measuring the voltage at the pins with a multimeter to verify. 

    Either the voltages are really incorrect (a broken connection is the only explanation I have for this) or the device is damaged. Let me know what you see on the multimeter. If you are seeing the correct voltages on the device pins, try replacing the IC.

    Regards,

    Matt

  • Hey Matt!

    When I remove the filter capacitors, I am able to read the correct cell voltage readings.

  • Understood from your previous descriptions. Were you able to measure the voltages at the device pins using a multimeter with the caps installed? Have you tried replacing the IC?

    Matt

  • I will try what you said and update here.

    I have another query. Can I use relays instead of MOSFETs and place them on the high side (near positive end)?

  • Hi Cleatus,

    Relays could work but this is not commonly done. You may need a separate relay driver IC or circuit. Relays may also be slow-switching which you may want to consider for short-circuit protection which typically needs to be fast.

    Regards,

    Matt

  • Thanks Matt!

    Should the cells be balancing while discharging?

  • Normally, that is not done. It is most common to balance during charge (near the end of charging) or during a rest state.

  • Hey Matt!

    I can see that there is an example code for BQ76940 in your website. Does this code detect load and charger automatically and enable the corresponding FETs? Also can this code be used for 13S battery pack?

  • Hey Cleatus,

    Matt is out of office until Friday.

    The example code will need to be edited to only read from 13 cells. Currently it is configured for the full 16. It looks like it only reads the voltage from each cell.

    Thanks,
    Caleb

  • Can you please confirm about the code if it detects load and charger automatically?

    Also how does the BQ76940 detect when a charger is plugged in. I can see that there is a bit that is set in SYS_CTRL1 when a load is present but there isn't any information on a charger being plugged in. I need these clarifications to proceed with the coding part.

  • Hi Cleatus, 

    This example code was published a long time ago, before my time in this team, so I am not an expert on this example. I have noticed that multiple users have published projects online on sites like Github if you need to see more examples. 

    Regards,

    Matt

  • How does the BQ76940 detect when a charger is plugged in? I can see that there is a bit that is set in SYS_CTRL1 when a load is present but there isn't any information on a charger being plugged in. I need these clarifications to proceed with the coding part.

  • Hey Matt!

    I have come up with 2 solutions for charger detection:

    1. Using an opto isolator. Connect Anode and Cathode to Pack+ and Pack- and connect collector to the REGOUT pin (3V3 LDO) and emitter is connected to the microcontroller. Hence, when a charger is plugged in, a high is received at the output. Schematic below:

    2. Can I leave the charge MOSFET "ON" when the load detect register is 0 and disable when load detect is set as "1". This would mean, the charge MOSFET is ON all the time when the load is not connected. Is it a reliable method?

    Are these any reliable?

  • Hi Cleatus,

    I haven't used either of these solutions before, so it's hard to comment on the reliability. 

    Matt

  • Also, if I leave the CHG MOSFET "ON", the load detect circuit will not work as per the data sheet.

    Can you suggest any alternative?

  • Hi Cleatus,

    There is a reference design that includes a charger detection circuit: https://www.ti.com/tool/TIDA-01093 . You may want to study this option.

    I suggest starting a new thread for additional questions. This thread was opened 3 months ago and the topic has changed multiple times. I will go ahead and close this thread.

    Regards,

    Matt