156 lines
4.0 KiB
C
156 lines
4.0 KiB
C
|
#ifndef __AFE_H
|
|||
|
#define __AFE_H
|
|||
|
|
|||
|
#define AFE_ID (0x1B<<1)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//Define AFE register addr
|
|||
|
#define AFE_FLAG1 0x00
|
|||
|
#define AFE_FLAG2 0x01
|
|||
|
#define AFE_BSTATUS 0x02
|
|||
|
#define AFE_INT_EN 0x03
|
|||
|
#define AFE_SCONF1 0x04
|
|||
|
#define AFE_SCONF2 0x05
|
|||
|
#define AFE_SCONF3 0x06
|
|||
|
#define AFE_SCONF4 0x07
|
|||
|
#define AFE_SCONF5 0x08
|
|||
|
#define AFE_SCONF6 0x09
|
|||
|
#define AFE_SCONF7 0x0A
|
|||
|
#define AFE_SCONF8 0x0B
|
|||
|
#define AFE_SCONF9 0x0C
|
|||
|
#define AFE_SCONF10 0x0D
|
|||
|
|
|||
|
#define AFE_CELL1H 0x0E
|
|||
|
#define AFE_CELL1L 0x0F
|
|||
|
#define AFE_CELL2H 0x10
|
|||
|
#define AFE_CELL2L 0x11
|
|||
|
#define AFE_CELL3H 0x12
|
|||
|
#define AFE_CELL3L 0x13
|
|||
|
#define AFE_CELL4H 0x14
|
|||
|
#define AFE_CELL4L 0x15
|
|||
|
#define AFE_CELL5H 0x16
|
|||
|
#define AFE_CELL5L 0x17
|
|||
|
#define AFE_CELL6H 0x18
|
|||
|
#define AFE_CELL6L 0x19
|
|||
|
#define AFE_CELL7H 0x1A
|
|||
|
#define AFE_CELL7L 0x1B
|
|||
|
#define AFE_CELL8H 0x1C
|
|||
|
#define AFE_CELL8L 0x1D
|
|||
|
#define AFE_CELL9H 0x1E
|
|||
|
#define AFE_CELL9L 0x1F
|
|||
|
#define AFE_CELL10H 0x20
|
|||
|
#define AFE_CELL10L 0x21
|
|||
|
#define AFE_TS1H 0x22
|
|||
|
#define AFE_TS1L 0x23
|
|||
|
#define AFE_TS2H 0x24
|
|||
|
#define AFE_TS2L 0x25
|
|||
|
#define AFE_TEMP1H 0x26
|
|||
|
#define AFE_TEMP1L 0x27
|
|||
|
#define AFE_TEMP2H 0x28
|
|||
|
#define AFE_TEMP2L 0x29
|
|||
|
#define AFE_CURH 0x2A
|
|||
|
#define AFE_CURL 0x2B
|
|||
|
|
|||
|
#define AFE_ALARM_SC 0x40
|
|||
|
#define AFE_ALARM_OV 0x20
|
|||
|
#define AFE_ALARM_CD 0x10
|
|||
|
#define AFE_ALARM_CADC 0x08
|
|||
|
#define AFE_ALARM_VADC 0x04
|
|||
|
#define AFE_ALARM_WDT 0x02
|
|||
|
#define AFE_ALARM_TWI 0x01
|
|||
|
|
|||
|
typedef struct _SYSINFOR_ //data for up-computer monitor
|
|||
|
{
|
|||
|
U16 uiPackStatus; //packstatus include
|
|||
|
U16 uiBatStatus;
|
|||
|
U16 uiVCell[10];
|
|||
|
U16 ulVoltage;
|
|||
|
S32 slCurr;
|
|||
|
U16 uiTS[2];
|
|||
|
U16 uiICTempe[2];
|
|||
|
U32 ulFCC;
|
|||
|
U32 ulRC;
|
|||
|
U16 uiRSOC;
|
|||
|
U16 uiCycleCount;
|
|||
|
U16 uiPackConfig;
|
|||
|
U16 uiManuCommand;
|
|||
|
}SYSINFOR;
|
|||
|
extern SYSINFOR xdata Info;
|
|||
|
|
|||
|
typedef struct _AFEDATA_ //data get form AFE
|
|||
|
{
|
|||
|
U16 uiCell[10];
|
|||
|
U16 uiTS[2]; //TS1 is external tempe
|
|||
|
U16 uiICTempe[2]; //DieTempe
|
|||
|
S16 siCurr;
|
|||
|
}AFEDATA;
|
|||
|
extern AFEDATA xdata AFE; //AFE<46>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ֵ
|
|||
|
|
|||
|
typedef struct _AFEREG_ //data for AFE set in init
|
|||
|
{
|
|||
|
U8 AFEFLAG1;
|
|||
|
U8 AFEFLAG2;
|
|||
|
U8 AFEBSTATUS;
|
|||
|
U8 AFEINTEN;
|
|||
|
U8 AFESCONF1;
|
|||
|
U8 AFESCONF2;
|
|||
|
U8 AFESCONF3;
|
|||
|
U8 AFESCONF4;
|
|||
|
U8 AFESCONF5;
|
|||
|
U8 AFESCONF6;
|
|||
|
U8 AFESCONF7;
|
|||
|
U8 AFESCONF8;
|
|||
|
U8 AFESCONF9;
|
|||
|
U8 AFESCONF10;
|
|||
|
}AFEREG;
|
|||
|
extern AFEREG xdata REG; //AFE<46>Ĵ<EFBFBD><C4B4><EFBFBD>Ԥ<EFBFBD><D4A4>ֵ
|
|||
|
|
|||
|
|
|||
|
//AFE<46><45><EFBFBD>صı<D8B5><C4B1><EFBFBD>
|
|||
|
extern BOOL bAfeAlarmFlg;
|
|||
|
extern BOOL bCADCFlg;
|
|||
|
extern BOOL bVADCFlg;
|
|||
|
extern BOOL bAfeI2CRWErrFlg;
|
|||
|
extern BOOL bAfeErr;
|
|||
|
extern U8 data ucCellNum; //<2F><>ǰӲ<C7B0><D3B2><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD>
|
|||
|
extern U8 data ucCellNumOffset; //<2F><>ǰӲ<C7B0><D3B2><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD>ӷ<EFBFBD>ʽ<EFBFBD><CABD>Ӧ<EFBFBD><D3A6>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ȡAFE<46><45>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
extern U16 data uiCellVmax; //<2F><>о<EFBFBD><D0BE>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ֵ
|
|||
|
extern U16 data uiCellVmin; //<2F><>о<EFBFBD><D0BE>ѹ<EFBFBD><D1B9>Сֵ
|
|||
|
extern U16 xdata uiVadcVmax; //ADC<44>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
extern U16 xdata uiVadcVmin; //ADC<44>ɼ<EFBFBD><C9BC><EFBFBD>Сֵ
|
|||
|
extern U8 xdata ucTempeMiddle;
|
|||
|
extern U16 xdata uiTempeMin;
|
|||
|
extern U16 xdata uiTempeMax;
|
|||
|
extern S32 xdata slCadcCurrent;
|
|||
|
extern S32 xdata slCadcCurAverage;
|
|||
|
extern U8 xdata ucCadcCnt;
|
|||
|
extern S32 xdata slCadcCurBuf[16];
|
|||
|
extern U8 xdata ucAfeI2CErrDelayCnt;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
extern BOOL AFEWriteReg(U8 Reg, U8 Length, U8 xdata *WrBuf);
|
|||
|
extern BOOL AFEReadReg(U8 Reg, U8 Length, U8 xdata *RdBuf);
|
|||
|
extern BOOL AFEInit(void);
|
|||
|
extern void AFERdFlg(void);
|
|||
|
extern void AFEClrFlg(void);
|
|||
|
extern void AFERamCheck(void);
|
|||
|
extern void AFEInitReg(void);
|
|||
|
extern void AFEMosCtl(U8 MosStatus);
|
|||
|
extern void AFEEnterPD(void);
|
|||
|
extern void AFERdStatus(void);
|
|||
|
extern void AFEChgerCheckEn(void);
|
|||
|
extern void AFEChgerCheckDis(void);
|
|||
|
extern void AFELoadCheckEn(void);
|
|||
|
extern void AFELoadCheckDis(void);
|
|||
|
extern void AfeBalCtl(U16 BalChTemp);
|
|||
|
extern void AfeWDTEn(void);
|
|||
|
extern void AfeWDTDis(void);
|
|||
|
extern void AfeTempADCEn(void);
|
|||
|
extern void AfeTempADCDis(void);
|
|||
|
extern void AFETwiCheck(void);
|
|||
|
extern void AfeAlarmEn(U8 AlarmFlg);
|
|||
|
extern void AfeAlarmDis(U8 AlarmFlg);
|
|||
|
|
|||
|
#endif
|