Tool/software:
Hi TI Team,
Currently we use BQ SCD(short circuit in discharge) protection in BQ7695202 BMS IC. We set the SCD protection at threshold 80Ampere with a set delay of 100us & scd recover time 5 second. When more than 80A current come then discharging fet is not off. Please help us to resolve the problem.
One thing i want to ask to you that in case of 100us set timing of SCD Current if charging current is come then SCD protection will be occure or not??
Below is the setting of BQ IC :-
// Configures all parameters in device RAM // Enter CONFIGUPDATE mode (Subcommand 0x0090) - It is required to be in CONFIG_UPDATE mode to program the device RAM settings // See TRM for full description of CONFIG_UPDATE mode CommandSubcommands(SET_CFGUPDATE); //FETOptions used for predischarge BQ769x2_SetRegister(FETOptions, 0x0D, 1);//ENABLE BY DEFAULT AT VALUE 0x0D //DA configuration BQ769x2_SetRegister(DAConfiguration, 0X06, 1);//SET THE CURRENT RECEIVED IN 10ma units not the 1ma units BQ769x2_SetRegister(CC3Samples, 0x32, 1);//32=50 sample of ncurrent at every 3ms...total time 150ms //CCGain BQ769x2_SetRegister(CCGain, 0x41745000, 4);//FOR 1milliOhm 2 parallel shunt(become .5milliOhm shunt) // 'Power Config' - 0x9234 = 0x2D80 // Setting the DSLP_LDO bit allows the LDOs to remain active when the device goes into Deep Sleep mode // Set wake speed bits to 00 for best performance BQ769x2_SetRegister(PowerConfig, 0x2c80, 2);//for non sleep mode // 'REG0 Config' - set REG0_EN bit to enable pre-regulator BQ769x2_SetRegister(REG0Config, 0x01, 1);//BY DEFAULT IT IS 0X00//DISABLE // 'REG12 Config' - Enable REG1 with 3.3V output (0x0D for 3.3V, 0x0F for 5V) BQ769x2_SetRegister(REG12Config, 0x0D, 1);//BY DEFAULT IT IS 0X00//DISABLE // Set DFETOFF pin to control DSG FET - 0x92FB = 0x02 (set to 0x00 to disable) BQ769x2_SetRegister(DFETOFFPinConfig, 0x02, 1); // Set CFETOFF pin to control CHG FET - 0x92FA = 0x02 (set to 0x00 to disable) BQ769x2_SetRegister(CFETOFFPinConfig, 0x02, 1); // Set TS1 to measure Cell Temperature & protection- 0x07 BQ769x2_SetRegister(TS1Config, 0x07, 1); // Set TS2 to measure Cell Temperature & protection- 0x07 BQ769x2_SetRegister(TS2Config, 0x07, 1); // Set TS3 to measure FET Temperature & protection - 0x0F BQ769x2_SetRegister(TS3Config, 0x0F, 1); // Set HDQ to measure Cell Temperature & protection - 0x07 BQ769x2_SetRegister(HDQPinConfig, 0x07, 1); // No thermistor installed on EVM HDQ pin, so set to 0x00 // Set DCHG measure Cell Temperature & protection - 0x07 BQ769x2_SetRegister(DCHGPinConfig, 0x07, 1); // Set DDSG to measure Ambient Temperature & no protection - 0x0B BQ769x2_SetRegister(DDSGPinConfig, 0x0B, 1); // 'VCell Mode' - Enable 16 cells - 0x9304 = 0x0000; Writing 0x0000 sets the default of 16 cells //we set 0x7fff for 15 cell. cell 15 & 16 are shorted BQ769x2_SetRegister(VCellMode, 0x7fff, 2); // Enable protections in 'Enabled Protections A' 0x9261 = 0xBC // Enables SCD (short-circuit), OCD1 (over-current in discharge), OCC (over-current in charge), // COV (over-voltage), CUV (under-voltage) //SCD-OCD2-OCD1-OCC-COV-CUV-RSVD_0-RSVD_0 BQ769x2_SetRegister(EnabledProtectionsA, 0x80, 1);//set scd BQ769x2_SetRegister(CHGFETProtectionsA, 0x80, 1);//off the charging fet in case of bq scd // Enable all protections in 'Enabled Protections B' 0x9262 = 0xF7 // Enables OTF (over-temperature FET), OTINT (internal over-temperature), OTD (over-temperature in discharge), // OTC (over-temperature in charge), UTINT (internal under-temperature), UTD (under-temperature in discharge), UTC (under-temperature in charge) BQ769x2_SetRegister(EnabledProtectionsB, 0xA0, 1);//only bq ot(dicharging,fet ot) activate // Enable all protections in 'Enabled Protections C' 0x9263 =0X00; //enables Host Watchdog Fault(HWDF),precharge timeout(PTO),COV latch,CUV latch,SCD latch,OCD3 latch //we are not using protection C BQ769x2_SetRegister(EnabledProtectionsC, 0x02, 1);//enables Host Watchdog Fault(HWDF) to off the CHG/DSG FET BQ769x2_SetRegister(CHGFETProtectionsC, 0x02, 1);//enables Host Watchdog Fault(HWDF) to off the CHG FET BQ769x2_SetRegister(DSGFETProtectionsC, 0x02, 1);//enables Host Watchdog Fault(HWDF) to off the DSG FET BQ769x2_SetRegister(HWDDelay, 60, 1);//delay in second//enables Host Watchdog Fault(HWDF) to off the DSG FET // 'Default Alarm Mask' - 0x..82 Enables the FullScan and ADScan bits, default value = 0xF800 BQ769x2_SetRegister(DefaultAlarmMask, 0xF882, 2); // Set up Cell Balancing Configuration - 0x9335 = 0x03 - Automated balancing while in Relax or Charge modes // Also see "Cell Balancing with BQ769x2 Battery Monitors" document on ti.com BQ769x2_SetRegister(BalancingConfiguration, 0x0C, 1);//HOST CONTROLED CELL BALANCING // Set up OTD (Overtemperature in DisCharge) Threshold - 0x929D BQ769x2_SetRegister(OTDThreshold, BQOTDThreshold_Value, 1);//62 DEGREE CELCIUS // Set up OTD (Overtemperature in DisCharge) Delay - 0x929E BQ769x2_SetRegister(OTDDelay, BQOTDDelay_Value, 1);//1 SECOND // Set up OTD (Overtemperature in DisCharge) Recovery - 0x929F BQ769x2_SetRegister(OTDRecovery, BQOTDRecover_Value, 1);//55 DEGREE CELCIUS // Set up OTF (Overtemperature in FET/PCB) Threshold - 0x92A0 BQ769x2_SetRegister(OTFThreshold, BQOTFThreshold_Value, 1);//90 DEGREE CELCIUS // Set up OTF (Overtemperature in FET/PCB) Delay - 0x92A2 BQ769x2_SetRegister(OTFDelay, BQOTFDelay_Value, 1);//2 SECOND // Set up OTF (Overtemperature in FET/PCB) Recovery - 0x92A2 BQ769x2_SetRegister(OTFRecovery, BQOTFRecover_Value, 1);//70 DEGREE CELCIUS // Set up OCD2 Threshold - 0x9284 = 0x0A (20 mV = 20A across 1mOhm sense resistor) units of 2mV //10mv=20A across 0.5mOhm sense resistor).multiplier is 2mv.So set value =5mv in register for 20 ampere. //we set register value =15 for 60 ampere BQ769x2_SetRegister(OCD2Threshold, BQOCD2Threshold_Remainder, 1); BQ769x2_SetRegister(OCD2Delay, BQOCD2Delay_Remainder, 1);//value is 400ms.multiplier 3.3ms. register value 121 BQ769x2_SetRegister(OCDRecoveryThreshold, 0, 1); // Set up SCD Threshold - 0x9286 = 0x05 (100 mV = 100A across 1mOhm sense resistor) 0x05=100mV //0=10mv=20A,1=20mv=40A,2=40mv=80A across 0.5mOhm sense resistor).So set value =2 in register for 80 ampere. //we set register value =2 for 80 ampere BQ769x2_SetRegister(SCDThreshold, 2, 1);//40MV DROP//80 AMPERE // Set up SCD Delay - 0x9287 = 0x03 (30 us) Enabled with a delay of (value - 1) * 15 µs; min value of 1 BQ769x2_SetRegister(SCDDelay, 5, 1);//value is 100us.multiplier 15us. register value 8 with 15us offset //SCDRecoveryTime in second BQ769x2_SetRegister(SCDRecoveryTime, 5, 1);//5 SECOND // Exit CONFIGUPDATE mode - Subcommand 0x0092 CommandSubcommands(EXIT_CFGUPDATE);
Please find attached image in which channel 4 is current probe of cro & channel 2(yellow color) is the voltage across shunt resistor(SRP,SRN).
Current scale is 50A per division & channel 2 is at 100mV per division.

Thanks with Regrds
DEEPAK