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.

BQ40Z80: BQ40Z80 Reset or dischage fet off after configuration

Part Number: BQ40Z80
Other Parts Discussed in Thread: BQSTUDIO

Hi Ti engineer,

we received the battery pack already configured from the manufacturer,

the manufacture configuration is ,  setting >IT GAUGING CONFIGURATION >5A9E 

we change it to 539e

the difference between the 2 is in 

FAST_QMAX_FLD & RELAX_JUMP_OK bit

The original bits are FAST_QMAX_FLD=high and RELAX_JUMP_OK=high 

we change it to   FAST_QMAX_FLD= high and RELAX_JUMP_OK=high

we change it with our controller with the SMB communication 

after changing the bq40z80 shut off the power output for 5s and open it again automatically after that,

the Q is that the expected behavior? how can we avoid these 5s of power down ??

thanks , Netanel

  • Hello Netanel,

    This is not expected behavior if this is the only thing you change in the configuration.

    Can you send what command sequence you send with the logic analyzer captures so we can check what is being sent to the gauge?

    Sincerely,

    Wyatt Keller

  • I will send 

    if I see in a lifetime that the ra table is updated, is the expected behavior for that?

  • Hi wyatt,

    the sequence is : 

    //sealed to unsealed

        ////-----------------

        battery_info.sbs_transmit_buffer[0] = 0x14;

        battery_info.sbs_transmit_buffer[1] = 0x4;

     

        Battery_block_write(0x44, battery_info.sbs_transmit_buffer, 2);

     

        battery_info.sbs_transmit_buffer[0] = 0x72;

        battery_info.sbs_transmit_buffer[1] = 0x36;

     

        Battery_block_write(0x44, battery_info.sbs_transmit_buffer, 2);

     

        //unsealed to full access

        //--------------------------

        battery_info.sbs_transmit_buffer[0] = 0xFF;

        battery_info.sbs_transmit_buffer[1] = 0xFF;

     

        Battery_block_write(0x44, battery_info.sbs_transmit_buffer, 2);

     

        battery_info.sbs_transmit_buffer[0] = 0xFF;

        battery_info.sbs_transmit_buffer[1] = 0xFF;

     

        Battery_block_write(0x44, battery_info.sbs_transmit_buffer, 2);

     

     

    SBS_BALANCING_CONFIGURATION

    Battery_data_block_access_write_ubyte(0x4B8C, 0x27);

     

    SBS_IT_GAUGING_CONFIGURATION

     

      //write IT gauging configuraation[FAST_QMAX_FLD] = 1        

      //write IT gauging configuraation[RELAX_JUMP_OK] = 0

    Battery_data_block_access_write_ushort(0x4B9D, it_gauging_configuration);

     

     

    SBS_SBS_GAUGING_CONFIGURATION

     

    //RSOC_HOLD = 0

    Battery_data_block_access_write_ubyte(0x4AC9, sbs_gauging_configuration);

     

     

    SBS_ENABLED_PF_C

     

    // Enabled PF C[2LVL] = 1

    Battery_data_block_access_write_ubyte(0x4C47, enabled_pf_c);

     

     

    SBS_POWER_CONFIG

    Battery_data_block_access_write_ushort(0x4ACC, power_config);

     

     

    SBS_AUTO_SHIP_TIME

    Battery_data_block_access_write_ushort(0x4B04, 10080);

     

    SBS_T3_TEMP

    Battery_data_block_access_write_sshort(0x4C99, t3_temp_eeprom_kelvin);

     

    SBS_OTC_THRESHOLD

    Battery_data_block_access_write_sshort(0x4C05, otc_threshold_eeprom_kelvin);

     

    SBS_OTC_RECOVERY

    Battery_data_block_access_write_sshort(0x4C08, otc_recovery_eeprom_kelvin);

  • Hello Netanel,

    Can you send the logic analyzer captures as well so we can confirm what is being sent and received compared to that is expected.

    It's very common to see issues with the driver or other host related problem lead to unexpected behavior of the gauge so the logic analyzer lets us see exactly what the gauge sees.

    Sincerely,

    Wyatt Keller

  • what do you mean by logic analyzer capture?

    we send all the commands via SMB communication from our microcontroller ...

    do you mean the by studio? scop?

    in the last message, I send the sequence of the commands that we send to the bq40z80  

  • Hello Netanel,

    It's very common for issues to appear in the driver, so the commands you think you're sending may be slightly different than what the gauge sees. The way we confirm this is with logic analyzer captures to see what bytes are being sent.

    This is an example from a Saleae logic analyzer device and it's software:

    Sincerely,

    Wyatt Keller

  • Hi Wyatt,

    I understand now, 

    but I have a few Q before, 

    first, as you can see from the previous messages we send a lot of commands, do you need the record of all the commands?

    what do you mean, it is a driver issue, I verify the register changing with the bqstudio

    also do you mean that this is a problem with SMB driver? because as I said before we send the command to the BQ40 from our st32 controller ... 

    can we organize a team meeting? it will take weeks to communicate like that ... 

  • Hello Netanel,

    Thank you for the data, this formatting is hard to parse, but from what I can tell there are many updates to the flash, you confirmed this happens every time and only with the update of IT Gauging Config?

    I would not expect this to change much unless by changing the values you do the gauge triggers TD/TDA which would cause the DSG FET to disable. Can you use bqStudio for testing and modify the value in the GUI in order to check if any other registers are updated when this config is changed?

    It is common to encounter driver issues or compatibility issues if the host is using an I2C driver for example it won't work properly with the gauge. That's why we usually check this first. If you can make the modification in BQStudio and it does not cause the DSG FET to disable, then it is most likely related to the driver. If the DSG FET is disabled with both BQStudio or host MCU, then it is most likely a settings issue.

    To organize a meeting you can work with your TI FAE, we cannot organize meetings through the forum.

    Sincerely,

    Wyatt Keller

  • Hi Wyatt , 

    first, as you write in the last massage we do write to the flash, not a lot but we change a few registers (unseal and then other registers changing like I wrote the specific changing a few massages ago) 

    so, for now, I verify that the register that we want to change actually changes  (I see the registers in the bqstudio before and after changing ) but the DSG FET switch for 5s , also I changed the registers manually but I didn't know where to see the TDA register changing, is it in Gauging Status?

    do I need to see it in scan mode change ? because I don't see it change, how we can solve this issue?

  • Hello Netanel,

    Is this happening with all data flash updates or just the IT gauging config register?

    If you are changing settings which affect the FETs then it may cause the FET to toggle while the protections are checked.

    Can you send the .gg and srec files with your configuration? I will test with an EVM to see if I can re-create your issue with your settings in BQStudio.

    Sincerely,

    Wyatt Keller

  • bat from changes.gg.csv

    bat _after changing.gg.csv

    Hi, Wyatt

    i attached 2 files one is before changing and the other one is after.

  • Hello Netanel,

    You are changing some of the protection settings for PF events and other thresholds for OTC, in order for the settings to be implemented properly the gauge would need to be reset so after the reset the settings will take effect immediately. This will require the FETs to be off while the protections are checked and then enabled if there are no problems.

    Sincerely,

    Wyatt Keller