ML5238

Committer:
gscuttari
Date:
Mon Apr 15 10:20:43 2019 +0000
Revision:
0:6a895c900427
ML5238

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gscuttari 0:6a895c900427 1 /*****************************************************************************
gscuttari 0:6a895c900427 2 measure.h
gscuttari 0:6a895c900427 3
gscuttari 0:6a895c900427 4 Copyright (C) 2012 LAPIS Semiconductor Co., Ltd.
gscuttari 0:6a895c900427 5 All rights reserved.
gscuttari 0:6a895c900427 6
gscuttari 0:6a895c900427 7 LAPIS Semiconductor shall not be liable for any direct, indirect,
gscuttari 0:6a895c900427 8 consequential or incidental damages arising from using or modifying this
gscuttari 0:6a895c900427 9 program.
gscuttari 0:6a895c900427 10
gscuttari 0:6a895c900427 11 History
gscuttari 0:6a895c900427 12 2012.11.20 ver.2.00
gscuttari 0:6a895c900427 13 2012.09.13 ver.1.00
gscuttari 0:6a895c900427 14 ******************************************************************************/
gscuttari 0:6a895c900427 15 #ifndef _MEASURE_H_
gscuttari 0:6a895c900427 16 #define _MEASURE_H_
gscuttari 0:6a895c900427 17
gscuttari 0:6a895c900427 18 /*############################################################################*/
gscuttari 0:6a895c900427 19 /*# Struct #*/
gscuttari 0:6a895c900427 20 /*############################################################################*/
gscuttari 0:6a895c900427 21 typedef struct{
gscuttari 0:6a895c900427 22 unsigned short Visense10;
gscuttari 0:6a895c900427 23 unsigned short Visense50;
gscuttari 0:6a895c900427 24 unsigned short Vim010;
gscuttari 0:6a895c900427 25 unsigned short Vim050;
gscuttari 0:6a895c900427 26 /*
gscuttari 0:6a895c900427 27 unsigned short Vim110;
gscuttari 0:6a895c900427 28 unsigned short Vim150;
gscuttari 0:6a895c900427 29 unsigned short VR10;
gscuttari 0:6a895c900427 30 unsigned short VR50;
gscuttari 0:6a895c900427 31 */
gscuttari 0:6a895c900427 32 unsigned short Rsense;
gscuttari 0:6a895c900427 33 unsigned short Count_DC;
gscuttari 0:6a895c900427 34
gscuttari 0:6a895c900427 35 unsigned char Count_ODC;
gscuttari 0:6a895c900427 36 unsigned char Count_OD2;
gscuttari 0:6a895c900427 37 unsigned char curState;
gscuttari 0:6a895c900427 38 unsigned char DetectForbitFlag; //bit0:charge over current detection, bit1:discharge over current1 detection, bit2:discharge over current2 detection
gscuttari 0:6a895c900427 39
gscuttari 0:6a895c900427 40 }CurDetSt;
gscuttari 0:6a895c900427 41
gscuttari 0:6a895c900427 42 typedef struct{
gscuttari 0:6a895c900427 43 unsigned long Vsum;
gscuttari 0:6a895c900427 44 unsigned short OvChDelaytime;
gscuttari 0:6a895c900427 45 unsigned short OvChstate;
gscuttari 0:6a895c900427 46 unsigned short OvDisDelaytime;
gscuttari 0:6a895c900427 47 unsigned short OvDisstate;
gscuttari 0:6a895c900427 48 }CellDetSt;
gscuttari 0:6a895c900427 49
gscuttari 0:6a895c900427 50 typedef struct {
gscuttari 0:6a895c900427 51 unsigned short Vt_pcb;
gscuttari 0:6a895c900427 52 unsigned short UChDelayCount;
gscuttari 0:6a895c900427 53 unsigned short UDisDelayCount;
gscuttari 0:6a895c900427 54 unsigned short OChDelayCount;
gscuttari 0:6a895c900427 55 unsigned short ODisDelayCount;
gscuttari 0:6a895c900427 56 unsigned char Tadr;
gscuttari 0:6a895c900427 57 unsigned char DetectForbitFlag; //bit0:under tempe charge forbit, bit1:under tempe discharge forbit, bit2:over tempe charge forbit, bit3:over tempe discharge forbit
gscuttari 0:6a895c900427 58 }TempeDetSt;
gscuttari 0:6a895c900427 59
gscuttari 0:6a895c900427 60 typedef struct{
gscuttari 0:6a895c900427 61 unsigned char UChState;
gscuttari 0:6a895c900427 62 unsigned char UDisState;
gscuttari 0:6a895c900427 63 unsigned char OChState;
gscuttari 0:6a895c900427 64 unsigned char ODisState;
gscuttari 0:6a895c900427 65 // unsigned short delayCount;
gscuttari 0:6a895c900427 66 TempeDetSt* res;
gscuttari 0:6a895c900427 67 unsigned char TempFlag;
gscuttari 0:6a895c900427 68 }TempeSt;
gscuttari 0:6a895c900427 69
gscuttari 0:6a895c900427 70
gscuttari 0:6a895c900427 71 /*############################################################################*/
gscuttari 0:6a895c900427 72 /*# Variable #*/
gscuttari 0:6a895c900427 73 /*############################################################################*/
gscuttari 0:6a895c900427 74
gscuttari 0:6a895c900427 75 /*############################################################################*/
gscuttari 0:6a895c900427 76 /*# define #*/
gscuttari 0:6a895c900427 77 /*############################################################################*/
gscuttari 0:6a895c900427 78
gscuttari 0:6a895c900427 79 /*############################################################################*/
gscuttari 0:6a895c900427 80 /*# Return #*/
gscuttari 0:6a895c900427 81 /*############################################################################*/
gscuttari 0:6a895c900427 82 #define MEAS_R_OK (0)
gscuttari 0:6a895c900427 83 #define MEAS_R_ERR_NULL (-1)
gscuttari 0:6a895c900427 84
gscuttari 0:6a895c900427 85 #define CUR_NOR (0x00u)
gscuttari 0:6a895c900427 86 #define CUR_CHRG (0x01u)
gscuttari 0:6a895c900427 87 #define CUR_DISCHRG (0x02u)
gscuttari 0:6a895c900427 88 #define CUR_OVCHRG (0x04u)
gscuttari 0:6a895c900427 89 #define CUR_OVDISCHRG1 (0x08u)
gscuttari 0:6a895c900427 90 #define CUR_OVDISCHRG2 (0x10u)
gscuttari 0:6a895c900427 91
gscuttari 0:6a895c900427 92 #define CELL_VOL_NOR (0x00u)
gscuttari 0:6a895c900427 93 #define CELL_VOL_OVD (0x02u)
gscuttari 0:6a895c900427 94 #define CELL_VOL_OVC (0x01u)
gscuttari 0:6a895c900427 95 #define CELL_VOL_OVCD (0x04u)
gscuttari 0:6a895c900427 96 #define CELL_VOL_PD (0x05u)
gscuttari 0:6a895c900427 97
gscuttari 0:6a895c900427 98 #define CFET_OFF_DFET_OFF (0x00u)
gscuttari 0:6a895c900427 99 #define CFET_ON_DFET_OFF (0x02u)
gscuttari 0:6a895c900427 100 #define CFET_OFF_DFET_ON (0x01u)
gscuttari 0:6a895c900427 101 #define CFET_ON_DFET_ON (0x03u)
gscuttari 0:6a895c900427 102
gscuttari 0:6a895c900427 103 #define EEP_TEMPE_TABLE_ADR (0x200u)
gscuttari 0:6a895c900427 104 #define VMON_OUT_EN (0x10u)
gscuttari 0:6a895c900427 105
gscuttari 0:6a895c900427 106 #define CURRENT_AD_FULL (0xFF00u)
gscuttari 0:6a895c900427 107 #define CURRENT_AD_NULL (0x0100u)
gscuttari 0:6a895c900427 108
gscuttari 0:6a895c900427 109 #define CURRENT50_AD_FULL (0xC000u)
gscuttari 0:6a895c900427 110 #define CURRENT10_AD_FULL (CURRENT_AD_FULL)
gscuttari 0:6a895c900427 111
gscuttari 0:6a895c900427 112 #define CUR_OVCH_DETEC_FORBIT (0x01u)
gscuttari 0:6a895c900427 113 #define CUR_OVDISCH1_DETEC_FORBIT (0x02u)
gscuttari 0:6a895c900427 114 #define CUR_OVDISCH2_DETEC_FORBIT (0x04u)
gscuttari 0:6a895c900427 115
gscuttari 0:6a895c900427 116 #define TEMPE_UDCH_DETEC_FORBIT (0x01u)
gscuttari 0:6a895c900427 117 #define TEMPE_UDDISCH_DETEC_FORBIT (0x02u)
gscuttari 0:6a895c900427 118 #define TEMPE_OVCH_DETEC_FORBIT (0x04u)
gscuttari 0:6a895c900427 119 #define TEMPE_OVDISCH_DETEC_FORBIT (0x08u)
gscuttari 0:6a895c900427 120
gscuttari 0:6a895c900427 121 #define IMON_SET_NUM (2u)
gscuttari 0:6a895c900427 122
gscuttari 0:6a895c900427 123 extern const unsigned char Imon_set_table[IMON_SET_NUM];
gscuttari 0:6a895c900427 124
gscuttari 0:6a895c900427 125 /*############################################################################*/
gscuttari 0:6a895c900427 126 /*# Prototype #*/
gscuttari 0:6a895c900427 127 /*############################################################################*/
gscuttari 0:6a895c900427 128 void currentInit(CurDetSt* res);
gscuttari 0:6a895c900427 129
gscuttari 0:6a895c900427 130 void currentGetParam(CurDetSt* res, unsigned short* param10,unsigned short* param50,
gscuttari 0:6a895c900427 131 unsigned short Im, unsigned char discharge_en,
gscuttari 0:6a895c900427 132 unsigned long* param10tmp, unsigned long* param50tmp);
gscuttari 0:6a895c900427 133
gscuttari 0:6a895c900427 134 void meas_current(CurDetSt* res);
gscuttari 0:6a895c900427 135 void UpdateCurrentParamCC(CurDetSt* res,
gscuttari 0:6a895c900427 136 unsigned short* param10, unsigned short* param50,
gscuttari 0:6a895c900427 137 unsigned long param10tmp, unsigned long param50tmp);
gscuttari 0:6a895c900427 138
gscuttari 0:6a895c900427 139 void UpdateCurrentParamDC(CurDetSt* res,
gscuttari 0:6a895c900427 140 unsigned short* param10, unsigned short* param50,
gscuttari 0:6a895c900427 141 unsigned long param10tmp, unsigned long param50tmp);
gscuttari 0:6a895c900427 142
gscuttari 0:6a895c900427 143 void judgeCurrent(CurDetSt* res);
gscuttari 0:6a895c900427 144 int meas_one_cell_volt(unsigned char cell_num, unsigned short* Vcell);
gscuttari 0:6a895c900427 145 void meas_all_cell_volt(unsigned char con_cell_num, unsigned short* Vcell);
gscuttari 0:6a895c900427 146 unsigned char JudgeCellAll(unsigned char cellNum , unsigned short* Vcell, CellDetSt* res);
gscuttari 0:6a895c900427 147
gscuttari 0:6a895c900427 148 void Temperature_init(TempeDetSt* res);
gscuttari 0:6a895c900427 149 void getTemperature(unsigned char thNo, TempeDetSt* res);
gscuttari 0:6a895c900427 150 void JudgeOneTemperature(unsigned char thNum, TempeSt* res);
gscuttari 0:6a895c900427 151 unsigned short JudgeTemperature(TempeSt* res);
gscuttari 0:6a895c900427 152 void fet_control(unsigned char* fetState ,unsigned short workState);
gscuttari 0:6a895c900427 153
gscuttari 0:6a895c900427 154 void Gas_storeVisense(CurDetSt* res);
gscuttari 0:6a895c900427 155 void Gas_aveVisense(unsigned short* cvisens, unsigned short* dvisens);
gscuttari 0:6a895c900427 156 void Gas_aveVisenseClear(void);
gscuttari 0:6a895c900427 157
gscuttari 0:6a895c900427 158
gscuttari 0:6a895c900427 159 #endif /*_MEASURE_H_*/