TI BQ27220 I2C based, battery State of Charge and Coulomb Counter
Fork of bq27210 by
bq27220.h
00001 #ifndef MBED_BQ27220 00002 #define MBED_BQ27220 00003 00004 #define BQ_SHUNT_RESISTOR 10 // 0.010 ohms * 1000 00005 00006 // Set data into "addr" 00007 #define BQ27220_ADDR 0xAA 00008 00009 // Standard Commands 00010 #define BQ_CNTL 0x00 00011 #define BQ_AR 0x02 00012 #define BQ_ARTTE 0x04 00013 #define BQ_TEMP 0x06 00014 #define BQ_VOLT 0x08 00015 #define BQ_FLAGS 0x0A 00016 #define BQ_CURRENT 0x0C 00017 00018 #define BQ_RM 0x10 00019 #define BQ_FCC 0x12 00020 #define BQ_AI 0x14 00021 #define BQ_TTE 0x16 00022 #define BQ_TTF 0x18 00023 #define BQ_SI 0x1A 00024 #define BQ_STTE 0x1C 00025 #define BQ_MLI 0x1E 00026 00027 #define BQ_MLTTE 0x20 00028 #define BQ_RCC 0x22 00029 #define BQ_AP 0x24 00030 00031 #define BQ_INTTEMP 0x28 00032 #define BQ_CYC 0x2A 00033 #define BQ_SOC 0x2C 00034 #define BQ_SOH 0x2E 00035 00036 #define BQ_CV 0x30 00037 #define BQ_CC 0x32 00038 #define BQ_BTPD 0x34 00039 #define BQ_BTPC 0x36 00040 00041 #define BQ_OS 0x3A 00042 #define BQ_DC 0x3C 00043 #define BQ_SUB 0x3E 00044 00045 #define BQ_MACDATA 0x40 00046 00047 #define BQ_MACDATASUM 0x60 00048 #define BQ_MACDATALEN 0x61 00049 00050 #define BQ_ANACNT 0x79 00051 #define BQ_RAWC 0x7A 00052 #define BQ_RAWV 0x7C 00053 #define BQ_RAWT 0x7E 00054 00055 // Sub Commands 00056 #define BQ_CNTL_STAT 0x0000 00057 #define BQ_DEVICE_NUMBER 0x0001 00058 #define BQ_FW_VERSION 0x0002 00059 #define BQ_HW_VERSION 0x0003 00060 00061 #define BQ_BOARD_OFFSET 0x0009 00062 #define BQ_CC_OFFSET 0x000A 00063 #define BQ_CC_OFFSET_SAVE 0x000B 00064 #define BQ_OCV_CMD 0x000C 00065 #define BQ_BAT_INSERT 0x000D 00066 #define BQ_BAT_REMOVE 0x000E 00067 00068 #define BQ_SET_SNOOZE 0x0013 00069 #define BQ_CLEAR_SNOOZE 0x0014 00070 #define BQ_SET_PROFILE_1 0x0015 00071 #define BQ_SET_PROFILE_2 0x0016 00072 #define BQ_SET_PROFILE_3 0x0017 00073 #define BQ_SET_PROFILE_4 0x0018 00074 #define BQ_SET_PROFILE_5 0x0019 00075 #define BQ_SET_PROFILE_6 0x001A 00076 00077 #define BQ_CAL_TOGGLE 0x002D 00078 00079 #define BQ_SET_SEALED 0x0030 00080 00081 #define BQ_RESET 0x0041 00082 00083 #define BQ_OP_STATUS 0x0054 00084 #define BQ_GAUGE_STATUS 0x0056 00085 00086 #define BQ_EXIT_CAL 0x0080 00087 #define BQ_ENTER_CAL 0x0081 00088 00089 #define BQ_ENTER_CFG_UPDATE 0x0090 00090 #define BQ_EXIT_CFG_UPDATE_REINIT 0x0091 00091 #define BQ_EXIT_CFG_UPDATE 0x0092 00092 00093 #define BQ_RETURN_TO_ROM 0x0F00 00094 00095 // Configuration parameters 00096 #define BQ_CONFIG_CC_GAIN 0x9184 //float 00097 00098 #define BQ_CONFIG_CHG_INH_LO 0x91f5 //int16_t 00099 #define BQ_CONFIG_CHG_INH_HI 0x91f7 //int16_t 00100 #define BQ_CONFIG_CHG_INH_HYST 0x91f9 //int16_t 00101 #define BQ_CONFIG_CHG_CURR 0x91fb //int16_t 00102 #define BQ_CONFIG_CHG_VOLT 0x91fd //int16_t 00103 00104 #define BQ_CONFIG_TAPER_CURR 0x9201 //int16_t 00105 #define BQ_CONFIG_OP_CONFIG_A 0x9206 //uint16_t 00106 #define BQ_CONFIG_OP_CONFIG_B 0x9208 //uint16_t 00107 #define BQ_CONFIG_SOC_DELTA 0x920b //uint8_t 00108 #define BQ_CONFIG_CLK_CTRL 0x920c //uint8_t 00109 #define BQ_CONFIG_IO_CONFIG 0x920d //uint8_t 00110 #define BQ_CONFIG_INIT_DIS_SET 0x920e //int16_t 00111 #define BQ_CONFIG_INIT_CHG_SET 0x9210 //int16_t 00112 #define BQ_CONFIG_DEVICE_TYPE 0x9212 //uint16_t 00113 00114 #define BQ_CONFIG_SLEEP_CURR 0x9217 //int16_t 00115 #define BQ_CONFIG_BUS_LO_TIME 0x9219 //uint8_t 00116 #define BQ_CONFIG_OC_INH_T_LO 0x921a //int16_t 00117 #define BQ_CONFIG_OC_INH_T_HI 0x921c //int16_t 00118 #define BQ_CONFIG_SLEEP_V_TIME 0x921e //uint8_t 00119 #define BQ_CONFIG_SLEEP_C_TIME 0x921f //uint8_t 00120 00121 #define BQ_CONFIG_DIS_DET_THRES 0x9228 //int16_t 00122 #define BQ_CONFIG_CHG_DET_THRES 0x922a //int16_t 00123 #define BQ_CONFIG_QUIT_CURR 0x922c //int16_t 00124 #define BQ_CONFIG_DIS_RELAX_TI 0x922e //uint16_t 00125 00126 #define BQ_CONFIG_CHG_RELAX_TI 0x9230 //uint8_t 00127 #define BQ_CONFIG_QUIT_RELAX_TI 0x9231 //uint8_t 00128 00129 #define BQ_CONFIG_OT_CHG 0x9232 //int16_t 00130 #define BQ_CONFIG_OT_CHG_TIME 0x9234 //uint8_t 00131 #define BQ_CONFIG_OT_CGH_RECOV 0x9235 //int16_t 00132 #define BQ_CONFIG_OT_DSG 0x9237 //int16_t 00133 #define BQ_CONFIG_OT_DSG_TIME 0x9239 //uint8_t 00134 #define BQ_CONFIG_OT_DSG_RECOV 0x923a //int16_t 00135 #define BQ_CONFIG_INIT_STBY 0x923c //int8_t 00136 00137 #define BQ_CONFIG_SYSD_S_VTHRS 0x9240 //int16_t 00138 #define BQ_CONFIG_SYSD_S_VTIME 0x9242 //uint8_t 00139 #define BQ_CONFIG_SYSD_C_VTHRS 0x9243 //int16_t 00140 00141 #define BQ_GG_SMOOTHING_CONFIG 0x9271 //uint8_t 00142 #define BQ_CONFIG_FLAG_CONFIG_A 0x927f //uint16_t 00143 #define BQ_CONFIG_FLAG_CONFIG_B 0x9281 //uint8_t 00144 00145 #define BQ_CONFIG_BATTERY_ID 0x929a //uint8_t 00146 00147 // Gas Gauge parameters 00148 #define BQ_GG_CEDVp1_GAUGE_CONF 0x929b //uint16_t 00149 #define BQ_GG_CEDVp1_FULLC_CAP 0x929d //int16_t 15 bits 00150 #define BQ_GG_CEDVp1_DESIGN_CAP 0x929f //int16_t 15 bits 00151 #define BQ_GG_CEDVp1_DESIGN_V 0x92a3 //int16_t 15 bits 00152 #define BQ_GG_CEDVp1_CHG_TERM_V 0x92a5 //int16_t 00153 #define BQ_GG_CEDVp1_EMF 0x92a7 //uint16_t 00154 #define BQ_GG_CEDVp1_C0 0x92a9 //uint16_t 00155 #define BQ_GG_CEDVp1_R0 0x92ab //uint16_t 00156 #define BQ_GG_CEDVp1_T0 0x92ad //uint16_t 00157 #define BQ_GG_CEDVp1_R1 0x92af //uint16_t 00158 #define BQ_GG_CEDVp1_TC 0x92b1 //uint8_t 00159 #define BQ_GG_CEDVp1_C1 0x92b2 //uint8_t 00160 #define BQ_GG_CEDVp1_AGE_FACTOR 0x92b3 //uint8_t 00161 #define BQ_GG_CEDVp1_FIXED_EDV0 0x92b4 //int16_t 00162 #define BQ_GG_CEDVp1_HOLDT_EDV0 0x92b6 //uint8_t 00163 #define BQ_GG_CEDVp1_FIXED_EDV1 0x92b7 //int16_t 00164 #define BQ_GG_CEDVp1_HOLDT_EDV1 0x92b9 //uint8_t 00165 #define BQ_GG_CEDVp1_FIXED_EDV2 0x92ba //int16_t 00166 #define BQ_GG_CEDVp1_HOLDT_EDV2 0x92bc //uint8_t 00167 00168 // CNTL_STAT register bit equates 00169 #define BQ_BIT_CS_CCA 0x0020 00170 #define BQ_BIT_CS_BCA 0x0010 00171 #define BQ_BIT_CS_SNOOZE 0x0008 00172 #define BQ_BIT_CS_BAT_ID2 0x0004 00173 #define BQ_BIT_CS_BAT_ID1 0x0002 00174 #define BQ_BIT_CS_BAT_ID0 0x0001 00175 #define BQ_BIT_CS_BAT_ID (BQ_BIT_CS_BAT_ID2 | BQ_BIT_CS_BAT_ID1 | BQ_BIT_CS_BAT_ID0) 00176 00177 // Gauging Status register bit equates 00178 #define BQ_BIT_GS_VDQ 0x8000 00179 #define BQ_BIT_GS_EDV2 0x4000 00180 #define BQ_BIT_GS_EDV1 0x2000 00181 #define BQ_BIT_GS_RSVD1 0x1000 00182 #define BQ_BIT_GS_RSVD2 0x0800 00183 #define BQ_BIT_GS_FCCX 0x0400 00184 #define BQ_BIT_GS_RSVD3 0x0200 00185 #define BQ_BIT_GS_RSVD4 0x0100 00186 #define BQ_BIT_GS_CF 0x0080 00187 #define BQ_BIT_GS_DSG 0x0040 00188 #define BQ_BIT_GS_EDV 0x0020 00189 #define BQ_BIT_GS_RSVD5 0x0010 00190 #define BQ_BIT_GS_TC 0x0008 00191 #define BQ_BIT_GS_TD 0x0004 00192 #define BQ_BIT_GS_FC 0x0002 00193 #define BQ_BIT_GS_FD 0x0001 00194 00195 // CEDV Gauging Configuration register bit equates 00196 #define BQ_BIT_GC_SME0 0x1000 00197 #define BQ_BIT_GC_IGNORE_SD 0x0800 00198 #define BQ_BIT_GC_FC_FOR_VDQ 0x0400 00199 #define BQ_BIT_GC_FCC_LIMIT 0x0100 00200 #define BQ_BIT_GC_FIXED_EDV0 0x0020 00201 #define BQ_BIT_GC_SC 0x0010 00202 #define BQ_BIT_GC_EDV_CMP 0x0008 00203 #define BQ_BIT_GC_CSYNC 0x0002 00204 #define BQ_BIT_GC_CCT 0x0001 00205 00206 // FLAGS register bit equates 00207 #define BQ_BIT_F_FD 0x8000 00208 #define BQ_BIT_F_OCV_COMP 0x4000 00209 #define BQ_BIT_F_OCV_FAIL 0x2000 00210 #define BQ_BIT_F_SLEEP 0x1000 00211 #define BQ_BIT_F_OTC 0x0800 00212 #define BQ_BIT_F_OTD 0x0400 00213 #define BQ_BIT_F_FC 0x0200 00214 #define BQ_BIT_F_CHGINH 0x0100 00215 #define BQ_BIT_F_TCA 0x0040 00216 #define BQ_BIT_F_OCVGD 0x0020 00217 #define BQ_BIT_F_AUTH_GD 0x0010 00218 #define BQ_BIT_F_BATTPRES 0x0008 00219 #define BQ_BIT_F_TDA 0x0004 00220 #define BQ_BIT_F_SYSDWN 0x0002 00221 #define BQ_BIT_F_DSG 0x0001 00222 00223 // OS register bit equates 00224 #define BQ_BIT_OS_CFGUPDATE 0x0400 00225 #define BQ_BIT_OS_BTPINT 0x0080 00226 #define BQ_BIT_OS_SMTH 0x0040 00227 #define BQ_BIT_OS_INITCOMP 0x0020 00228 #define BQ_BIT_OS_VDQ 0x0010 00229 #define BQ_BIT_OS_EDV2 0x0008 00230 #define BQ_BIT_OS_SEC1 0x0004 00231 #define BQ_BIT_OS_SEC0 0x0002 00232 #define BQ_BIT_OS_CALMD 0x0001 00233 00234 // Operation Config Reg A bit equates 00235 #define BQ_BIT_OCA_TEMPS 0x8000 00236 #define BQ_BIT_OCA_RSVD1 0x4000 00237 #define BQ_BIT_OCA_BATG_POL 0x2000 00238 #define BQ_BIT_OCA_BATG_EN 0x1000 00239 #define BQ_BIT_OCA_RSVD2 0x0800 00240 #define BQ_BIT_OCA_SLEEP 0x0400 00241 #define BQ_BIT_OCA_SLPWAKECHG 0x0200 00242 #define BQ_BIT_OCA_WRTEMP 0x0100 00243 #define BQ_BIT_OCA_BIE 0x0080 00244 #define BQ_BIT_OCA_RSVD3 0x0040 00245 #define BQ_BIT_OCA_BI_PUP_EN 0x0020 00246 #define BQ_BIT_OCA_PFC_CFG1 0x0010 00247 #define BQ_BIT_OCA_PFC_CFG0 0x0008 00248 #define BQ_BIT_OCA_WAKE_EN 0x0004 00249 #define BQ_BIT_OCA_WK_TH1 0x0002 00250 #define BQ_BIT_OCA_WK_TH0 0x0001 00251 00252 // Operation Config Reg B bit equates 00253 #define BQ_BIT_OCB_RSVD1 0x8000 00254 #define BQ_BIT_OCB_RSVD2 0x4000 00255 #define BQ_BIT_OCB_RSVD3 0x2000 00256 #define BQ_BIT_OCB_RSVD4 0x1000 00257 #define BQ_BIT_OCB_DEF_SEAL 0x0800 00258 #define BQ_BIT_OCB_NR 0x0400 00259 #define BQ_BIT_OCB_RSVD5 0x0200 00260 #define BQ_BIT_OCB_RSVD6 0x0100 00261 #define BQ_BIT_OCB_INT_BREM 0x0080 00262 #define BQ_BIT_OCB_INT_BATL 0x0040 00263 #define BQ_BIT_OCB_INT_STATE 0x0020 00264 #define BQ_BIT_OCB_INT_OCV 0x0010 00265 #define BQ_BIT_OCB_RSVD7 0x0008 00266 #define BQ_BIT_OCB_INT_OT 0x0004 00267 #define BQ_BIT_OCB_INT_POL 0x0002 00268 #define BQ_BIT_OCB_INT_FOCV 0x0001 00269 00270 // SOC Flags Reg A bit equates 00271 #define BQ_BIT_SOCFA_TCSETVCT 0x0800 00272 #define BQ_BIT_SOCFA_FCSETVCT 0x0400 00273 #define BQ_BIT_SOCFA_TCCLEARRSOC 0x0080 00274 #define BQ_BIT_SOCFA_TCSETRSOC 0x0040 00275 #define BQ_BIT_SOCFA_TCCLEARV 0x0020 00276 #define BQ_BIT_SOCFA_TCSETV 0x0010 00277 #define BQ_BIT_SOCFA_TDCLEARRSOC 0x0008 00278 #define BQ_BIT_SOCFA_TDSETRSOC 0x0004 00279 #define BQ_BIT_SOCFA_TDCLEARV 0x0002 00280 #define BQ_BIT_SOCFA_TDSETV 0x0001 00281 00282 // SOC Flags Reg B bit equates 00283 #define BQ_BIT_SOCFB_FCCLEARRSOC 0x0080 00284 #define BQ_BIT_SOCFB_FCSETRSOC 0x0040 00285 #define BQ_BIT_SOCFB_FCCLEARV 0x0020 00286 #define BQ_BIT_SOCFB_FCSETV 0x0010 00287 #define BQ_BIT_SOCFB_FDCLEARRSOC 0x0008 00288 #define BQ_BIT_SOCFB_FDSETRSOC 0x0004 00289 #define BQ_BIT_SOCFB_FDCCLEARV 0x0002 00290 #define BQ_BIT_SOCFB_FDSETV 0x0001 00291 00292 // IO Config bit equates 00293 #define BQ_BIT_IOCFG_BtpIntPol 0x0002 00294 #define BQ_BIT_SOCFB_BTpIntEn 0x0001 00295 00296 // Smoothing Config bit equates 00297 #define BQ_BIT_SMOC_SMOOTH_EOC_EN 0x0008 00298 #define BQ_BIT_SMOC_CMEXT 0x0004 00299 #define BQ_BIT_SMOC_VAVG 0x0002 00300 #define BQ_BIT_SMOC_SMEN 0x0001 00301 00302 class BQ27220 00303 { 00304 public: 00305 /** 00306 * Data structure for BQ27220 data values. 00307 * 00308 **/ 00309 typedef struct { 00310 uint16_t cntlReg ; /*!< CNTL register */ 00311 int16_t arReg ; /*!< AR register */ 00312 uint16_t artteReg ; /*!< ARTTE register */ 00313 uint16_t tempReg ; /*!< TEMP register */ 00314 uint16_t voltReg ; /*!< VOLT register */ 00315 00316 uint16_t flagsReg ; /*!< FLAGS register */ 00317 int16_t currentReg ; /*!< CURRENT register */ 00318 uint16_t rmReg ; /*!< RM register */ 00319 uint16_t fccReg ; /*!< FCC register */ 00320 uint16_t aiReg ; /*!< AI register */ 00321 00322 uint16_t tteReg ; /*!< TTE register */ 00323 uint16_t ttfReg ; /*!< TTF register */ 00324 int16_t siReg ; /*!< SI register */ 00325 uint16_t stteReg ; /*!< STTE register */ 00326 int16_t mliReg ; /*!< MLI register */ 00327 00328 uint16_t mltteReg ; /*!< MLTTE register */ 00329 uint16_t rawccReg ; /*!< RCC register */ 00330 int16_t apReg ; /*!< AP register */ 00331 uint16_t intTempReg ; /*!< INTTEMP register */ 00332 uint16_t cycReg ; /*!< CYC register */ 00333 00334 uint16_t socReg ; /*!< SOC register */ 00335 uint16_t sohReg ; /*!< SOH register */ 00336 uint16_t cvReg ; /*!< CV register */ 00337 uint16_t ccReg ; /*!< CC register */ 00338 uint16_t btpdReg ; /*!< BTPD register */ 00339 00340 uint16_t btpcReg ; /*!< BTPC register */ 00341 uint16_t osReg ; /*!< OS register */ 00342 uint16_t dcReg ; /*!< DC register */ 00343 uint16_t subReg ; /*!< SUB command register */ 00344 char macData[32]; /*!< MAC Data array */ 00345 uint8_t macSumReg ; /*!< MAC Data Sum register */ 00346 00347 uint8_t macLenReg ; /*!< MAC Data Len register */ 00348 uint8_t anacReg ; /*!< Analog Count register */ 00349 uint16_t rawcReg ; /*!< RAWC register */ 00350 uint16_t rawvReg ; /*!< RAWV register */ 00351 uint16_t rawtReg ; /*!< RAWT register */ 00352 00353 uint8_t checksum ; /*!< calculated checksum result */ 00354 00355 int16_t shunt_res ; /*!< Shunt Resistor value / 1000 */ 00356 char i2c_Bufx[48]; /*!< i2c buffer */ 00357 } BQ27220_TypeDef; 00358 00359 /** Configure data pin 00360 * @param data SDA and SCL pins 00361 * // @param digital output 21V control pin 00362 **/ 00363 //BQ27220(PinName p_sda, PinName p_scl, PinName p_pgrm); 00364 BQ27220(PinName p_sda, PinName p_scl); 00365 BQ27220(PinName p_sda, PinName p_scl, int freq); 00366 00367 /** Write default values for CNTL register and shunt resistor * 1000 00368 * @param I2c pins 00369 * @param programming enable EEPROM pin (21V) 00370 * @return none 00371 */ 00372 void default_init(BQ27220_TypeDef& dataSTR); 00373 00374 uint16_t get_OS_reg(BQ27220_TypeDef& dataSTR); 00375 00376 /** Read all bq registers and put them into the data structure 00377 * @param pointer to data structure 00378 * @return i2c error, 0 = no error 00379 */ 00380 int read_registers(BQ27220_TypeDef& dataSTR); 00381 00382 /** Send sub-command and read data and/or result from sub-command 00383 * @param pointer to data structure 00384 * @return result and/or data 00385 */ 00386 uint16_t get_sub_cmmd(BQ27220_TypeDef& dataSTR, uint16_t cmmd); 00387 00388 /** Like above, without extra delays 00389 * @param pointer to data structure 00390 * @return result and/or data 00391 */ 00392 uint16_t get_sub_cmmd_s(BQ27220_TypeDef& dataSTR, uint16_t cmmd); 00393 00394 void change_cfg_OT_chg_time(BQ27220_TypeDef& dataSTR, uint8_t newtime); 00395 void change_ram_1_2_4(BQ27220_TypeDef& dataSTR, uint16_t sub_cmmd, uint32_t value, int qty, bool pre); 00396 void change_cfg_6_1(BQ27220_TypeDef& dataSTR); 00397 uint16_t get_cs_len(BQ27220_TypeDef& dataSTR, bool pf); 00398 void exitCfgUpdateReInit(BQ27220_TypeDef& dataSTR); 00399 void exitCfgUpdateExit(BQ27220_TypeDef& dataSTR); 00400 void set_reg(BQ27220_TypeDef& dataSTR, uint16_t reg, uint16_t da, int byt); 00401 00402 uint16_t get_reg_2B(BQ27220_TypeDef& dataSTR, uint8_t reg); 00403 00404 void unseal(BQ27220_TypeDef& dataSTR); 00405 void full_access(BQ27220_TypeDef& dataSTR); 00406 void enter_cfg_update(BQ27220_TypeDef& dataSTR); 00407 void seal(BQ27220_TypeDef& dataSTR); 00408 void useProfile_1(BQ27220_TypeDef& dataSTR); 00409 void reset(BQ27220_TypeDef& dataSTR); 00410 00411 /** Send sub-command to get device ID 00412 * @param pointer to data structure 00413 * @return sub-command + device id 00414 */ 00415 uint32_t get_dev_id(BQ27220_TypeDef& dataSTR); 00416 00417 /** Send sub-command to get firmware revision 00418 * @param pointer to data structure 00419 * @return revision 00420 */ 00421 uint32_t get_fw_rev(BQ27220_TypeDef& dataSTR); 00422 00423 /** Send sub-command to get firmware revision 00424 * @param pointer to data structure 00425 * @return revision 00426 */ 00427 uint32_t get_hw_rev(BQ27220_TypeDef& dataSTR); 00428 00429 uint8_t calc_checksum_rx(BQ27220_TypeDef& dataSTR, int length); 00430 uint8_t calc_checksum_tx(BQ27220_TypeDef& dataSTR, int length); 00431 00432 /** Send sub-command to get 32 bytes data 00433 * @param pointer to data structure 00434 * @param sub-command 00435 * @return 32 bytes in macData 00436 */ 00437 uint32_t get_data_32(BQ27220_TypeDef& dataSTR, uint16_t sub_cmmd, int length); 00438 00439 /** Get signed 16 bit value 00440 * @param pointer to data structure 00441 * @param sub-command 00442 * @return 16 bit signed value 00443 */ 00444 uint16_t get_16(BQ27220_TypeDef& dataSTR, uint16_t cmmd); 00445 00446 /** Get unsigned 8 bit value 00447 * @param pointer to data structure 00448 * @param sub-command 00449 * @return 8 bit signed value 00450 */ 00451 uint8_t get_8(BQ27220_TypeDef& dataSTR, uint16_t cmmd); 00452 00453 void set_ntc_as_sensor(BQ27220_TypeDef& dataSTR, bool ntc); 00454 00455 /** Initialize SoC for a new battery 00456 * @param pointer to data structure 00457 * @return error, 0 = no error 00458 */ 00459 int new_battery_init(BQ27220_TypeDef& dataSTR); 00460 00461 /** Read all bq EEPROM registers and put them into the data structure 00462 * @param pointer to data structure 00463 * @return i2c error, 0 = no error 00464 */ 00465 int read_eep_registers(BQ27220_TypeDef& dataSTR); 00466 00467 protected: 00468 I2C _i2c; 00469 00470 private: 00471 00472 }; 00473 00474 #endif // MBED_BQ27220
Generated on Sat Jul 16 2022 02:21:26 by 1.7.2