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

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

#include "battery_system_cfg.h"
#include "fstd_types.h"
#include <math.h>
#include <stdint.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_s
 Stores the version of the memory layout of the FRAM. More...
 
struct  FRAM_SBC_INIT_s
 
struct  FRAM_SOC_s
 
struct  FRAM_SOE_s
 
struct  FRAM_DEEP_DISCHARGE_FLAG_s
 
struct  FRAM_INSULATION_FLAG_s
 
struct  FRAM_SYS_MON_RECORD_s
 struct that stores for each task the last violation of timing More...
 

Macros

#define FRAM_CRC_HEADER_SIZE   (sizeof(uint64_t))
 
#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...
 

Enumerations

enum  FRAM_RETURN_TYPE_e { FRAM_ACCESS_OK , FRAM_ACCESS_SPI_BUSY , FRAM_ACCESS_CRC_BUSY , FRAM_ACCESS_CRC_ERROR }
 
enum  FRAM_BLOCK_ID_e {
  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_ID_SYS_MON_RECORD , FRAM_BLOCK_ID_INSULATION_FLAG , 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
 
FRAM_SYS_MON_RECORD_s fram_sys_mon_record
 
FRAM_INSULATION_FLAG_s fram_insulationFlags
 

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
2023-10-12 (date of last update)
Version
v1.6.0
Prefix
FRAM

Definition in file fram_cfg.h.

Macro Definition Documentation

◆ FRAM_CRC_HEADER_SIZE

#define FRAM_CRC_HEADER_SIZE   (sizeof(uint64_t))

Definition at line 71 of file fram_cfg.h.

◆ 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 86 of file fram_cfg.h.

Typedef Documentation

◆ 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 83 of file fram_cfg.h.

Enumeration Type Documentation

◆ FRAM_BLOCK_ID_e

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_ID_SYS_MON_RECORD 
FRAM_BLOCK_ID_INSULATION_FLAG 
FRAM_BLOCK_MAX 

DO NOT CHANGE, MUST BE THE LAST ENTRY

Definition at line 104 of file fram_cfg.h.

◆ FRAM_RETURN_TYPE_e

fram block identification numbers

Enumerator
FRAM_ACCESS_OK 
FRAM_ACCESS_SPI_BUSY 
FRAM_ACCESS_CRC_BUSY 
FRAM_ACCESS_CRC_ERROR 

Definition at line 89 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 86 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 77 of file fram_cfg.c.

◆ fram_insulationFlags

FRAM_INSULATION_FLAG_s fram_insulationFlags
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 79 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 73 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 71 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 72 of file fram_cfg.c.

◆ fram_sys_mon_record

FRAM_SYS_MON_RECORD_s fram_sys_mon_record
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 78 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 70 of file fram_cfg.c.