void BQ769x2_Init() { uint32_t CCGainValue = 0X40723055;// 7.5684/2 = 3.7842 2毫欧的采样电阻 CommandSubcommands(BQ769x2_RESET); // 后面再看,是不是要取消。 delay_ms(300); CommandSubcommands(SET_CFGUPDATE);//进入CONFIG_UPDATE模式 BQ769x2_SetRegister(CommType, 0x07, 1); //设置通讯模式:07速度为100Khz的模式 BQ769x2_SetRegister(PowerConfig,0x3882, 2); //允许SLeep,TS2为非Shutdown模式等 BQ769x2_SetRegister(REG0Config, 0x01, 1); //Reg0前置稳压 BQ769x2_SetRegister(REG12Config,0x0D, 1); //3.3V REG1开启 BQ769x2_SetRegister(TS1Config, 0x07, 1); //热敏电阻,电芯内部温度检测 BQ769x2_SetRegister(TS2Config, 0x00, 1); //未使用 BQ769x2_SetRegister(TS3Config, 0x00, 1); //未使用 BQ769x2_SetRegister(CFETOFFPinConfig, 0x00, 1); //未使用 BQ769x2_SetRegister(DFETOFFPinConfig, 0x00, 1); //未使用 BQ769x2_SetRegister(ALERTPinConfig, 0x00, 1); //未使用 BQ769x2_SetRegister(HDQPinConfig, 0x00, 1); //未使用 BQ769x2_SetRegister(DCHGPinConfig, 0x00, 1); //未使用 BQ769x2_SetRegister(DDSGPinConfig, 0x00, 1); //未使用 BQ769x2_SetRegister(VCellMode, 0x800F, 2); //连接了1-4、16位置 BQ769x2_SetRegister(DAConfiguration, 0x1D, 1); //FET温度开启,10mV 1mA 为userA BQ769x2_SetRegister(CCGain, CCGainValue, 4); //电流增益,注意浮点数的格式 2豪欧 BQ769x2_SetRegister(ChgPumpControl, 0x07, 1);//开启为控制的电压为11V等 0X03是5.5V 0X01是11V BQ769x2_SetRegister(FETOptions, 0x2F, 1);//开启主机可控制,在睡眠模式下也可以启用CHG //CHG DSG自主控制及控制内容 BQ769x2_SetRegister(MfgStatusInit, 0x0010, 2);//自主FET控制,禁用永久失效检测,器件在操作期间不会对OTP进行编程。 BQ769x2_SetRegister(CHGFETProtectionsA, 0x80, 1);//0X80只开放电短路 BQ769x2_SetRegister(CHGFETProtectionsB, 0x00, 1);//0x00关闭 BQ769x2_SetRegister(CHGFETProtectionsC, 0x00, 1);//0x00关闭 BQ769x2_SetRegister(DSGFETProtectionsA, 0xE0, 1);//0xE0只开过流 BQ769x2_SetRegister(DSGFETProtectionsB, 0x00, 1);//0x00关闭 BQ769x2_SetRegister(DSGFETProtectionsC, 0x80, 1);//0x80只开过流 //开启初级保护类型 BQ769x2_SetRegister(EnabledProtectionsA, 0xE0, 1);//0xE0只开过流 BQ769x2_SetRegister(EnabledProtectionsB, 0x00, 1);//0x00关闭 BQ769x2_SetRegister(EnabledProtectionsC, 0x80, 1);//0x80只开过流 、禁止预充电超时,主禁止机看门狗故障保护 //保护参数设置 BQ769x2_SetRegister(COVThreshold, 0x55, 1);//电芯过压 86*50.6 =4.35V(默认) BQ769x2_SetRegister(CUVThreshold, 0x32, 1);//电芯欠压 50*50.6 =2.53V(默认) BQ769x2_SetRegister(OCCThreshold, 0x01, 1);//充电过流保护 1*2mV@2毫欧 1A BQ769x2_SetRegister(SCDThreshold, 0x01, 1);//放电短路 20mV@2毫欧 10A BQ769x2_SetRegister(OCD1Threshold,0x03, 1);//放电过流1 3*2mV@2毫欧 3A(默认) BQ769x2_SetRegister(OCD2Threshold,0x02, 1);//放电过流2 2*2mV@2毫欧 2A BQ769x2_SetRegister(OCD3Threshold,-1500, 2);//放电过流3 -1.5A BQ769x2_SetRegister(OTCThreshold, 0x37, 1);//充电过热保护 55°C (默认) BQ769x2_SetRegister(OTDThreshold, 0x3C, 1);//放电过热保护 60°C (默认) BQ769x2_SetRegister(OTFThreshold, 0x50, 1);//FET 过热保护 80°C (默认) BQ769x2_SetRegister(OTINTThreshold,0x55,1);//内部过温保护 85°C (默认) BQ769x2_SetRegister(UTCThreshold, 0x00, 1);//充电低温保护 00°C (默认) BQ769x2_SetRegister(UTDThreshold, 0x00, 1);//放电低温保护 00°C (默认) BQ769x2_SetRegister(UTINTThreshold,0xEC,1);//内部欠温保护 -20°C (默认)//注意负数 //次级保护 永久失效 BQ769x2_SetRegister(EnabledPFA, 0x00, 1);//0x00关闭 BQ769x2_SetRegister(EnabledPFB, 0x00, 1);//0x00关闭 CommandSubcommands(LOAD_DETECT_ON);//开路检测 CommandSubcommands(EXIT_CFGUPDATE); }