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.

BQ76952: Thermistor reading issue

Part Number: BQ76952
Other Parts Discussed in Thread: BQSTUDIO,

Hi Experts,

we are working on project with BQ7695202 and facing an issue.

We use 4 thermistor in the BQ7695202.
Thermistor 1 (TM1) Connect to TS1 pin,
Thermistor 2 (TM2) Connect to TS3 pin,
Thermistor 3 (TM3) Connect to CFETOFF pin and
Thermistor 4 (TM4) Connect to HDQ pin.

Once in a while on connection
AFE reads only one Thermistor correct and shows rest three reading in accurate(-17).
And there is no output at this time as CHG and DSG fet are off from AFE side.
It is also not showing any error (like UTD or UTC).
we tried to reconnect thermistor but nothing happened.
when we try to reset the BMS with the help of TS2 button this error sometimes fade away and sometimes not.
We could not able to understand why this is happening randomly.
Can you please suggest something.


kindly help!

Best regards

Aman Sharma

  • Hi Aman,

    Do you have anything else connected to the thermistor pins? Capacitors are often used to help filter noise, but the value should be less than 4nF as recommended in the datasheet or it could affect the readings. If this is not the issue, can you share the register settings for these pins?

    Thanks,

    Matt

  • Hi Matt
    The pins are directly connected to the Thermistor there is no capacitors in between.

    Here is the list of register setting (DM) for these pins-

    DM.SETTING.CONFIGURATION.CFETOFF_PIN.Byte 0x7
    DM.SETTING.CONFIGURATION.TS1_PIN.Byte 0x7
    DM.SETTING.CONFIGURATION.TS3_PIN.Byte 0x7
    DM.SETTING.CONFIGURATION.HDQ_PIN.Byte 0x7

    Here is the schematic diagram 

    Thanks & Regards

    Aman Sharma

  • Hi Aman,

    The settings look okay. The only issue I see on the schematic is that the REGIN pin capacitor should ideally be 22nF, but I do not think this would explain the issue you are seeing with the thermistor measurements. Do you think there could be a problem with the device communication? Are you reading the measurements using BQStudio or with an MCU? You are using the version of the device with CRC enabled, so that should help prevent any corrupt readings.

    Do you see any other strange measurements besides the thermistor readings? Have you tried on more than one device and are the thermistors well connected?

    Regards,

    Matt

  • Hi Matt,

    We are using MCU to communicate with BQ76952 IC.

    This issue arising once in a while at random, rest of the time all the reading including thermistor reading is ok along with all other protection functionality.
    It is the reason we are unable to find out root cause of the same.

    As suggested by you we shall replace 10nF with 22nF.

    We have been checked for this issue and it is happening with multiple boards. 

    Kindly help!

    Thanks & Regards

    Aman Sharma

     

  • Hi Aman,

    Are you sure the MCU is correctly interpreting the CRC bytes? Can you capture this phenomenon on a logic analyzer?

    Thanks,

    Matt

  • Hi Matt,

    We don't have logic analyzer but we do have DSO.

    Thanks & Regards

    Aman Sharma

  • Thanks Aman. Please share if you are able to capture these waveforms.

  • Hi Matt,

    As you asked for waveform here are the waveforms of TS1_PIN and TS3_PIN :-

    1) When BMS behaving normal and reading accurate value of thermistor.


    2) When BMS is reading wrong value of thermistor(flat curves clearly says the reason for the same), CHG and DSG FET are in OFF condition but BMS is able to read individual cell voltages, Pack voltage, etc. AND there is no error in STATUS_A, STATUS_B OR STATUS_C Register.

    #NOTE : BMS works ok after recovery from this issue automatically after 4 minutes(approx.).

  • Hi Aman,

    This behavior is truly strange. Can you share your complete register settings? Are you putting the device into DEEPSLEEP mode?

    Regards,

    Matt

  • Hi Matt,

    No  i'm not putting device in  DEEPSLEEP mode.

    Here is the list of complete register setting (DM)

    DM.SETTING.CONFIGURATION.POWER_CONFIG.Double_Byte 0x2d90
    DM.SETTING.CONFIGURATION.REG12_CONFIG.Byte 0xd
    DM.SETTING.CONFIGURATION.REG0_CONFIG.Byte 0x1
    DM.SETTING.CONFIGURATION.HWD_REG_OPTION.Byte 0x25
    DM.SETTING.CONFIGURATION.CFETOFF_PIN.Byte 0x7
    DM.SETTING.CONFIGURATION.DFETOFF_PIN.Byte 0x46
    DM.SETTING.CONFIGURATION.ALERT_PIN.Byte 0x2a
    DM.SETTING.CONFIGURATION.TS1_PIN.Byte 0x7
    DM.SETTING.CONFIGURATION.TS2_PIN.Byte 0x0
    DM.SETTING.CONFIGURATION.TS3_PIN.Byte 0x7
    DM.SETTING.CONFIGURATION.HDQ_PIN.Byte 0x7
    DM.SETTING.CONFIGURATION.DCHG_PIN.Byte 0x2a
    DM.SETTING.CONFIGURATION.DDSG_PIN.Byte 0x2a
    DM.SETTING.CONFIGURATION.DA_CONFIG.Byte 0x6
    DM.SETTING.CONFIGURATION.VCell_Mode 0xff
    DM.SETTING.CONFIGURATION.CC3_Sample 0x0


    DM.SETTING.PROTECTION.PROTECTION_CONFIG.Double_Byte 0x602
    DM.SETTING.PROTECTION.ENABLED_PA.Byte 0xfc
    DM.SETTING.PROTECTION.ENABLED_PB.Byte 0x37
    DM.SETTING.PROTECTION.ENABLED_PC.Byte 0x80
    DM.SETTING.PROTECTION.CFET_PA.Byte 0x98
    DM.SETTING.PROTECTION.CFET_PB.Byte 0x15
    DM.SETTING.PROTECTION.CFET_PC.Byte 0x0
    DM.SETTING.PROTECTION.DFET_PA.Byte 0xe4
    DM.SETTING.PROTECTION.DFET_PB.Byte 0x26
    DM.SETTING.PROTECTION.DFET_PC.Byte 0x80
    DM.SETTING.PROTECTION.Body_Diode_Th 0x32


    DM.SETTING.ALARM.DEFAULT_ALARM_MASK.Double_Byte 0xe095
    DM.SETTING.ALARM.SF_ALERT_MASK_A.Byte 0xfc
    DM.SETTING.ALARM.SF_ALERT_MASK_B.Byte 0x77
    DM.SETTING.ALARM.SF_ALERT_MASK_C.Byte 0x84
    DM.SETTING.ALARM.PF_ALERT_MASK_A.Byte 0xdf
    DM.SETTING.ALARM.PF_ALERT_MASK_B.Byte 0x9f
    DM.SETTING.ALARM.PF_ALERT_MASK_C.Byte 0x78
    DM.SETTING.ALARM.PF_ALERT_MASK_D.Byte 0x1


    DM.SETTING.PERMANENT_FAILURE.ENABLED_PF_A.Byte 0x80
    DM.SETTING.PERMANENT_FAILURE.ENABLED_PF_B.Byte 0xf
    DM.SETTING.PERMANENT_FAILURE.ENABLED_PF_C.Byte 0x7e
    DM.SETTING.PERMANENT_FAILURE.ENABLED_PF_D.Byte 0x0


    DM.SETTING.FET.FET_OPTION.Byte 0x1f
    DM.SETTING.FET.CHG_PUMP_CONTROL.Byte 0x1
    DM.SETTING.FET.PreChg_Start_V 0x1f4
    DM.SETTING.FET.PreChg_Stop_V 0x258
    DM.SETTING.FET.PreDsg_TimeOut 0x5
    DM.SETTING.FET.PreDsg_Stop_Delta 0x0


    DM.SETTING.CURRENT_THRESHOLD.Dsg_Current_TH 0x0
    DM.SETTING.CURRENT_THRESHOLD.Chg_Current_TH 0x0
    DM.SETTING.CURRENT_THRESHOLD.OpenWire_CheckTime 0x0


    DM.SETTING.MFG_STATUS_INIT.Double_Byte 0x90


    DM.SETTING.CELLBALANCING_CONFIG.CB_CONFIG.Byte 0x7
    DM.SETTING.CELLBALANCING_CONFIG.Min_Cell_Temp 0x0
    DM.SETTING.CELLBALANCING_CONFIG.Max_Cell_Temp 0x0
    DM.SETTING.CELLBALANCING_CONFIG.Max_Internal_Temp 0x0
    DM.SETTING.CELLBALANCING_CONFIG.CB_Interval 0x0
    DM.SETTING.CELLBALANCING_CONFIG.CB_Max_Cells 0x2
    DM.SETTING.CELLBALANCING_CONFIG.CB_Min_CellV_Charge 0xcb2
    DM.SETTING.CELLBALANCING_CONFIG.CB_Min_Delta_Charge 0x32
    DM.SETTING.CELLBALANCING_CONFIG.CB_Stop_Delta_Charge 0x14
    DM.SETTING.CELLBALANCING_CONFIG.CB_Min_CellV_Relax 0xdac
    DM.SETTING.CELLBALANCING_CONFIG.CB_Min_Delta_Relax 0x32
    DM.SETTING.CELLBALANCING_CONFIG.CB_Stop_Delta_Relax 0x14

    _____________________________________________________________

    DM.POWER.SHUTDOWN.ShutDown_CV 0x0
    DM.POWER.SHUTDOWN.ShutDown_Stack_V 0x0
    DM.POWER.SHUTDOWN.ShutDown_Low_V_Delay 0x0
    DM.POWER.SHUTDOWN.ShutDown_Temp 0x55
    DM.POWER.SHUTDOWN.ShutDown_Temp_Delay 0x0
    DM.POWER.SHUTDOWN.FET_Off_Delay 0x0
    DM.POWER.SHUTDOWN.ShutDown_cmd_Delay 0x0
    DM.POWER.SHUTDOWN.Auto_ShutDown_Time 0x5
    DM.POWER.SHUTDOWN.Ram_Fail_ShutDown_Time 0x0


    DM.POWER.SLEEP.Sleep_Current 0x0
    DM.POWER.SLEEP.Voltage_Sample_Time 0x0
    DM.POWER.SLEEP.Wake_Comparator_Current 0x0
    DM.POWER.SLEEP.Sleep_Hysteresis_Time 0x0
    DM.POWER.SLEEP.Sleep_Charger_V_TH 0x0
    DM.POWER.SLEEP.Sleep_Charger_Pack_TOS_Delta 0x0

    DM.Config_Ram_Sign 0x0
    --------------------------------------------------------------

    DM.PROTECTION.CUV.Threshold 0x38
    DM.PROTECTION.CUV.Delay 0x1b
    DM.PROTECTION.CUV.Recovery_Hysteresis 0x3

    DM.PROTECTION.COV.Threshold 0x45
    DM.PROTECTION.COV.Delay 0x12d
    DM.PROTECTION.COV.Recovery_Hysteresis 0x4

    DM.PROTECTION.COVL.Latch_Limit 0x0
    DM.PROTECTION.COVL.Counter_Dec_Delay 0x0
    DM.PROTECTION.COVL.Recovery_Time 0x0

    DM.PROTECTION.OCC.Threshold 0x4
    DM.PROTECTION.OCC.Delay 0x7f
    DM.PROTECTION.OCC.Recovery_Threshold 0x8
    DM.PROTECTION.OCC.Pack_TOS_Delta 0xa

    DM.PROTECTION.OCD1.Threshold 0x1
    DM.PROTECTION.OCD1.Delay 0x7f

    DM.PROTECTION.OCD2.Threshold 0x2
    DM.PROTECTION.OCD2.Delay 0x7f

    DM.PROTECTION.SCD.Threshold 0x0
    DM.PROTECTION.SCD.Delay 0x1
    DM.PROTECTION.SCD.Recovery_Time 0xa

    DM.PROTECTION.OCD3.Threshold 0xe0c0
    DM.PROTECTION.OCD3.Delay 0x1

    DM.PROTECTION.OCD_Recovery_Threshold 0x9a70

    DM.PROTECTION.OCDL.Latch_Limit 0x0
    DM.PROTECTION.OCDL.Counter_Dec_Delay 0x0
    DM.PROTECTION.OCDL.Recovery_Time 0x0
    DM.PROTECTION.OCDL.Recovery_Threshold 0x9a70

    DM.PROTECTION.SCDL.Latch_Limit 0x0
    DM.PROTECTION.SCDL.Counter_Dec_Delay 0x0
    DM.PROTECTION.SCDL.Recovery_Time 0x0
    DM.PROTECTION.SCDL.Recovery_Threshold 0x9a70

    DM.PROTECTION.OTC.Threshold 0x37
    DM.PROTECTION.OTC.Delay 0x5
    DM.PROTECTION.OTC.Recovery 0x19

    DM.PROTECTION.OTD.Threshold 0x4b
    DM.PROTECTION.OTD.Delay 0x5
    DM.PROTECTION.OTD.Recovery 0x35

    DM.PROTECTION.OTF.Threshold 0x0
    DM.PROTECTION.OTF.Delay 0x0
    DM.PROTECTION.OTF.Recovery 0x0

    DM.PROTECTION.OTINT.Threshold 0x5a
    DM.PROTECTION.OTINT.Delay 0x5
    DM.PROTECTION.OTINT.Recovery 0x55

    DM.PROTECTION.UTC.Threshold 0x0
    DM.PROTECTION.UTC.Delay 0x5
    DM.PROTECTION.UTC.Recovery 0x14

    DM.PROTECTION.UTD.Threshold 0xf6
    DM.PROTECTION.UTD.Delay 0x5
    DM.PROTECTION.UTD.Recovery 0x0

    DM.PROTECTION.UTINT.Threshold 0xf6
    DM.PROTECTION.UTINT.Delay 0x5
    DM.PROTECTION.UTINT.Recovery 0x0

    DM.PROTECTIONRecovery_Time 0x0
    DM.PROTECTION.HWD_Delay 0x0

    DM.PROTECTION.LOAD_DETECT.Active_Time 0x14
    DM.PROTECTION.LOAD_DETECT.Retry_Delay 0x14
    DM.PROTECTION.LOAD_DETECT.TimeOut 0x0

    DM.PROTECTION.PTO.Charge_Threshold 0x5
    DM.PROTECTION.PTO.Delay 0x5
    DM.PROTECTION.PTO.Reset 0x0

    ----------------------------------------------------------------

    DM.PERMANENT_FAIL.CUDEP.Threshold 0x0
    DM.PERMANENT_FAIL.CUDEP.Delay 0x0

    DM.PERMANENT_FAIL.SUV.Threshold 0x0
    DM.PERMANENT_FAIL.SUV.Delay 0x0

    DM.PERMANENT_FAIL.SOV.Threshold 0x0
    DM.PERMANENT_FAIL.SOV.Delay 0x0

    DM.PERMANENT_FAIL.TOS.Threshold 0x0
    DM.PERMANENT_FAIL.TOS.Delay 0x0

    DM.PERMANENT_FAIL.SOCC.Threshold 0x0
    DM.PERMANENT_FAIL.SOCC.Delay 0x0

    DM.PERMANENT_FAIL.SOCD.Threshold 0x0
    DM.PERMANENT_FAIL.SOCD.Delay 0x0

    DM.PERMANENT_FAIL.SOT.Threshold 0x00
    DM.PERMANENT_FAIL.SOT.Delay 0x00

    DM.PERMANENT_FAIL.SOTF.Threshold 0x0
    DM.PERMANENT_FAIL.SOTF.Delay 0x0

    DM.PERMANENT_FAIL.VIMR.Check_Voltage 0
    DM.PERMANENT_FAIL.VIMR.Max_Relax_Current 0
    DM.PERMANENT_FAIL.VIMR.Threshold 0
    DM.PERMANENT_FAIL.VIMR.Delay 0x00
    DM.PERMANENT_FAIL.VIMR.Min_Relax_Current 0

    DM.PERMANENT_FAIL.VIMA.Check_Voltage 0
    DM.PERMANENT_FAIL.VIMA.Min_Active_Current 0
    DM.PERMANENT_FAIL.VIMA.Threshold 0
    DM.PERMANENT_FAIL.VIMA.Delay 0x00

    DM.PERMANENT_FAIL.CFETF.Threshold 0x0
    DM.PERMANENT_FAIL.CFETF.Delay 0x0

    DM.PERMANENT_FAIL.DFETF.Threshold 0x0
    DM.PERMANENT_FAIL.DFETF.Delay 0x0

    DM.PERMANENT_FAIL.VSSF.Threshold 0x0
    DM.PERMANENT_FAIL.VSSF.Delay 0x0
    DM.PERMANENT_FAIL.VSSF.Delay_2LVL 0x00
    DM.PERMANENT_FAIL.VSSF.Delay_LFOF 0x00
    DM.PERMANENT_FAIL.VSSF.HWMX_Delay 0x00

    DM.SECURITY_SETTING.Byte 0x0

    DM.Unseal_Key_Step1 0
    DM.Unseal_Key_Step2 0
    DM.Full_Access_Key_Step1 0
    DM.Full_Access_Key_Step2 0

    Thanks & Regards

    Aman Sharma

  • Hi Aman,

    Can you try using the default settings and only enable set up the thermistor registers? This will help isolate whether this is a hardware issue or if there is some issue in the register settings.

    I do see some issues in the register settings, but it is difficult to determine if any of these issues are related to the issue you are experiencing. Here are a few things I notice:

    • DM.SETTING.CONFIGURATION.VCell_Mode 0xff   (This is not a valid setting. VC16 and VC15 must be connected to a cell) If all cells are used, this register should be written to 0x0000 or 0xFFFF
    • DM.SETTING.CONFIGURATION.CC3_Sample 0x0   (There are many examples like this where I do not see the purpose of writing to this register. If you do not plan to use the CC3 measurement, I suggest leaving this parameter at the default value. Zero is outside of the allowed programmable range in BQStudio)
    • I notice that the PF_EN bit is set to zero, but you are setting many bits in the PF Enabled A-D register. And then you are writing all of the PF thresholds and delays to zero (which is not valid). I suggest leaving all of these registers at default values rather than writing them without reason.
    • Do not write to the Security registers if you are not using them.
    • In general, only modify the register you need to. Otherwise you might be creating problems unintentionally.

    Best regards,

    Matt

  • Hi Matt,

    I Modified all the settings to Default and then tried 

    Here is those modified settings

    // SETTING : CONFIGURATION
    DM.SETTING.CONFIGURATION.POWER_CONFIG.Double_Byte = 0X2982;
    DM.SETTING.CONFIGURATION.REG12_CONFIG.Byte = 0x00;
    DM.SETTING.CONFIGURATION.REG0_CONFIG.Byte = 0x00;
    DM.SETTING.CONFIGURATION.HWD_REG_OPTION.Byte = 0x00;
    DM.SETTING.CONFIGURATION.CFETOFF_PIN.Byte = 0x07;
    DM.SETTING.CONFIGURATION.DFETOFF_PIN.Byte = 0x00;
    DM.SETTING.CONFIGURATION.ALERT_PIN.Byte = 0x00;
    DM.SETTING.CONFIGURATION.TS1_PIN.Byte = 0x07;
    DM.SETTING.CONFIGURATION.TS3_PIN.Byte = 0x07;
    DM.SETTING.CONFIGURATION.HDQ_PIN.Byte = 0x07;
    DM.SETTING.CONFIGURATION.DCHG_PIN.Byte = 0x00;
    DM.SETTING.CONFIGURATION.DDSG_PIN.Byte = 0x00;
    DM.SETTING.CONFIGURATION.DA_CONFIG.Byte = 0x05;

    // SETTING : PROTECTION
    DM.SETTING.PROTECTION.PROTECTION_CONFIG.Double_Byte = 0x0002;
    DM.SETTING.PROTECTION.ENABLED_PA.Byte = 0x88;
    DM.SETTING.PROTECTION.ENABLED_PB.Byte = 0x00;
    DM.SETTING.PROTECTION.ENABLED_PC.Byte = 0x00;

    DM.SETTING.PROTECTION.CFET_PA.Byte = 0x98;
    DM.SETTING.PROTECTION.CFET_PB.Byte = 0xD5;
    DM.SETTING.PROTECTION.CFET_PC.Byte = 0x56;

    DM.SETTING.PROTECTION.DFET_PA.Byte = 0xE4;
    DM.SETTING.PROTECTION.DFET_PB.Byte = 0xE6;
    DM.SETTING.PROTECTION.DFET_PC.Byte = 0xE2;
    DM.SETTING.PROTECTION.Body_Diode_Th = 50;


    // SETTING : ALARM
    DM.SETTING.ALARM.DEFAULT_ALARM_MASK.Double_Byte = 0xF800;
    DM.SETTING.ALARM.SF_ALERT_MASK_A.Byte = 0xFC;
    DM.SETTING.ALARM.SF_ALERT_MASK_B.Byte = 0xF7;
    DM.SETTING.ALARM.SF_ALERT_MASK_C.Byte = 0xF4;
    DM.SETTING.ALARM.PF_ALERT_MASK_A.Byte = 0x5F;
    DM.SETTING.ALARM.PF_ALERT_MASK_B.Byte = 0x9F;
    DM.SETTING.ALARM.PF_ALERT_MASK_C.Byte = 0x00;
    DM.SETTING.ALARM.PF_ALERT_MASK_D.Byte = 0x00;

    // SETTING : Permanent Failure
    DM.SETTING.PERMANENT_FAILURE.ENABLED_PF_A.Byte = 0x00;
    DM.SETTING.PERMANENT_FAILURE.ENABLED_PF_B.Byte = 0x00;
    DM.SETTING.PERMANENT_FAILURE.ENABLED_PF_C.Byte = 0x07;
    DM.SETTING.PERMANENT_FAILURE.ENABLED_PF_D.Byte = 0x00;

    And we also tried by replacing 10nF with 22nF.

    But the result is still same in both condition kindly suggest something.

    Thanks & Regards

    Aman Sharma

  • Hi Aman,

    Have you configured the coefficients for the specific thermistor you are using using the https://www.ti.com/tool/BQ769X2-THERMISTOR-COEFF-CALCULATOR tool?

    Best regards,

    Matt

  • Hi Matt,

    Yes I've configured the coefficients for the specific thermistor,

    As I said earlier this happens once in a while.

    Best Regards,

    Aman Sharma

  • Hi Aman,

    I am not sure what could cause this. Since the thermistors are far from the IC typically, could it be possible they are exposed to electromagnetic interference?

    Regards,

    Matt

  • Hi Matt,

    If it is the case then it must be the constant case. 

    Why it's becoming normal after 4-5 mins?

    Best Regards,

    Aman Sharma

  • Hi Aman,

    I am not sure why this would happen. Are there any other conditions to note - is this occurring at room temperature, is there any switching between modes like Shutdown or DeepSleep, etc?

    Regards,

    Matt

  • Hi Matt,

    No, there are no other condition appears during that case.

    and yes this happens at  room temperature.

    No, there are no switching happening between any modes.

    Best Regards,

    Aman Sharma

  • Hi Aman,

    I notice in your original question that you try to reset the device with the TS2 pin. This will not work - can you try to toggle the RST_SHUT pin to see if it resolves the issue? It needs to be held high for less than 1 second (more than 1 second will put the device into Shutdown mode).

    Thanks,

    Matt