foxBMS  1.1.0
The foxBMS Battery Management System API Documentation
fram_cfg.h File Reference

Headers for the configuration for the FRAM module. More...

#include "general.h"
#include "battery_system_cfg.h"
Include dependency graph for fram_cfg.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  FRAM_BASE_HEADER_s
 
struct  FRAM_VERSION
 Stores the version of the memory layout of the FRAM. More...
 
struct  FRAM_SBC_INIT
 
struct  FRAM_SOC
 
struct  FRAM_SOE
 
struct  FRAM_DEEP_DISCHARGE_FLAG
 

Macros

#define FRAM_PROJECT_ID_FOXBMS_BASELINE   ((FRAM_PROJECT_ID)0u)
 

Typedefs

typedef uint16_t FRAM_PROJECT_ID
 IDs for projects that use a memory layout. More...
 
typedef enum FRAM_BLOCK_ID FRAM_BLOCK_ID_e
 
typedef struct FRAM_VERSION FRAM_VERSION_s
 Stores the version of the memory layout of the FRAM. More...
 
typedef struct FRAM_SBC_INIT FRAM_SBC_INIT_s
 
typedef struct FRAM_SOC FRAM_SOC_s
 
typedef struct FRAM_SOE FRAM_SOE_s
 
typedef struct FRAM_DEEP_DISCHARGE_FLAG FRAM_DEEP_DISCHARGE_FLAG_s
 

Enumerations

enum  FRAM_BLOCK_ID {
  FRAM_BLOCK_ID_VERSION , FRAM_BLOCK_ID_SOC , FRAM_BLOCK_ID_SBC_INIT_STATE , FRAM_BLOCK_ID_DEEP_DISCHARGE_FLAG ,
  FRAM_BLOCK_ID_SOE , FRAM_BLOCK_MAX
}
 

Variables

FRAM_BASE_HEADER_s fram_base_header [FRAM_BLOCK_MAX]
 
FRAM_VERSION_s fram_version
 
FRAM_SOC_s fram_soc
 
FRAM_SOE_s fram_soe
 
FRAM_SBC_INIT_s fram_sbcInit
 
FRAM_DEEP_DISCHARGE_FLAG_s fram_deepDischargeFlags
 

Detailed Description

Headers for the configuration for the FRAM module.

SPDX-License-Identifier: BSD-3-Clause

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

We kindly request you to use one or more of the following phrases to refer to foxBMS in your hardware, software, documentation or advertising materials:

  • ″This product uses parts of foxBMS®″
  • ″This product includes parts of foxBMS®″
  • ″This product is derived from foxBMS®″
Author
foxBMS Team
Date
2020-03-05 (date of creation)
Updated
2020-03-05 (date of last update)
Prefix
FRAM

Definition in file fram_cfg.h.

Macro Definition Documentation

◆ FRAM_PROJECT_ID_FOXBMS_BASELINE

#define FRAM_PROJECT_ID_FOXBMS_BASELINE   ((FRAM_PROJECT_ID)0u)

this is the standard main development branch

Definition at line 77 of file fram_cfg.h.

Typedef Documentation

◆ FRAM_BLOCK_ID_e

fram block identification numbers

◆ FRAM_DEEP_DISCHARGE_FLAG_s

flag to indicate if a deep-discharge in a string has been detected

◆ FRAM_PROJECT_ID

typedef uint16_t FRAM_PROJECT_ID

IDs for projects that use a memory layout.

This enum can be use to differentiate between projects. While an older version of the same project should be upgradeable, the entry of another project should be just discarded if a conflict occurs.

In order for the ID to stay the same it is important that the defined macros are not changed and that each and every macro has a different value.

Definition at line 74 of file fram_cfg.h.

◆ FRAM_SBC_INIT_s

struct for the FRAM entry of the SBC driver

◆ FRAM_SOC_s

typedef struct FRAM_SOC FRAM_SOC_s

state of charge (SOC). Since SOC is voltage dependent, three different values are used, min, max and average. SOC defined as a float number between 0.0f and 100.0f (0% and 100%)

◆ FRAM_SOE_s

typedef struct FRAM_SOE FRAM_SOE_s

state of energy (SOE). Since SOE is voltage dependent, three different values are used, min, max and average. SOE defined as a float number between 0.0f and 100.0f (0% and 100%)

◆ FRAM_VERSION_s

typedef struct FRAM_VERSION FRAM_VERSION_s

Stores the version of the memory layout of the FRAM.

This struct stores with which memory-layout version the FRAM has been written. This allows the BMS to recognize an incompatible memory layout.

Enumeration Type Documentation

◆ FRAM_BLOCK_ID

fram block identification numbers

Enumerator
FRAM_BLOCK_ID_VERSION 
FRAM_BLOCK_ID_SOC 
FRAM_BLOCK_ID_SBC_INIT_STATE 
FRAM_BLOCK_ID_DEEP_DISCHARGE_FLAG 
FRAM_BLOCK_ID_SOE 
FRAM_BLOCK_MAX 

DO NOT CHANGE, MUST BE THE LAST ENTRY

Definition at line 87 of file fram_cfg.h.

Variable Documentation

◆ fram_base_header

FRAM_BASE_HEADER_s fram_base_header[FRAM_BLOCK_MAX]
extern

The zeros are the uninitialized addresses of the variables in the FRAM. They are initialized by the call of FRAM_Initialize()

Definition at line 83 of file fram_cfg.c.

◆ fram_deepDischargeFlags

FRAM_DEEP_DISCHARGE_FLAG_s fram_deepDischargeFlags
extern

Variables to be stored in FRAM

Variables to be stored in FRAM Must also be declared as external variables in fram_cfg.h

Definition at line 76 of file fram_cfg.c.

◆ fram_sbcInit

FRAM_SBC_INIT_s fram_sbcInit
extern

Variables to be stored in FRAM

Variables to be stored in FRAM Must also be declared as external variables in fram_cfg.h

Definition at line 72 of file fram_cfg.c.

◆ fram_soc

FRAM_SOC_s fram_soc
extern

Variables to be stored in FRAM

Variables to be stored in FRAM Must also be declared as external variables in fram_cfg.h

Definition at line 70 of file fram_cfg.c.

◆ fram_soe

FRAM_SOE_s fram_soe
extern

Variables to be stored in FRAM

Variables to be stored in FRAM Must also be declared as external variables in fram_cfg.h

Definition at line 71 of file fram_cfg.c.

◆ fram_version

FRAM_VERSION_s fram_version
extern

Variables to be stored in FRAM

Variables to be stored in FRAM Must also be declared as external variables in fram_cfg.h

Definition at line 69 of file fram_cfg.c.