00001
00024
00025 unsigned char CalibrateVREF(void);
00026 unsigned char CalibrateCCoffset(void);
00027
00028
00029 #ifdef MODULE_CALIBRATION
00030 unsigned int calibration_state = 0;
00031 unsigned int calibration_state_req = 0;
00032 #define CCoffset_limit 100 // limit for CCoffset (to be decided)
00033 #define CCIoffset_limit 66 // limit for CCIoffset 10.5*(CCoffset/16)
00034
00035
00036 #define CAL_CHANNEL 0x01 // Mux value for channel PV1
00037 #define CAL_GAIN ADCgain[0] // Gain value for channel PV1
00038 #define CAL_WAIT 10 // Number of VADC cycles (512us) to wait for error from
00039
00040
00041
00042 #define TempCal0 0x00
00043 #define TempCal1 0x01
00044 #define TempCal2 0x03
00045 #define TempCal3 0x07
00046 #define TempCal4 0x0F
00047 #define TempCal5 0x1F
00048 #define TempCal6 0x3F
00049 #define TempCal7 0x7F
00050 #define TempCal8 0xFF
00051
00053 #define Vcalibration_value 67117056 // input voltage = 4096.5mV*16384/mV = 67117056
00054
00055 #define VLevel0 0 // padding to enable Tempcal0 if < VLevel1
00056 #define VLevel1 -615753 // Preliminary
00057 #define VLevel2 -491700
00058 #define VLevel3 -337272
00059 #define VLevel4 -152886
00060 #define VLevel5 0
00061 #define VLevel6 60960
00062 #define VLevel7 121810
00063 #define VLevel8 182549
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 __flash unsigned char tempcal[] = {TempCal0,TempCal1,TempCal2,TempCal3,TempCal4,TempCal5,TempCal6,TempCal7,TempCal8};
00096 __flash signed long int vcalibration_level[] = {VLevel0,VLevel1,VLevel2,VLevel3,VLevel4,VLevel5,VLevel6,VLevel7,VLevel8};
00097
00098 #else
00099 extern unsigned int calibration_state;
00100 extern unsigned int calibration_state_req;
00101 #endif
00102
00103
00104
00105
00106 #define CAL_VREF_BIT_POS 0
00107 #define CAL_CC_BIT_POS 2
00108
00109 #define NO_CAL 0
00110 #define RUN_CAL 1
00111 #define CAL_FAIL 2
00112 #define CAL_OK 3
00113
00114 #define CAL_VREF_MASK (3 << CAL_VREF_BIT_POS)
00115 #define CAL_VREF_RUN (RUN_CAL << CAL_VREF_BIT_POS)
00116 #define CAL_VREF_FAIL (CAL_FAIL << CAL_VREF_BIT_POS)
00117 #define CAL_VREF_OK (CAL_OK << CAL_VREF_BIT_POS)
00118
00119 #define CAL_CC_MASK (3 << CAL_CC_BIT_POS)
00120 #define CAL_CC_RUN (RUN_CAL << CAL_CC_BIT_POS)
00121 #define CAL_CC_FAIL (CAL_FAIL << CAL_CC_BIT_POS)
00122 #define CAL_CC_OK (CAL_OK << CAL_CC_BIT_POS)