This is a library for the MAX17055 Li+ Battery Fuel Gauge.

Fork of max17055 by Central Applications - Mbed Code repo

Files at this revision

API Documentation at this revision

Comitter:
fneirab
Date:
Thu Apr 19 22:34:45 2018 +0000
Parent:
11:bdbd3104995b
Commit message:
updates version 1.5 ; Remove necessary code; Spell check; Error check; Still need a bit more work to finish;

Changed in this revision

max17055.cpp Show annotated file Show diff for this revision Revisions of this file
max17055.h Show annotated file Show diff for this revision Revisions of this file
diff -r bdbd3104995b -r 519a18fc3b28 max17055.cpp
--- a/max17055.cpp	Tue Feb 27 15:53:04 2018 +0000
+++ b/max17055.cpp	Thu Apr 19 22:34:45 2018 +0000
@@ -3,14 +3,15 @@
 *
 * @author Felipe Neira - Maxim Integrated - TTS
 *
-* @version 1.4
+* @version 1.5
 *
-* Started: 6FEB18
+* Started: 13DEC17
 *
-* Updated: 
-* Modifications to reflect applicable functions and .h file association
-* 
-* 
+* Updated: 16APR18.
+* Remove unnecessary code.  
+* Check spelling
+* Error check
+*
 *
 /*******************************************************************************
 * Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved.
@@ -48,47 +49,21 @@
 #include "mbed.h"
 #include "max17055.h"
 
-// #define DRV_NAME "max17055" ///not used
-
-// /* CONFIG register bits */
-// #define MAX17055_CONFIG_ALfRT_EN        (1 << 2) ///not used
-// #define MAX17055_CONFIG2_LDMDL          (1 << 5) ///not used
-
-// /* STATUS register bits */
-// #define MAX17055_STATUS_BST             (1 << 3) ///not used
-// #define MAX17055_STATUS_POR             (1 << 1)
-
 /* POR Mask */
 #define MAX17055_POR_MASK               (0xFFFD)
 
 /* MODELCFG register bits */
 #define MAX17055_MODELCFG_REFRESH       (1 << 15)
 
-// /* TALRTTH register bits */
-// #define MIN_TEMP_ALERT                  0 ///not used
-// #define MAX_TEMP_ALERT                  8 ///not used
 
 /* FSTAT register bits */
 #define MAX17055_FSTAT_DNR              (1)
 
-// /* STATUS interrupt status bits */
-// #define MAX17055_STATUS_ALRT_CLR_MASK   (0x88BB)
-// #define MAX17055_STATUS_SOC_MAX_ALRT    (1 << 14)
-// #define MAX17055_STATUS_TEMP_MAX_ALRT   (1 << 13)
-// #define MAX17055_STATUS_VOLT_MAX_ALRT   (1 << 12)
-// #define MAX17055_STATUS_SOC_MIN_ALRT    (1 << 10)
-// #define MAX17055_STATUS_TEMP_MIN_ALRT   (1 << 9)
-// #define MAX17055_STATUS_VOLT_MIN_ALRT   (1 << 8)
-// #define MAX17055_STATUS_CURR_MAX_ALRT   (1 << 6)
-// #define MAX17055_STATUS_CURR_MIN_ALRT   (1 << 2)
-
-// #define MAX17055_VMAX_TOLERANCE     50 /* 50 mV */
-
 /* LIBRARY FUNCTION SUCCESS*/
 #define F_SUCCESS_0  0
 
 /* LIBRARY FUNCTION ERROR CODES */  
-#define F_ERROR_1 -1    //-1 if read/write errors exist         
+#define F_ERROR_1 -1    //-1 if I2C read/write errors exist         
 #define F_ERROR_2 -2    //-2 if device is not present
 #define F_ERROR_3 -3    //-3 if function error
 #define F_ERROR_4 -4    //-4 if other error
