SLAAEE3A July   2023  – June 2024 MSPM0L1306

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Gauge Hardware Introduction
  6. 3Gauge Software Introduction
    1. 3.1 Gauge Algorithm Introduction
    2. 3.2 Gauge GUI Introduction
  7. 4MSPM0 Gauge Evaluation Steps
    1. 4.1 Step1: Hardware Preparation
    2. 4.2 Step2: Get the Battery Model
    3. 4.3 Step3: Input the Customized Configuration
    4. 4.4 Step4: Evaluation
      1. 4.4.1 Detection Data Input Mode
      2. 4.4.2 Flash Data Input Mode
      3. 4.4.3 Communication Data Input Mode
  8. 5MSPM0 Gauge Solution Test Results
    1. 5.1 Performance Test
    2. 5.2 Current Consumption Test
  9. 6Revision History

Step2: Get the Battery Model

Get the battery model from the pulse discharge test case. It is always good to get the battery model for your project. However, for MSPM0 Gauge L1 with low discharge current in real application, you do not really need to do the test. Reuse the default model in the code or get a model related to your battery chemistry from the Web. For higher-level MSPM0 Gauge solution, as the accuracy lies on the battery model, obtain the dedicated battery model.

Use any machine that can charge and discharge the battery for the test machine, and record the tested data. The paired test machine with the supplied GUI is Keithley 2602A source meter, which is controlled through a USB to rs232 wire, paired with NI_VISA.

To get a more accurate model, discharge the battery with low current, like 0.1C for 20 minutes. The rest time after each pulse is about 1–2 hours, then you can take the Vcell as OCV. Finally, with this setting about 30 points are obtained.

Table 4-1 shows a suggested test pattern.

Table 4-1 Battery Test Pattern
ParameterValueComment
Start voltage (OCV)4.3~4.4 VMake sure the start voltage is no lower than the application max charge voltage
End voltage (OCV)2.5~3.0 VMake sure the rest voltage (OCV) is no higher than the application min discharge voltage
Discharge current0.05C ~ 0.1CLow current means more point
Discharge time20 minutesLow discharge time means more point
Rest time1-2 hoursLonger is better

Figure 4-1 shows a battery model example test case. In this example, the battery is fully charged (4350 mV) and rests for 1 hour, with the voltage drops to 4322 mV. Then, it does a pulse discharge and rests to get the OCV under different SoC. The test is terminated at 2450 mV. After 1-hour rest, the voltage increases to 2864 mV. So, the OCV range of the SoC-OCV table is from 2864mV to 4322 mV. The start voltage is 4322 mV and the end voltage is 2864 mV under the difference between the OCV and battery voltage.

MSPM0L1306 Pulse Discharge Test CaseFigure 4-1 Pulse Discharge Test Case

The suggested setup is shown as below. MCU COM tool is used to get the battery run data. SM COM tool is used to control the source meter to generate pulse battery charge and collect the voltage and current data to generate the battery parameters later.

Pay attention to connect source meter in four wire mode, which can reduce the voltage detection error caused from line resistance. Test the battery under real application board, because the application board influences the battery parameters as well, especially the battery resistor.

MSPM0L1306 Hardware Structure to Get Battery ModelFigure 4-2 Hardware Structure to Get Battery Model

Remember to change the parameters in the Python source code, like the discharge current, end voltage and so on, according to your application. After you get battery running data, you can then use “Battery circuit parameter file generation” to get the battery circuit file in Excel and text, shown in Figure 4-3. The input file can be SMData and MCUData.

MSPM0L1306 Battery Circuit Table GenerationFigure 4-3 Battery Circuit Table Generation

Copy the generated table in the text into Gauge_UserConfig.c, and the table length into Gauge_UserConfig.h. Then you can finish the battery circuit table input. The cap factor equals to dSoc(%)/dOcv(mV)*Qmax(As) or dSoc(%)/dOcv(V)*3.6*Qmax(mAh). For other parameters generation method, see the Python source code.

MSPM0L1306 Battery Circuit Table InputFigure 4-4 Battery Circuit Table Input

Attention: For MSPM0 Gauge L1, it calculates a static SoC, which does not take the residual SoC or battery aging into consideration. That means you need to add some buffer by setting the minimum OCV of SoC-OCV table higher than application min discharge voltage. Table 4-2 shows an example for the suggested minimum OCV for different discharge conditions.

Table 4-2 MSPM0 Gauge L1 SOC-OCV Range
Current < 0.01CCurrent < 0.1CCurrent < 0.5C
Table max OCV4.2 V4.2 V4.2 V
Table min OCV3 V3.2 V3.4 V
Application max charge voltage4.2 V4.2 V4.2 V
Application min discharge voltage2.8 V2.8 V2.8 V

For high-level MSPM0 Gauge solution, as it takes the residual SoC or battery aging into consideration, make the circuit table larger than the application voltage range to reserve some buffer. Table 4-3 shows an example for different discharge conditions.

Table 4-3 MSPM0 Gauge L2 SOC-OCV Range
Current < 0.01CCurrent < 0.1CCurrent < 0.5C
Table max OCV4.3 V4.3 V4.3 V
Table min OCV2.6 V2.6 V2.6 V
Application max charge voltage4.2 V4.2 V4.2 V
Application min discharge voltage2.8 V2.8 V2.8 V