Add CV mode calibration parameters and modify calibration functions.
This commit is contained in:
+6
-2
@@ -119,19 +119,23 @@ static void setEIS_CV (void)
|
||||
w32_REG(0x0000003E);
|
||||
select_REG(LPTIASW0); //LPTIASW0
|
||||
w32_REG(0x00008034); // SW2 | SW4 | SW5
|
||||
select_REG(LPTIACON0); //LPTIACON0
|
||||
w32_REG(0x00000038); //RF 0 | RTIA 200R | Rload 0 | High Current Mode
|
||||
LPTIAGainCtrl(instru.LPTIAGainLv);
|
||||
select_REG(LPDACCON0); //LPDACCON0
|
||||
w32_REG(0x00000001);
|
||||
|
||||
//Configure ADC | ADCDAT (0x2074)
|
||||
select_REG(ADCCON); //ADCCON
|
||||
w32_REG(0x00011021); //PGA = 1.5 | VZERO | LPTIA_OUT
|
||||
// w32_REG(0x00010617); //PGA = 1.5 | AIN2_Vbias_cap | VZERO // to monitor Vzero voltage fluctuation
|
||||
select_REG(ADCFILTERCON); //ADCFILTERCON
|
||||
w32_REG(0x00002011); // Sinc3 En | SINC3OSR2 | SINC2OSR22
|
||||
select_REG(DFTCON); //DFTCON
|
||||
w32_REG(0x00000001); // Sinc2 to DFT | DFTNUM4
|
||||
|
||||
// mean function for calibration
|
||||
select_REG(REG_AFE_STATSCON); // don't use mean function
|
||||
w32_REG(0x00000001); // dev | 128 samples | enable statistics
|
||||
|
||||
//AFE and PWMB
|
||||
select_REG(AFECON); //AFECON
|
||||
w32_REG(0x00098780); //ADC on //0b10011000011110000000
|
||||
|
||||
+7
-9
@@ -204,8 +204,8 @@ static void LPTIAGainCtrl(uint8_t LPTIALevel){
|
||||
LPTIACON0[12:10] = RLOAD, set at 0R;
|
||||
LPTIACON0[9:5] = RTIA;
|
||||
LPTIACON0[4:3] = IBOOST, High current mode; */
|
||||
uint32_t code;
|
||||
uint8_t data;
|
||||
uint32_t code = 0x00000038; // disconnect LPF | RL 0R | RTIA 200R | high I mode
|
||||
uint8_t data = 1; // RTIA = 200R
|
||||
|
||||
if (LPTIALevel == LPRTIA_64K) {
|
||||
data = 17; //64k
|
||||
@@ -224,7 +224,6 @@ static void LPTIAGainCtrl(uint8_t LPTIALevel){
|
||||
}
|
||||
|
||||
select_REG(LPTIACON0); //LPTIACON0
|
||||
code = r32_REG();
|
||||
|
||||
code = (code & (~(31 << 5))) | (data << 5);
|
||||
select_REG(LPTIACON0); //LPTIACON0
|
||||
@@ -363,12 +362,12 @@ static int32_t ADCCode2Volt(uint32_t code) {
|
||||
#define VIN_GAIN_MID1_BOUNDARY2 300000 // 300 mV = 300,000,000 nV
|
||||
#define VIN_GAIN_LARGE_BOUNDARY 250000 // 250 mV = 250,000,000 nV
|
||||
|
||||
#define LPTIA_GAIN_SMALL_BOUNDARY 1500 // 1.5 uA = 1,500,000 pA
|
||||
#define LPTIA_GAIN_MID1_BOUNDARY1 1000 // 1 uA = 1,000,000 pA
|
||||
#define LPTIA_GAIN_SMALL_BOUNDARY 6000 // 6 uA = 1,500,000 pA
|
||||
#define LPTIA_GAIN_MID1_BOUNDARY1 5000 // 5 uA = 1,000,000 pA
|
||||
#define LPTIA_GAIN_MID1_BOUNDARY2 60000 // 60 uA = 60,000,000 pA
|
||||
#define LPTIA_GAIN_MID2_BOUNDARY1 40000 // 40 uA = 40,000,000 pA
|
||||
#define LPTIA_GAIN_MID2_BOUNDARY2 175000 // 175 uA = 175,000 nA
|
||||
#define LPTIA_GAIN_LARGE_BOUNDARY 120000 // 120 uA = 120,000 nA
|
||||
#define LPTIA_GAIN_MID2_BOUNDARY1 50000 // 50 uA = 40,000,000 pA
|
||||
#define LPTIA_GAIN_MID2_BOUNDARY2 600000 // 600 uA = 175,000 nA
|
||||
#define LPTIA_GAIN_LARGE_BOUNDARY 500000 // 500 uA = 120,000 nA
|
||||
|
||||
// Current Squared
|
||||
/* old boundary */
|
||||
@@ -685,7 +684,6 @@ static int32_t read_LPTIA_Iin(){
|
||||
Iin = Cali_LPTIA(ADCraw, instru.ADCGainLv);
|
||||
|
||||
InputNotify(NOTIFY_CURRENT, Iin);
|
||||
InputNotify(NOTIFY_VOLT, ADCraw);
|
||||
InputNotify(NOTIFY_IMPEDANCE, instru.ADCGainLv);
|
||||
return Iin;
|
||||
}
|
||||
|
||||
+2
-2
@@ -79,8 +79,8 @@ static int32_t DAC_outputV(int32_t voltLVraw) { // LPDAC output, voltLV = Vbia
|
||||
select_REG(LPDACDAT0);
|
||||
w32_REG(DACOutCode);
|
||||
|
||||
ret = (int32_t)(v_bias - v_zero) / 200; //vscan
|
||||
// InputNotify(NOTIFY_VOLT, ret/200);
|
||||
ret = (int32_t)(v_bias - v_zero); //vscan
|
||||
InputNotify(NOTIFY_VOLT, ret/200);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
-7
@@ -108,7 +108,6 @@ static void SendCaliValue3(void) {
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][0].HSRTIA_c >> 16) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][0].HSRTIA_c >> 8) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) CaliTable.Lv[0][0].HSRTIA_c & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) CaliTable.Lv[0][0].HSRTIA_d & 0xFF;
|
||||
|
||||
cali_buf[0] = index - 1;
|
||||
|
||||
@@ -134,7 +133,6 @@ static void SendCaliValue4(void) {
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][1].HSRTIA_c >> 16) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][1].HSRTIA_c >> 8) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) CaliTable.Lv[0][1].HSRTIA_c & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) CaliTable.Lv[0][1].HSRTIA_d & 0xFF;
|
||||
|
||||
cali_buf[0] = index - 1;
|
||||
|
||||
@@ -160,7 +158,6 @@ static void SendCaliValue5(void) {
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][2].HSRTIA_c >> 16) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][2].HSRTIA_c >> 8) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) CaliTable.Lv[0][2].HSRTIA_c & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) CaliTable.Lv[0][2].HSRTIA_d & 0xFF;
|
||||
|
||||
cali_buf[0] = index - 1;
|
||||
|
||||
@@ -186,10 +183,6 @@ static void SendCaliValue6(void) {
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_c >> 16) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_c >> 8) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) CaliTable.Lv[0][3].HSRTIA_c & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_d >> 24)& 0xFF;
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_d >> 16) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_d >> 8) & 0xFF;
|
||||
cali_buf[index++] = (uint8_t) CaliTable.Lv[0][3].HSRTIA_d & 0xFF;
|
||||
|
||||
cali_buf[0] = index - 1;
|
||||
|
||||
|
||||
+73
-35
@@ -7,14 +7,19 @@ typedef struct _SingleFilterCali{
|
||||
uint32_t PhaseParaA;
|
||||
int32_t PhaseParaB;
|
||||
}SingleFilterCali;
|
||||
|
||||
/* res = a*x^2 + b*x + c */
|
||||
typedef struct _SingleGainLvCali{
|
||||
int64_t HSRTIA_a;
|
||||
int64_t HSRTIA_b;
|
||||
int64_t HSRTIA_c;
|
||||
int64_t HSRTIA_d;
|
||||
}SingleGainLvCali;
|
||||
|
||||
typedef struct _LowPowerGainLvCali{
|
||||
long long LPTIA_coeff_a;
|
||||
long long LPTIA_coeff_b;
|
||||
long long LPTIA_coeff_c;
|
||||
}LowPowerGainLvCali;
|
||||
|
||||
struct _CaliTable{
|
||||
//CIS to Controller
|
||||
char DeviceName[25];
|
||||
@@ -35,9 +40,7 @@ struct _CaliTable{
|
||||
long long HSAMP_offset;
|
||||
SingleGainLvCali Lv[4][4];
|
||||
|
||||
long long LPTIA_coeff_a;
|
||||
long long LPTIA_coeff_b;
|
||||
long long LPTIA_coeff_c;
|
||||
LowPowerGainLvCali LP[4];
|
||||
|
||||
}CaliTable =
|
||||
|
||||
@@ -54,16 +57,15 @@ struct _CaliTable{
|
||||
|
||||
#ifdef BOARD_FIRST_STEP_CALI
|
||||
{
|
||||
|
||||
.DeviceName = "BOARD_FIRST_STEP_CALI",
|
||||
.CutoffFreq = 271200,
|
||||
.OffsetZero = 0x6504,
|
||||
|
||||
/* HSTIA calibration data */
|
||||
// hsrtia160k
|
||||
.Lv[0][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[0][0].HSRTIA_b = 5665868, // 1e8
|
||||
.Lv[0][0].HSRTIA_c = 1612, // 1e4
|
||||
.Lv[0][0].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][0].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][0].HSRTIA_c = 0, // 1e4
|
||||
@@ -78,7 +80,6 @@ struct _CaliTable{
|
||||
.Lv[0][1].HSRTIA_a = 3, // 1e8
|
||||
.Lv[0][1].HSRTIA_b = 44242940, // 1e8
|
||||
.Lv[0][1].HSRTIA_c = 148206, // 1e4
|
||||
.Lv[0][1].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][1].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][1].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][1].HSRTIA_c = 0, // 1e4
|
||||
@@ -93,7 +94,6 @@ struct _CaliTable{
|
||||
.Lv[0][2].HSRTIA_a = 2, // 1e8
|
||||
.Lv[0][2].HSRTIA_b = 178641591, // 1e8
|
||||
.Lv[0][2].HSRTIA_c = 386005, // 1e4
|
||||
.Lv[0][2].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][2].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][2].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][2].HSRTIA_c = 0, // 1e4
|
||||
@@ -108,7 +108,6 @@ struct _CaliTable{
|
||||
.Lv[0][3].HSRTIA_a = 9404, // 1e8
|
||||
.Lv[0][3].HSRTIA_b = 4309654444, // 1e8
|
||||
.Lv[0][3].HSRTIA_c = 15315713, // 1e4
|
||||
.Lv[0][3].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][3].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][3].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][3].HSRTIA_c = 0, // 1e4
|
||||
@@ -119,6 +118,7 @@ struct _CaliTable{
|
||||
.Lv[3][3].HSRTIA_b = 0, // 1e8
|
||||
.Lv[3][3].HSRTIA_c = 0, // 1e4
|
||||
|
||||
/* Phase calibration data */
|
||||
.Ft[0][0].PhaseParaA = 148031,
|
||||
.Ft[0][0].PhaseParaB = -89728680,
|
||||
.Ft[0][1].PhaseParaA = 0,
|
||||
@@ -155,16 +155,34 @@ struct _CaliTable{
|
||||
.Ft[3][3].PhaseParaA = 0,
|
||||
.Ft[3][3].PhaseParaB = 0,
|
||||
|
||||
//only for EIS 1e10
|
||||
/* HSDAC calibration data */
|
||||
//HSDAC_coeff_a = excel: DAC_AMP
|
||||
.HSDAC_coeff_a = -166,
|
||||
.HSDAC_coeff_b = 9781419,
|
||||
.HSDAC_coeff_c = 181161946,
|
||||
|
||||
/* LPDAC calibration data */
|
||||
//LPDAC_coeff_a = excel: DACoffset
|
||||
.LPDAC_coeff_a = 8,
|
||||
.LPDAC_coeff_b = 8360236,
|
||||
.LPDAC_coeff_c = 131934447554,
|
||||
|
||||
/* LPTIA calibration data */
|
||||
.LP[0].LPTIA_coeff_a = 0, // PGA = 1.5 | calibrated by ADCDAT
|
||||
.LP[0].LPTIA_coeff_b = -54816709,
|
||||
.LP[0].LPTIA_coeff_c = 179606310,
|
||||
|
||||
.LP[1].LPTIA_coeff_a = 2,
|
||||
.LP[1].LPTIA_coeff_b = -434063200,
|
||||
.LP[1].LPTIA_coeff_c = 1422073413,
|
||||
|
||||
.LP[2].LPTIA_coeff_a = -9,
|
||||
.LP[2].LPTIA_coeff_b = -3163492996,
|
||||
.LP[2].LPTIA_coeff_c = 10368161009,
|
||||
|
||||
.LP[3].LPTIA_coeff_a = -481,
|
||||
.LP[3].LPTIA_coeff_b = -16202491299,
|
||||
.LP[3].LPTIA_coeff_c = 53149447309,
|
||||
};
|
||||
|
||||
#elif defined(BOARD_A4_DA_32_D4_E7_96)
|
||||
@@ -177,7 +195,6 @@ struct _CaliTable{
|
||||
.Lv[0][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[0][0].HSRTIA_b = 5665868, // 1e8
|
||||
.Lv[0][0].HSRTIA_c = 1612, // 1e4
|
||||
.Lv[0][0].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][0].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][0].HSRTIA_c = 0, // 1e4
|
||||
@@ -192,7 +209,6 @@ struct _CaliTable{
|
||||
.Lv[0][1].HSRTIA_a = 3, // 1e8
|
||||
.Lv[0][1].HSRTIA_b = 44242940, // 1e8
|
||||
.Lv[0][1].HSRTIA_c = 148206, // 1e4
|
||||
.Lv[0][1].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][1].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][1].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][1].HSRTIA_c = 0, // 1e4
|
||||
@@ -207,7 +223,6 @@ struct _CaliTable{
|
||||
.Lv[0][2].HSRTIA_a = 2, // 1e8
|
||||
.Lv[0][2].HSRTIA_b = 178641591, // 1e8
|
||||
.Lv[0][2].HSRTIA_c = 386005, // 1e4
|
||||
.Lv[0][2].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][2].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][2].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][2].HSRTIA_c = 0, // 1e4
|
||||
@@ -222,7 +237,6 @@ struct _CaliTable{
|
||||
.Lv[0][3].HSRTIA_a = 9404, // 1e8
|
||||
.Lv[0][3].HSRTIA_b = 4309654444, // 1e8
|
||||
.Lv[0][3].HSRTIA_c = 15315713, // 1e4
|
||||
.Lv[0][3].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][3].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][3].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][3].HSRTIA_c = 0, // 1e4
|
||||
@@ -277,6 +291,22 @@ struct _CaliTable{
|
||||
.LPDAC_coeff_a = 9,
|
||||
.LPDAC_coeff_b = 8394985,
|
||||
.LPDAC_coeff_c = 131178634002,
|
||||
|
||||
.LP[0].LPTIA_coeff_a = 0, // PGA = 1.5 | calibrated by ADCDAT
|
||||
.LP[0].LPTIA_coeff_b = -54816709,
|
||||
.LP[0].LPTIA_coeff_c = 179606310,
|
||||
|
||||
.LP[1].LPTIA_coeff_a = 2,
|
||||
.LP[1].LPTIA_coeff_b = -434063200,
|
||||
.LP[1].LPTIA_coeff_c = 1422073413,
|
||||
|
||||
.LP[2].LPTIA_coeff_a = -9,
|
||||
.LP[2].LPTIA_coeff_b = -3163492996,
|
||||
.LP[2].LPTIA_coeff_c = 10368161009,
|
||||
|
||||
.LP[3].LPTIA_coeff_a = -481,
|
||||
.LP[3].LPTIA_coeff_b = -16202491299,
|
||||
.LP[3].LPTIA_coeff_c = 53149447309,
|
||||
};
|
||||
|
||||
#elif defined(BOARD_2)
|
||||
@@ -289,7 +319,6 @@ struct _CaliTable{
|
||||
.Lv[0][0].HSRTIA_a = 6, // 1e8
|
||||
.Lv[0][0].HSRTIA_b = 5364069, // 1e8
|
||||
.Lv[0][0].HSRTIA_c = 333966, // 1e4
|
||||
.Lv[0][0].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][0].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][0].HSRTIA_c = 0, // 1e4
|
||||
@@ -304,7 +333,6 @@ struct _CaliTable{
|
||||
.Lv[0][1].HSRTIA_a = -2, // 1e8
|
||||
.Lv[0][1].HSRTIA_b = 44356135, // 1e8
|
||||
.Lv[0][1].HSRTIA_c = -229167, // 1e4
|
||||
.Lv[0][1].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][1].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][1].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][1].HSRTIA_c = 0, // 1e4
|
||||
@@ -319,7 +347,6 @@ struct _CaliTable{
|
||||
.Lv[0][2].HSRTIA_a = -80, // 1e8
|
||||
.Lv[0][2].HSRTIA_b = 182590228, // 1e8
|
||||
.Lv[0][2].HSRTIA_c = -5912444, // 1e4
|
||||
.Lv[0][2].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][2].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][2].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][2].HSRTIA_c = 0, // 1e4
|
||||
@@ -334,7 +361,6 @@ struct _CaliTable{
|
||||
.Lv[0][3].HSRTIA_a = 8416, // 1e8
|
||||
.Lv[0][3].HSRTIA_b = 4320620916, // 1e8
|
||||
.Lv[0][3].HSRTIA_c = 21087122, // 1e4
|
||||
.Lv[0][3].HSRTIA_d = 0, // 1e4
|
||||
.Lv[1][3].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][3].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][3].HSRTIA_c = 0, // 1e4
|
||||
@@ -390,9 +416,21 @@ struct _CaliTable{
|
||||
.LPDAC_coeff_b = 8381700,
|
||||
.LPDAC_coeff_c = 131921128904,
|
||||
|
||||
.LPTIA_coeff_a = 0,
|
||||
.LPTIA_coeff_b = 1e8,
|
||||
.LPTIA_coeff_c = 0,
|
||||
.LP[0].LPTIA_coeff_a = 0, // PGA = 1.5 | calibrated by ADCDAT
|
||||
.LP[0].LPTIA_coeff_b = -54816709,
|
||||
.LP[0].LPTIA_coeff_c = 179606310,
|
||||
|
||||
.LP[1].LPTIA_coeff_a = 2,
|
||||
.LP[1].LPTIA_coeff_b = -434063200,
|
||||
.LP[1].LPTIA_coeff_c = 1422073413,
|
||||
|
||||
.LP[2].LPTIA_coeff_a = -9,
|
||||
.LP[2].LPTIA_coeff_b = -3163492996,
|
||||
.LP[2].LPTIA_coeff_c = 10368161009,
|
||||
|
||||
.LP[3].LPTIA_coeff_a = -481,
|
||||
.LP[3].LPTIA_coeff_b = -16202491299,
|
||||
.LP[3].LPTIA_coeff_c = 53149447309,
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -436,20 +474,20 @@ static int64_t Cali_HSTIA (uint64_t value, uint8_t gain_level) {
|
||||
static int64_t Cali_LPTIA (uint32_t value, uint8_t gain_level) {
|
||||
/* res = a*x^2 + b*x + c */
|
||||
int64_t res;
|
||||
// res = (((int64_t)CaliTable.LPTIA_coeff_a * value * value +
|
||||
// (int64_t)CaliTable.LPTIA_coeff_b * value +
|
||||
// (int64_t)CaliTable.LPTIA_coeff_c * 1e4) / 1e8);
|
||||
|
||||
|
||||
if (gain_level == LPRTIA_200R) {
|
||||
res = ((int64_t)value * (-161182431) + 5283011111479) / 1e6;
|
||||
} else if (gain_level == LPRTIA_1K) {
|
||||
res = ((int64_t)value * (-31279533) + 1025255598163) / 1e6;
|
||||
} else if (gain_level == LPRTIA_8K) {
|
||||
res = ((int64_t)value * (-4266773) + 139847876228) / 1e6;
|
||||
} else if (gain_level == LPRTIA_64K) {
|
||||
res = ((int64_t)value * (-533907) + 17499366771) / 1e6;
|
||||
}
|
||||
res = (((int64_t)CaliTable.LP[gain_level].LPTIA_coeff_a * value * value +
|
||||
(int64_t)CaliTable.LP[gain_level].LPTIA_coeff_b * value +
|
||||
(int64_t)CaliTable.LP[gain_level].LPTIA_coeff_c * 1e4) / 1e8);
|
||||
|
||||
// if (gain_level == LPRTIA_200R) {
|
||||
// res = ((int64_t)value * (-161182431) + 5283011111479) / 1e6;
|
||||
// } else if (gain_level == LPRTIA_1K) {
|
||||
// res = ((int64_t)value * (-31279533) + 1025255598163) / 1e6;
|
||||
// } else if (gain_level == LPRTIA_8K) {
|
||||
// res = ((int64_t)value * (-4266773) + 139847876228) / 1e6;
|
||||
// } else if (gain_level == LPRTIA_64K) {
|
||||
// res = ((int64_t)value * (-533907) + 17499366771) / 1e6;
|
||||
// }
|
||||
|
||||
return (int32_t)res;
|
||||
}
|
||||
|
||||
+6
-9
@@ -1085,23 +1085,20 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
}
|
||||
|
||||
case cali_CVbias: { // 0x69
|
||||
static int32_t LPvolt = 0;
|
||||
LPvolt = ((int32_t)(ins[4]) << 8) | (int32_t)(ins[5]);
|
||||
static uint16_t user_volt = 0;
|
||||
user_volt = ((uint16_t)(ins[4]) << 8) | (uint16_t)(ins[5]);
|
||||
int32_t LPvolt = (user_volt - 25000) * 4 * 4000; //[5nV]
|
||||
|
||||
setEIS_CV();
|
||||
DAC_outputV(LPvolt);
|
||||
LED_color(DARKLED, 0x80, 0x80, 0x00);
|
||||
// LED_color(DARKLED, 0x80, 0x80, 0x00);
|
||||
break;
|
||||
}
|
||||
|
||||
case cali_CV_gainCtrl: {// 0x59
|
||||
instru.LPTIAGainLv = ins[4];
|
||||
if (instru.LPTIAGainLv != LPRTIA_GAIN_AUTO) {
|
||||
instru.LPTIAAutoGainEnable = 0;
|
||||
} else {
|
||||
instru.LPTIAAutoGainEnable = 1;
|
||||
instru.LPTIAGainLv = LPRTIA_200R;
|
||||
}
|
||||
LPTIAGainCtrl(instru.LPTIAGainLv);
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x22: { //for Roy
|
||||
|
||||
Reference in New Issue
Block a user