@@ -172,14 +147,14 @@
 /**
  * @brief        Write and Verify a MAX17055 register
  * @par          Details
- *               This function wites and verifies if the writing process was successful
+ *               This function writes and verifies if the writing process was successful
  *               
  * @param[in]    reg_addr     - register address
  * @param[out]   reg_data     - the variable that contains the data to write
  *                               to the register address
  *
  * @retval       0 on success
- * @retval      non-0 for errors
+ * @retval       non-0 for errors
  */
 int MAX17055::write_and_verify_reg(Registers_e reg_addr, uint16_t reg_data)
 {
@@ -192,13 +167,13 @@
     do {
         statusWrite = writeReg(reg_addr, reg_data);
         if (statusWrite != F_SUCCESS_0)
-            ret = F_ERROR_1;
+            ret = -6;
         wait_ms(3);
         statusRead = readReg(reg_addr, read_data);
         if  (statusRead != F_SUCCESS_0)
-            ret = F_ERROR_1;
+            ret = -7;
         if (read_data != reg_data) {
-            ret = F_ERROR_1;
+            ret = -8;
             retries--;
         }
     } while (retries && read_data != reg_data);
@@ -212,8 +187,8 @@
 /**
  * @brief       Initialization Function for MAX17055.
  * @par         Details
- *              This function intitializes the MAX17055 for the implementation of the EZconfig model.\n
- *              The libraty needs to be customized for the implementation of customize model.\n  
+ *              This function initializes the MAX17055 for the implementation of the EZconfig model.\n
+ *              The library needs to be customized for the implementation of customize model.\n  
  *              
  * @retval      0 on success 
  * @retval      non-0 for errors
@@ -223,54 +198,46 @@
 
     int status, ret;
     int time_out = 10;
-    uint16_t read_data, hibcfg_value, reg;
+    uint16_t hibcfg_value,read_data;
 
 
     status = readReg(VERSION_REG, read_data);
     if (status != F_SUCCESS_0)
         return status;
 
-    /* Step 0: Check for POR */
-    /* Skip load model if POR bit is cleared */
+    ///STEP 0. Check for POR (Skip load model if POR bit is cleared)
 
     if (check_POR_func() == F_ERROR_5)
         return F_ERROR_5;  //POR not detected. Skip Initialization.
+    //This is not an error. 
 
-    /* Step 1: Check if FStat.DNR == 0 */
-    // Do not continue until FSTAT.DNR == 0
+    ///STEP 1. Check if FStat.DNR == 0 (Do not continue until FSTAT.DNR == 0)
     ret = poll_flag_clear(FSTAT_REG, MAX17055_FSTAT_DNR, time_out);
     if (ret < F_SUCCESS_0) {
-        //printf("Unsuccessful init: Data Not Ready!\n");
         return ret;
     }
 
-    /* Force exit from hibernate */
-    hibcfg_value = forcedExitHyberMode();
+    ///STEP 1.2. Force exit from hibernate
+    hibcfg_value = forcedExitHiberMode();
 
     //printf("step 1 check \r\n");
 
-    /* Step 2: Initialize configuration */
+    ///STEP 2. Initialize configuration
     switch (1) {
         case MODEL_LOADING_OPTION1:
-            /* Step 2.1: Option 1 EZ Config */
+            ///STEP 2.1. Load EZ Config
             EZconfig_init(des_data);
 
-            /* Poll ModelCFG.ModelRefresh bit for clear */
+            ///STEP 2.2. Poll ModelCFG.ModelRefresh bit for clear
             ret = poll_flag_clear(MODELCFG_REG, MAX17055_MODELCFG_REFRESH, time_out);
             if(ret < F_SUCCESS_0) {
-                //dev_err(priv->dev, "Option1 model refresh not completed!\n");
                 return ret;
             }
 
             break; 
     }
-    /* Restore original HibCfg */
+    ///STEP3. Restore original HibCfg
     writeReg(HIBCFG_REG, hibcfg_value);
-    //printf("Last section check \r\n");
-
-
-    /* Optional step - alert threshold initialization */
-    //set_alert_thresholds(priv);
 
     /* Clear Status.POR */
     ret = clear_POR_bit();
@@ -304,7 +271,7 @@
 /**
  * @brief        clear POR bit function
  * @par          Details
- *               This function clear the idicating bit for POR - MAX17055
+ *               This function clear the indicating bit for POR - MAX17055
  *
  * @retval       0 for Success
  * @retval      non-0 for errors
@@ -397,9 +364,9 @@
  * @par          Details
  *               This function executes a force exit from hibernate mode.
  *
- * @retval       HibCFG original value before forced Exit Hybernate mode *
+ * @retval       HibCFG original value before forced Exit Hibernate mode *
  */
-uint16_t MAX17055::forcedExitHyberMode()
+uint16_t MAX17055::forcedExitHiberMode()
 {
     uint16_t hibcfg;
 
@@ -407,46 +374,46 @@
     //STEP 0: Store original HibCFG value
     readReg(HIBCFG_REG, hibcfg);
 
-    //STEP 1: Write to Soft-Wakeup Commannd Register
-    writeReg(VFSOC0_QH0_LOCK_REG, 0x90); //Soft-Wakeup from hybernate
+    //STEP 1: Write to Soft-Wakeup Command Register
+    writeReg(VFSOC0_QH0_LOCK_REG, 0x90); //Soft-Wakeup from hibernate
 
     //STEP 2: Write to Hibernate Configuration register
     writeReg(HIBCFG_REG, 0x0); //disable hibernate mode
 
-    //STEP 3:Write to Soft-Wakeup Commannd Register
-    writeReg(VFSOC0_QH0_LOCK_REG, 0x0); //Clear All commnads
+    //STEP 3:Write to Soft-Wakeup Command Register
+    writeReg(VFSOC0_QH0_LOCK_REG, 0x0); //Clear All commands
 
     return hibcfg;
 }
 
 /**
- * @brief        EZ Confing Initialization function
+ * @brief        EZ Config Initialization function
  * @par          Details
- *               This function implements the steps for the EZ confing m5 FuelGauge
- * @param[in]    des_data - Plataform_data struct with information about the deisgn.
+ *               This function implements the steps for the EZ config m5 FuelGauge
+ * @param[in]    des_data - Plataform_data struct with information about the design.
  * @retval       0 on success
  * @retval       non-zero for errors
  */
 uint16_t MAX17055::EZconfig_init(platform_data des_data)
 {
-    ///EZ config values
+    ///STEP 2.1.1 EZ config values suggested by manufacturer.
     const int charger_th = 4275;
-    const int chg_V_high = 51200;
+    const int chg_V_high = 51200; // scaling factor high voltage charger
     const int chg_V_low = 44138;
-    const int param_EZ_FG1 = 0x8400;
+    const int param_EZ_FG1 = 0x8400; // Sets config bit for the charge voltage for the m5
     const int param_EZ_FG2 = 0x8000;
     uint16_t dpacc, ret;
 
-    /* Step 2.1: Option 1 EZ Config */
+    ///STEP 2.1.2 Store the EZ Config values into the appropriate registers. 
     ret = writeReg(DESIGNCAP_REG, des_data.designcap);
-    ret = writeReg(DQACC_REG, des_data.designcap >> 5);  ///DesignCap divide by 32
+    ret = writeReg(DQACC_REG, des_data.designcap >> 5);  //DesignCap divide by 32
     ret = writeReg(ICHGTERM_REG, des_data.ichgterm);
     ret = writeReg(VEMPTY_REG, des_data.vempty);
 
     if (des_data.vcharge > charger_th) {
         dpacc = (des_data.designcap >> 5) * chg_V_high / des_data.designcap;
         ret = writeReg(DPACC_REG, dpacc);
-        ret = writeReg(MODELCFG_REG, param_EZ_FG1); ///Why 0x8400??
+        ret = writeReg(MODELCFG_REG, param_EZ_FG1); // 
     } else {
         dpacc = (des_data.designcap >> 5) * chg_V_low / des_data.designcap;
         ret = writeReg(DPACC_REG, dpacc);
@@ -480,30 +447,29 @@
 }
 
 /**
- * @brief        Get Average State Of Charge(SOC) Function from MAX17055 Fuel Gauge.
+ * @brief       Get at rate Average State Of Charge(SOC) Function from MAX17055 Fuel Gauge.
  * @par          Details
- *               This function sends a request to access the avSOC register of the MAX17055.
+ *               This function sends a request to access the atAvSOC register of the MAX17055.
  *               The AvSOC registers hold the calculated available capacity and percentage of the
  *               battery based on all inputs from the ModelGauge m5 algorithm including empty 
  *               compensation. These registers provide unfiltered results. Jumps in the reported 
  *               values can be caused by abrupt changes in load current or temperature.
  *
- * @retval       avSOC_data - Average SOC data from the AVSOC register in % value. 
+ * @retval       atAvSOC_data - Average SOC data from the atAVSOC register in % value. 
  * @retval       non-0 negative values check for errors      
  */
-int MAX17055::get_avSOC()
+int MAX17055::get_atAvSOC()
 {
-
     int ret;
-    uint16_t avSOC_data;
+    uint16_t atAvSOC_data;
 
-    ret = readReg(AVSOC_REG, avSOC_data);
+    ret = readReg(AVSOC_REG, atAvSOC_data);
     if (ret < F_SUCCESS_0)
         return ret; //Check errors if data is not correct
 
-    avSOC_data = avSOC_data >> 8; /* avSOC LSB: 1/256 % */
+    atAvSOC_data = atAvSOC_data >> 8; /* avSOC LSB: 1/256 % */
 
-    return avSOC_data;
+    return atAvSOC_data;
 }
 
 /**
@@ -544,19 +510,20 @@
  * @retval      tte_data - Time to Empty data from the TTE register in seconds.
  * @retval      non-0 negative values check for errors
  */
-int MAX17055::get_TTE()
+float MAX17055::get_TTE()
 {
 
     int ret;
     uint16_t tte_data;
+    float f_tte_data;
 
     ret = readReg(TTE_REG, tte_data);
     if (ret < F_SUCCESS_0)
         return ret;
     else
-        tte_data = (tte_data * 45) >> 3; /* TTE LSB: 5.625 sec */
+        f_tte_data = ((float)tte_data * 5.625); /* TTE LSB: 5.625 sec */
 
-    return tte_data;
+    return f_tte_data;
 }
 
 /**
@@ -568,19 +535,20 @@
  * @retval      atTTE_data - Time to Empty data from the atTTE register in seconds. 
  * @retval      non-0 negative values check for errors
  */
-int MAX17055::get_atTTE()
+float MAX17055::get_atTTE()
 {
 
     int ret;
     uint16_t atTTE_data;
+    float f_atTTE_data;
 
     ret = readReg(ATTTE_REG, atTTE_data);
     if (ret < F_SUCCESS_0)
         return ret; //Check for errors
     else
-       atTTE_data = (atTTE_data * 45) >> 3; /* TTE LSB: 5.625 sec */
+        f_atTTE_data = ((float)atTTE_data * 5.625); /* TTE LSB: 5.625 sec */
 
-    return atTTE_data;
+    return  f_atTTE_data;
 }
 
 /**
@@ -597,19 +565,20 @@
  * @retval     ttf_data - Time to Full data from the TTF register in seconds. 
  * @retval     non-0 negative values check for errors
  */
-int MAX17055::get_TTF()
+float MAX17055::get_TTF()
 {
 
     int ret;
     uint16_t ttf_data;
+    float f_ttf_data;
 
     ret = readReg(TTF_REG, ttf_data);
     if (ret < F_SUCCESS_0)
         return ret;
     else
-        ttf_data = (ttf_data * 45) >> 3; /* TTF LSB: 5.625 sec */
+        f_ttf_data = ((float)ttf_data * 5.625); /* TTE LSB: 5.625 sec */
 
-    return ttf_data;
+    return  f_ttf_data;
 }
 
 /**
@@ -639,9 +608,9 @@
  * @brief       Get current Function for MAX17055 Fuel Gauge.
  * @par         Details
  *              This function sends a request to access the CURRENT register
- *              of the MAX17055 to read the current redings. 
+ *              of the MAX17055 to read the current readings. 
  *
- * @param[in]   des_data - Plataform_data struct with information about the deisgn.
+ * @param[in]   des_data - Plataform_data struct with information about the design.
  * 
  * @retval      curr_data  - current data from the CURRENT register in uAmps. 
  * @retval      non-0 negative values check for errors.
@@ -665,9 +634,9 @@
  * @brief       Get average current Function for MAX17055 Fuel Gauge.
  * @par         Details
  *              This function sends a request to access the aveCURRENT register
- *              of the MAX17055 to read the average current redings. 
+ *              of the MAX17055 to read the average current readings. 
  *
- * @param[in]   des_data - Plataform_data struct with information about the deisgn.
+ * @param[in]   des_data - Plataform_data struct with information about the design.
  * 
  * @retval      aveCurr_data - current data from the AVGCURRENT register in uAmps. 
  * @retval      non-0 negative values check for errors.
@@ -689,7 +658,7 @@
 }
 
 /**
- * @brief        lsb_to_uvolts Converssion Function 
+ * @brief        lsb_to_uvolts Conversion Function 
  * @par          Details
  *               This function takes the lsb value of the register and convert it
  *               to uvolts
@@ -705,7 +674,7 @@
 }
 
 /**
- * @brief        raw_current_to_uamp Converssion Function 
+ * @brief        raw_current_to_uamp Conversion Function 
  * @par          Details
  *               This function takes the raw current value of the register and 
  *               converts it to uamps
@@ -720,7 +689,7 @@
     if (res & 0x8000) {
         res |= 0xFFFF0000;
     } else {
-        res *= 1562500 /(rsense_value * 1000); //Change to interact with the rsense implementen in the design
+        res *= 1562500 /(rsense_value * 1000); //Change to interact with the rsense implemented in the design
     }
     return res;
 }
@@ -750,7 +719,7 @@
         value = data[3];
     }
 
-    ///STEP 2.Save the capacity parametes for the specific battery.
+    ///STEP 2. Save the capacity parameters for the specific battery.
     ret = readReg(RCOMP0_REG, data[0]);
     if (ret < F_SUCCESS_0)
         return ret;
@@ -780,7 +749,7 @@
 }
 
 /**
- * @brief        Resotore Parameters Function for battery Fuel Gauge model.
+ * @brief        Restore Parameters Function for battery Fuel Gauge model.
  * @par          Details
  *               If power is lost, then the capacity information 
  *               can be easily restored with this function. 
@@ -793,7 +762,7 @@
 {
     int ret;
     uint16_t temp_data, fullcapnom_data, mixCap_calc, dQacc_calc;
-    uint16_t dPacc_value = 0x0C80;//Why this vcalue?
+    uint16_t dPacc_value = 0x0C80;//Set it to 200%
 
     ///STEP 1. Restoring capacity parameters 
     write_and_verify_reg(RCOMP0_REG, FG_params.rcomp0);
@@ -807,7 +776,7 @@
     if (ret < F_SUCCESS_0)
         return ret;
 
-    ret = readReg(MIXSOC_REG, temp_data); //check if Error in sofware guide register incorrect
+    ret = readReg(MIXSOC_REG, temp_data); //check if Error in software guide register incorrect
     if (ret < F_SUCCESS_0)
         return ret;
     
@@ -834,7 +803,7 @@
 /**
  * @brief        Function to Save Average Current to At Rate register.
  * @par          Details
- *               For User frendliness display of TTE, avSOC, avCAP
+ *               For User friendliness display of atTTE, atAvSOC, atAvCAP
  *               write the average current to At Rate registers every 10sec 
  *               when the battery is in use.
  *               NOTE: do not use this function when the Battery is charging. 
@@ -848,12 +817,14 @@
     uint16_t avCurr_data;
 
     ret = readReg(AVGCURRENT_REG, avCurr_data);
-    if (ret < F_SUCCESS_0)
-        return ret;
+    if (ret < F_SUCCESS_0){
+        return ret = -3;
+    }      
 
     //Write avCurrent to atRate Register
-    ret = write_and_verify_reg(ATRATE_REG, avCurr_data);
-    if (ret < F_SUCCESS_0)
+    ret = writeReg(ATRATE_REG, avCurr_data);
+    if (ret < F_SUCCESS_0){
         return ret;
-    return ret;
+    }
+    return F_SUCCESS_0;
 }
\ No newline at end of file
diff -r bdbd3104995b -r 519a18fc3b28 max17055.h
--- a/max17055.h	Tue Feb 27 15:53:04 2018 +0000
+++ b/max17055.h	Thu Apr 19 22:34:45 2018 +0000
@@ -3,13 +3,14 @@
 *
 * @author Felipe Neira - Maxim Integrated - TTS
 *
-* @version 1.4
+* @version 1.5
 *
-* Started: 6FEB18
+* Started: 13DEC17
 *
-* Updated: 
-* Removed BATTERY CLASS.
-* Add Doxygen documentations. 
+* Updated: 16APR18.
+* Remove unnecessary code.  
+* Check spelling
+* Error check
 * 
 *
 /*******************************************************************************
@@ -57,9 +58,9 @@
 
 /// Model loading options
 #define MODEL_LOADING_OPTION1           1 //EZ Config
-#define MODEL_LOADING_OPTION2           2 //Not implemented in this version of the library
-#define MODEL_LOADING_OPTION3           3 //Not implemented in this version of the library
-
+// #define MODEL_LOADING_OPTION2           2 //Not implemented in this version of the library
+// #define MODEL_LOADING_OPTION3           3 //Not implemented in this version of the library
+//Remove this and leave it 
 
 /**
  * @brief MBED Library for the MAX17055\n
@@ -119,8 +120,6 @@
 
 public:
 
-    ///7-bit slave address
-    static const uint8_t I2C_ADRS   = 0x36;  //Slave address 0x6C or 0x36 for 7 MSbit Addres
     ///8-bit write address
     static const uint8_t I2C_W_ADRS = 0x6C;
     ///8-bit read address
@@ -135,7 +134,7 @@
         VALRTTH_REG                = 0x01, /*!< 0x01 */
         TALRTTH_REG                = 0x02, /*!< 0x02 */ 
         SALRTTH_REG                = 0x03, /*!< 0x03 */ 
-        ATRATE_REG                 = 0x04, /*!< 0x04 write negative 2s comp of a 16-bit theorithical load */
+        ATRATE_REG                 = 0x04, /*!< 0x04 write negative 2s comp of a 16-bit theoretical load */
         REPCAP_REG                 = 0x05, /*!< 0x05 */ 
         REPSOC_REG                 = 0x06, /*!< 0x06 */
         TEMP_REG                   = 0x08, /*!< 0x08 */
@@ -187,19 +186,21 @@
 
         IALRTTH_REG                = 0xB4, /*!< 0x39 */
         CURVE_REG                  = 0xB9, /*!< 0x39 */
-        HIBCFG_REG                 = 0xBA, /*!< 0x39 */
+        HIBCFG_REG                 = 0xBA, /*!< 0x39 default = 0x870C (0x890C)*/
         CONFIG2_REG                = 0xBB, /*!< 0xBB default = 0x3658 */
 
-        MODELCFG_REG               = 0xDB, /*!< 0x39 */
-        ATTTE_REG                  = 0xDD, /*!< 0x39 */
+        MODELCFG_REG               = 0xDB, /*!< 0xDB */
+        ATTTE_REG                  = 0xDD, /*!< 0xDD */
+        ATAVSOC_REG                = 0xDE, /*!< 0xDE */
+        ATAVCAP_REG                = 0xDF, /*!< 0xDF */
 
         OCV_REG                    = 0xFB, /*!< 0x39 */
         VFSOC_REG                  = 0xFF  /*!< 0x39 */
     };
       
     /**
-     * @brief      Saved Plataform Data for Fuel Gauge Model
-     * @details    Struct with fuel Gauge Plataform Data for Fuel Gauge Model based on the final design.
+     * @brief      Saved Platform Data for Fuel Gauge Model
+     * @details    Struct with fuel Gauge Platform Data for Fuel Gauge Model based on the final design.
      */
     struct platform_data{  //to clarify if Part of the class
         uint16_t designcap;/*!< struct value 1 */
@@ -286,7 +287,7 @@
     int clear_POR_bit();
 
     /**
-     * @brief        Write and Verify a MAX17055 register
+     * @brief       Write and Verify a MAX17055 register
      */
     int write_and_verify_reg(Registers_e reg_addr, uint16_t reg_data);
 
@@ -296,17 +297,17 @@
     int init(platform_data des_data);
 
     /**
-     * @brief        Get Temperature Function from the MAX17055 TEMP register.
+     * @brief       Get Temperature Function from the MAX17055 TEMP register.
      */
     int get_temperature();
 
     /**
-     * @brief        Forced Exit Hibernate Mode Function for MAX17055
+     * @brief       Forced Exit Hibernate Mode Function for MAX17055
      */
-    uint16_t forcedExitHyberMode();
+    uint16_t forcedExitHiberMode();// Hibernate spelling 
     
     /**
-     * @brief       EZ Confing Initialization function
+     * @brief       EZ Config Initialization function
      */
     uint16_t EZconfig_init(platform_data des_data);
       
@@ -316,19 +317,19 @@
     int get_SOC();
 
     /**
-     * @brief       Get Average State Of Charge(SOC) Function from MAX17055 Fuel Gauge.
+     * @brief       Get at rate Average State Of Charge(SOC) Function from MAX17055 Fuel Gauge.
      */
-    int get_avSOC();
+    int get_atAvSOC();
 
     /**
      * @brief       Get the Time to Empty(TTE) Function form MAX17055 Fuel Gauge.
      */   
-    int get_TTE();
+    float get_TTE();
 
     /**
      * @brief       Get the at Time to Empty(atTTE) value Function for MAX17055 Fuel Gauge.
      */   
-    int get_atTTE();
+    float get_atTTE();
 
     /**
      * @brief        Get mix State Of Charge(SOC) Function for MAX17055 Fuel Gauge.
@@ -338,7 +339,7 @@
     /**
      * @brief      Get the Time to Full(TTE) values Function for MAX17055 Fuel Gauge.
      */
-    int get_TTF();
+    float get_TTF();
     
     /**
      * @brief       Get voltage of the cell Function for MAX17055 Fuel Gauge.
@@ -356,12 +357,12 @@
     int get_AvgCurrent(platform_data des_data);
     
     /**
-     * @brief        lsb_to_uvolts Converssion Function         
+     * @brief        lsb_to_uvolts Conversion Function         
      */
     int lsb_to_uvolts(uint16_t lsb);
     
     /**
-     * @brief        raw_current_to_uamp Converssion Function         
+     * @brief        raw_current_to_uamp Conversion Function         
      */
     int raw_current_to_uamps(uint32_t curr, int rsense_value);
 
@@ -371,7 +372,7 @@
     int save_Params(saved_FG_params_t FG_params);
 
     /**
-     * @brief        Resotore Parameters Function for battery Fuel Gauge model.
+     * @brief        Restore Parameters Function for battery Fuel Gauge model.
      */
     int restore_Params(saved_FG_params_t FG_params);