bq76952_set_register(MfgStatusInit, 0x0010, 2); bq76952_set_register(PowerConfig, 0x28B2, 2); bq76952_set_register(REG0Config, 0x01, 1); bq76952_set_register(REG12Config, 0x0D, 1); bq76952_set_register(CommType, 0x07, 1); bq76952_set_register(VCellMode, 0xFFFF, 2); bq76952_set_register(DFETOFFPinConfig, 0x02, 1); bq76952_set_register(CFETOFFPinConfig, 0x0F, 1); // 18k, FET Temperature bq76952_set_register(ALERTPinConfig, 0x02, 1); bq76952_set_register(TS1Config, 0x07, 1); // 18k, Cell Temperature bq76952_set_register(TS3Config, 0x07, 1); // 18k, Cell Temperature bq76952_set_register(HDQPinConfig, 0x0F, 1); // 18k, FET Temperature bq76952_set_register(DCHGPinConfig, 0xA6, 1); bq76952_set_register(DDSGPinConfig, 0xA6, 1); bq76952_set_register(EnabledProtectionsA, 0xBC, 1); bq76952_set_register(EnabledProtectionsB, 0xF7, 1); bq76952_set_register(EnabledProtectionsC, 0xFE, 1); bq76952_set_register(EnabledPFC, 0x00, 1); // Permanent Fail C bq76952_set_register(CHGFETProtectionsA, 0x98, 1); bq76952_set_register(CHGFETProtectionsB, 0xD5, 1); bq76952_set_register(CHGFETProtectionsC, 0x56, 1); bq76952_set_register(DSGFETProtectionsA, 0xE4, 1); bq76952_set_register(DSGFETProtectionsB, 0xE6, 1); bq76952_set_register(DSGFETProtectionsC, 0xE2, 1); bq76952_set_register(ChgCurrentThreshold, 500, 2); bq76952_set_register(DsgCurrentThreshold, 500, 2); bq76952_set_register(ChgPumpControl, 0x01, 1); bq76952_set_register(FETOptions, 0x09, 1); bq76952_set_register(CCGain, 0x417e1076, 4); bq76952_set_register(CapacityGain, 0x4a9709d7, 4); bq76952_set_register(CellBalanceMaxCells, 2, 1); bq76952_set_register(BalancingConfiguration, 0x03, 1); bq76952_set_register(CellBalanceMinCellVCharge, 1000, 2); bq76952_set_register(CellBalanceMinDeltaCharge, 50, 1); bq76952_set_register(CellBalanceStopDeltaCharge, 30, 1); bq76952_set_register(MinCellTemp, -127, 1); bq76952_set_register(MaxCellTemp, 60, 1); bq76952_set_register(MaxInternalTemp, 60, 1); bq76952_set_register(CellBalanceInterval, 20, 1); bq76952_set_register(CellBalanceMinCellVRelax, 1000, 2); bq76952_set_register(CellBalanceMinDeltaRelax, 50, 1); bq76952_set_register(CellBalanceStopDeltaRelax, 30, 1); bq76952_set_register(CUVThreshold, 39, 1); bq76952_set_register(CUVDelay, 604, 2); bq76952_set_register(CUVRecoveryHysteresis, 4, 1); bq76952_set_register(COVThreshold, 84, 1); bq76952_set_register(COVDelay, 604, 2); bq76952_set_register(COVRecoveryHysteresis, 3, 1); bq76952_set_register(COVLLatchLimit, 3, 1); bq76952_set_register(COVLCounterDecDelay, 3, 1); bq76952_set_register(COVLRecoveryTime, 5, 1); bq76952_set_register(OCCThreshold, 2, 1); bq76952_set_register(OCCDelay, 4, 1); bq76952_set_register(OCCRecoveryThreshold, 100, 2); bq76952_set_register(OCCPACKTOSDelta, 0, 2); bq76952_set_register(OCD1Threshold, 2, 1); bq76952_set_register(OCD1Delay, 13, 1); bq76952_set_register(SCDThreshold, 4, 1); bq76952_set_register(SCDDelay, 1, 1); bq76952_set_register(SCDRecoveryTime, 5, 1); bq76952_set_register(OCD3Threshold, (int16_t)-100, 2); bq76952_set_register(OCD3Delay, 4, 1); // for 4s bq76952_set_register(OCDRecoveryThreshold, (int16_t)-100, 2); bq76952_set_register(OCDLLatchLimit, 4, 1); bq76952_set_register(OCDLCounterDecDelay, 3, 1); bq76952_set_register(OCDLRecoveryTime, 5, 1); bq76952_set_register(OCDLRecoveryThreshold, (int16_t)-100, 2); bq76952_set_register(SCDLLatchLimit, 4, 1); bq76952_set_register(SCDLCounterDecDelay, 3, 1); bq76952_set_register(SCDLRecoveryTime, 5, 1); bq76952_set_register(SCDLRecoveryThreshold, (int16_t)-10000, 2); bq76952_set_register(OTCThreshold, 65, 1); bq76952_set_register(OTCDelay, 2, 1); bq76952_set_register(OTCRecovery, 55, 1); bq76952_set_register(OTDThreshold, 75, 1); bq76952_set_register(OTDDelay, 2, 1); bq76952_set_register(OTDRecovery, 65, 1); bq76952_set_register(OTFThreshold, 90, 1); bq76952_set_register(OTFDelay, 2, 1); bq76952_set_register(OTFRecovery, 70, 1); bq76952_set_register(OTINTThreshold, 85, 1); bq76952_set_register(OTINTDelay, 2, 1); bq76952_set_register(OTINTRecovery, 80, 1); bq76952_set_register(UTCThreshold, (int8_t)-10, 1); bq76952_set_register(UTCDelay, 2, 1); bq76952_set_register(UTCRecovery, (int8_t)-5, 1); bq76952_set_register(UTDThreshold, (int8_t)-20, 1); bq76952_set_register(UTDDelay, 2, 1); bq76952_set_register(UTDRecovery, (int8_t)-10, 1); bq76952_set_register(UTINTThreshold, (int8_t)-20, 1); bq76952_set_register(UTINTDelay, 2, 1); bq76952_set_register(UTINTRecovery, (int8_t)-15, 1); bq76952_set_register(T18kCoeffa1, (int16_t)-19170, 2); bq76952_set_register(T18kCoeffa2, (int16_t)26344, 2); bq76952_set_register(T18kCoeffa3, (int16_t)-11157, 2); bq76952_set_register(T18kCoeffa4, (int16_t)20947, 2); bq76952_set_register(T18kCoeffa5, (int16_t)2896, 2); bq76952_set_register(T18kCoeffb1, (int16_t)-8021, 2); bq76952_set_register(T18kCoeffb2, (int16_t)9649, 2); bq76952_set_register(T18kCoeffb3, (int16_t)-5223, 2); bq76952_set_register(T18kCoeffb4, (int16_t)4344, 2); bq76952_set_register(T18kAdc0, (int16_t)11703, 2); bq76952_set_register(ProtectionsRecoveryTime, 2, 1); bq76952_set_register(DefaultAlarmMask, 0xF882, 2); bq76952_set_register(DAConfiguration, 0x06, 1);