Files
jiacun-20s-200A/MOUDLE/AFE_SH3673520.h
T
2026-08-25 17:30:40 +08:00

247 lines
5.6 KiB
C

/**
******************************************************************************
* @file global.h
* @author Jerry Cai
* @version V2.1
* @date 19-April-2022
* @brief This file contains all the functions prototypes for the GPIO
* firmware library.
******************************************************************************
* @attention
*
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __AFE_SH3673520_H
#define __AFE_SH3673520_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
//#define CALICUR 1000
//#define CALICUR 30700 //16个4m欧电阻并联
//#define CALICUR 28000 //16个5m欧电阻并联
#define REG_ADDR_SCONF1 0x40
#define REG_ADDR_SCONF2 0x41
#define REG_ADDR_SCONF3 0x42
#define REG_ADDR_SCONF4 0x43
#define REG_ADDR_SCONF5 0x44
#define REG_ADDR_SCONF6 0x45
#define REG_ADDR_SCONF7 0x46
#define REG_ADDR_OWV_ALARMH 0x47
#define REG_ADDR_ALARML 0x48
#define REG_ADDR_OVT_OVH 0x49
#define REG_ADDR_OVL 0x4A
#define REG_ADDR_UVT_UVL 0x4B
#define REG_ADDR_UVL 0x4C
#define REG_ADDR_OCD1V_OCD1T 0x4D
#define REG_ADDR_OCD2V_OCD2T 0x4E
#define REG_ADDR_SCV_SCT 0x4F
#define REG_ADDR_OCCV_OCCT 0x50
#define REG_ADDR_OTC 0x51
#define REG_ADDR_OTD 0x52
#define REG_ADDR_UTC 0x53
#define REG_ADDR_UTD 0x54
#define REG_ADDR_BALANCEH 0x55
#define REG_ADDR_BALANCEM 0x56
#define REG_ADDR_BALANCEL 0x57
#define REG_ADDR_FLAG1 0x58
#define REG_ADDR_FLAG2 0x59
#define REG_ADDR_FLAG3 0x5A
#define REG_ADDR_BSTATUS1 0x5B
#define REG_ADDR_BSTATUS2 0x5C
#define REG_ADDR_TEMP1H 0x5D
#define REG_ADDR_TEMP1L 0x5E
#define REG_ADDR_TEMP2H 0x5F
#define REG_ADDR_TEMP2L 0x60
#define REG_ADDR_TEMP3H 0x61
#define REG_ADDR_TEMP3L 0x62
#define REG_ADDR_TEMP4H 0x63
#define REG_ADDR_TEMP4L 0x64
#define REG_ADDR_TEMPIH 0x65
#define REG_ADDR_TEMPIL 0x66
#define REG_ADDR_CURH 0x67
#define REG_ADDR_CURL 0x68
#define REG_ADDR_CELL1H 0x69
#define REG_ADDR_CELL1L 0x6A
#define REG_ADDR_CELL2H 0x6B
#define REG_ADDR_CELL2L 0x6C
#define REG_ADDR_CELL3H 0x6D
#define REG_ADDR_CELL3L 0x6E
#define REG_ADDR_CELL4H 0x6F
#define REG_ADDR_CELL4L 0x70
#define REG_ADDR_CELL5H 0x71
#define REG_ADDR_CELL5L 0x72
#define REG_ADDR_CELL6H 0x73
#define REG_ADDR_CELL6L 0x74
#define REG_ADDR_CELL7H 0x75
#define REG_ADDR_CELL7L 0x76
#define REG_ADDR_CELL8H 0x77
#define REG_ADDR_CELL8L 0x78
#define REG_ADDR_CELL9H 0x79
#define REG_ADDR_CELL9L 0x7A
#define REG_ADDR_CELL10H 0X7B
#define REG_ADDR_CELL10L 0X7C
#define REG_ADDR_CELL11H 0X7D
#define REG_ADDR_CELL11L 0X7E
#define REG_ADDR_CELL12H 0X7F
#define REG_ADDR_CELL12L 0X80
#define REG_ADDR_CELL13H 0X81
#define REG_ADDR_CELL13L 0X82
#define REG_ADDR_CELL14H 0X83
#define REG_ADDR_CELL14L 0X84
#define REG_ADDR_CELL15H 0X85
#define REG_ADDR_CELL15L 0X86
#define REG_ADDR_CELL16H 0X87
#define REG_ADDR_CELL16L 0X88
#define REG_ADDR_CELL17H 0X89
#define REG_ADDR_CELL17L 0X8A
#define REG_ADDR_CELL18H 0X8B
#define REG_ADDR_CELL18L 0X8C
#define REG_ADDR_CELL19H 0X8D
#define REG_ADDR_CELL19L 0X8E
#define REG_ADDR_CELL20H 0X8F
#define REG_ADDR_CELL20L 0X90
#define REG_ADDR_CADCDH 0x91
#define REG_ADDR_CADCDL 0x92
#define REG_ADDR_VTOPH 0x93
#define REG_ADDR_VTOPL 0x94
#define REG_ADDR_VCHGRH 0x95
#define REG_ADDR_VCHGRL 0x96
#define REG_ADDR_OWDH 0x97
#define REG_ADDR_OWDM 0x98
#define REG_ADDR_OWDL 0x99
//AFE RAM Register
typedef struct
{
uint8_t sconf1;
uint8_t sconf2;
uint8_t sconf3;
uint8_t sconf4;
uint8_t sconf5;
uint8_t sconf6;
uint8_t sconf7;
uint8_t owv_alarmh;
uint8_t alarml;
uint8_t ovt_ovh;
uint8_t ovl;
uint8_t uvt_uvh;
uint8_t uvl;
uint8_t ocd1v_ocd1t;
uint8_t ocd2v_ocd2t;
uint8_t scv_sct;
uint8_t occv_occt;
uint8_t otc;
uint8_t otd;
uint8_t utc;
uint8_t utd;
uint8_t balanceh;
uint8_t balancem;
uint8_t balancel;
uint8_t flag1;
uint8_t flag2;
uint8_t flag3;
uint8_t bstatus1;
uint8_t bstatus2;
uint8_t temp1h;
uint8_t temp1l;
uint8_t temp2h;
uint8_t temp2l;
uint8_t temp3h;
uint8_t temp3l;
uint8_t temp4h;
uint8_t temp4l;
uint8_t tempih;
uint8_t tempil;
uint8_t curh;
uint8_t curl;
uint8_t cell1h;
uint8_t cell1l;
uint8_t cell2h;
uint8_t cell2l;
uint8_t cell3h;
uint8_t cell3l;
uint8_t cell4h;
uint8_t cell4l;
uint8_t cell5h;
uint8_t cell5l;
uint8_t cell6h;
uint8_t cell6l;
uint8_t cell7h;
uint8_t cell7l;
uint8_t cell8h;
uint8_t cell8l;
uint8_t cell9h;
uint8_t cell9l;
uint8_t cell10h;
uint8_t cell10l;
uint8_t cell11h;
uint8_t cell11l;
uint8_t cell12h;
uint8_t cell12l;
uint8_t cell13h;
uint8_t cell13l;
uint8_t cell14h;
uint8_t cell14l;
uint8_t cell15h;
uint8_t cell15l;
uint8_t cell16h;
uint8_t cell16l;
uint8_t cell17h;
uint8_t cell17l;
uint8_t cell18h;
uint8_t cell18l;
uint8_t cell19h;
uint8_t cell19l;
uint8_t cell20h;
uint8_t cell20l;
uint8_t cadcdh;
uint8_t cadcdl;
uint8_t vtoph;
uint8_t vtopl;
uint8_t vchgrh;
uint8_t vchgrl;
uint8_t owdh;
uint8_t owdm;
uint8_t owdl;
} AFE_RAM;
//AFE FLG Register
typedef struct
{
uint16_t temp1;
uint16_t temp2;
uint16_t temp3;
uint16_t temp4;
} AFE_FLG;
extern AFE_RAM afeRam;
extern AFE_FLG afeFlg;
extern void AFE_VoltageProcess(void);
extern void AFE_CurrentProcess(void);
extern void AFE_TemperaProcess(void);
extern void AFE_ProtectProcess(void);
extern uint8_t MEMORY_UpdateAFE(void);
extern void InitGasGauge(void);
#ifdef __cplusplus
}
#endif
#endif