EIS mode DC bias not working.
CV mode calibration and function okay.
This commit is contained in:
+3
-1
@@ -70,8 +70,10 @@ static void setEIS_EIS (void)
|
||||
HSTIAGainCtrl(instru.ADCGainLv);
|
||||
}
|
||||
|
||||
static int32_t LPVolt = 0;
|
||||
if (!cali_flag) {
|
||||
DAC_outputV(instru.dcbias);
|
||||
LPVolt = (instru.dcbias - 25000) * 4 * 4000;
|
||||
DAC_outputV(LPVolt);
|
||||
SetWGAmp(instru.acamp);
|
||||
} else {
|
||||
cali_DAC_outputV(instru.dcbias);
|
||||
|
||||
+27
-25
@@ -14,9 +14,6 @@ static bool DACReset;
|
||||
|
||||
/* user code: 0 ~ 35000; LPDAC bias value: -1.5V ~ +1.5V */
|
||||
static int32_t DAC_outputV(int32_t voltLVraw) { // LPDAC output, voltLV = Vbias-Vzero
|
||||
// static int32_t vztemp, vscan, voltLV;
|
||||
// static uint32_t vb, vz, vbcode, vzcode, DACOutCode = 0;
|
||||
|
||||
/* new code*/
|
||||
int32_t ret;
|
||||
int32_t vscan;
|
||||
@@ -26,7 +23,6 @@ static int32_t DAC_outputV(int32_t voltLVraw) { // LPDAC output, voltLV = Vbia
|
||||
uint8_t n_zero;//6btit
|
||||
uint16_t n_bias;//12bit
|
||||
uint32_t DACOutCode;
|
||||
|
||||
vscan = voltLVraw;
|
||||
|
||||
v_z = (V_5nV(2200) - (int64_t)vscan) * 200000 / 431579 + V_5nV(200); // v_z = (V_5nV(2200) - vscan)/2.157895 + V_5nV(200);
|
||||
@@ -45,11 +41,11 @@ static int32_t DAC_outputV(int32_t voltLVraw) { // LPDAC output, voltLV = Vbia
|
||||
v_zero = (int64_t)n_zero * V_5nV(3438) / 100;
|
||||
|
||||
if (vscan < 0) {
|
||||
v_zero -= V_5nV(5372) / 10000;
|
||||
v_zero -= V_5nV(5372) / 10000;
|
||||
}
|
||||
|
||||
v_bias = vscan + v_zero;
|
||||
n_bias = v_bias * 10000 / V_5nV(5372);
|
||||
v_bias = vscan + v_zero;
|
||||
n_bias = v_bias * 10000 / V_5nV(5372);
|
||||
|
||||
if ((n_bias <= 4095) || ( n_bias > 4095 && n_zero > 63))
|
||||
break;
|
||||
@@ -59,32 +55,38 @@ static int32_t DAC_outputV(int32_t voltLVraw) { // LPDAC output, voltLV = Vbia
|
||||
if(n_zero > 63) n_zero = 63;
|
||||
DACOutCode = (0x0003FFFF & ((n_zero << 12) + n_bias));
|
||||
|
||||
|
||||
|
||||
/* past code
|
||||
voltLV = voltLVraw;//[mv] // calibration conversion
|
||||
|
||||
vztemp = (-0.45 * voltLV) + 249000000;
|
||||
if (voltLV < 0) {
|
||||
vztemp -= DAC12BIT_LSB;
|
||||
}
|
||||
vzcode = (vztemp - 40000000 + VZERO_LSB / 2) / VZERO_LSB;
|
||||
vz = vzcode * VZERO_LSB + 40000000;
|
||||
|
||||
vb = voltLV + vz;
|
||||
vbcode = ((vb - 40000000 + VBIAS_LSB / 2) / VBIAS_LSB);
|
||||
DACOutCode = (0x0003FFFF & ((vzcode << 12) + vbcode));
|
||||
*/
|
||||
|
||||
select_REG(LPDACDAT0);
|
||||
w32_REG(DACOutCode);
|
||||
|
||||
ret = (int32_t)(v_bias - v_zero); //vscan
|
||||
InputNotify(NOTIFY_VOLT, ret/200);
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
//static int32_t DAC_outputV(int32_t voltLVraw) { // LPDAC output, voltLV = Vbias-Vzero
|
||||
// static int32_t vztemp, vscan, voltLV;
|
||||
// static uint32_t vb, vz, vbcode, vzcode, DACOutCode = 0;
|
||||
//
|
||||
// voltLV = (Cali_LPDAC(voltLVraw) - 25000) * 4 * 4000; // calibration conversion
|
||||
// vztemp = (-0.45 * voltLV) + 249000000;
|
||||
// if (voltLV < 0) {
|
||||
// vztemp -= DAC12BIT_LSB;
|
||||
// }
|
||||
// vzcode = (vztemp - 40000000 + VZERO_LSB / 2) / VZERO_LSB;
|
||||
// vz = vzcode * VZERO_LSB + 40000000;
|
||||
//
|
||||
// vb = voltLV + vz;
|
||||
// vbcode = ((vb - 40000000 + VBIAS_LSB / 2) / VBIAS_LSB);
|
||||
// DACOutCode = (0x0003FFFF & ((vzcode << 12) + vbcode));
|
||||
//
|
||||
// select_REG(LPDACDAT0);
|
||||
// w32_REG(DACOutCode);
|
||||
//
|
||||
// vscan = (int32_t)(vb - vz) / 200;
|
||||
// return vscan;
|
||||
//}
|
||||
|
||||
static uint32_t DAC_outputF(uint32_t freq) {
|
||||
select_REG(WGFCW);
|
||||
w32_REG(freq);
|
||||
|
||||
+4
-4
@@ -19,10 +19,10 @@ static void reset() {
|
||||
|
||||
// PIN_setOutputValue(pin_handle, HIGH_Z_MODE, 0); // HIGH Z MODE // 1: close; 0: open;
|
||||
|
||||
HSTIAGainCtrl(HSRTIA_200R);
|
||||
LPTIAGainCtrl(LPRTIA_200R);
|
||||
HSDAC_GainControl(0x00);
|
||||
HSDAC_output(0x0800);
|
||||
// HSTIAGainCtrl(HSRTIA_200R);
|
||||
// LPTIAGainCtrl(LPRTIA_200R);
|
||||
// HSDAC_GainControl(0x00);
|
||||
// HSDAC_output(0x0800);
|
||||
|
||||
for (int i = 0; i < SPI_LED_SIZE; i++) {
|
||||
spi_LEDtxbuf[i] = 0;
|
||||
|
||||
+1
@@ -46,6 +46,7 @@ static void vscan_volt_out(void)
|
||||
|
||||
/* in [5nV] ver */
|
||||
MEAS_VOUT(wm) = DAC_outputV(Vset);
|
||||
InputNotify(NOTIFY_VOLT, MEAS_VOUT(wm)/200);
|
||||
|
||||
if (Vset == cv->_Vinit && cv->bFirst){
|
||||
Elite_led_color(COLOR_ORANGE);
|
||||
|
||||
+125
-1
@@ -1,7 +1,7 @@
|
||||
#ifndef EIS_CALI_TABLE
|
||||
#define EIS_CALI_TABLE
|
||||
|
||||
#define BOARD_FIRST_STEP_CALI
|
||||
#define BOARD_2
|
||||
|
||||
typedef struct _SingleFilterCali{
|
||||
uint32_t PhaseParaA;
|
||||
@@ -433,6 +433,130 @@ struct _CaliTable{
|
||||
.LP[3].LPTIA_coeff_c = 53149447309,
|
||||
};
|
||||
|
||||
#elif defined(BOARD_A4_DA_32_D4_E6_F5)
|
||||
{
|
||||
.DeviceName = "BOARD_A4_DA_32_D4_E6_F5",
|
||||
.CutoffFreq = 271200,
|
||||
.OffsetZero = 0x6504,
|
||||
|
||||
// hsrtia160k
|
||||
.Lv[0][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[0][0].HSRTIA_b = 5665868, // 1e8
|
||||
.Lv[0][0].HSRTIA_c = 1612, // 1e4
|
||||
.Lv[1][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][0].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][0].HSRTIA_c = 0, // 1e4
|
||||
.Lv[2][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[2][0].HSRTIA_b = 0, // 1e8
|
||||
.Lv[2][0].HSRTIA_c = 0, // 1e4
|
||||
.Lv[3][0].HSRTIA_a = 0, // 1e8
|
||||
.Lv[3][0].HSRTIA_b = 0, // 1e8
|
||||
.Lv[3][0].HSRTIA_c = 0, // 1e4
|
||||
|
||||
// hsrtia20k
|
||||
.Lv[0][1].HSRTIA_a = 3, // 1e8
|
||||
.Lv[0][1].HSRTIA_b = 44242940, // 1e8
|
||||
.Lv[0][1].HSRTIA_c = 148206, // 1e4
|
||||
.Lv[1][1].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][1].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][1].HSRTIA_c = 0, // 1e4
|
||||
.Lv[2][1].HSRTIA_a = 0, // 1e8
|
||||
.Lv[2][1].HSRTIA_b = 0, // 1e8
|
||||
.Lv[2][1].HSRTIA_c = 0, // 1e4
|
||||
.Lv[3][1].HSRTIA_a = 0, // 1e8
|
||||
.Lv[3][1].HSRTIA_b = 0, // 1e8
|
||||
.Lv[3][1].HSRTIA_c = 0, // 1e4
|
||||
|
||||
// hsrtia5k
|
||||
.Lv[0][2].HSRTIA_a = 2, // 1e8
|
||||
.Lv[0][2].HSRTIA_b = 178641591, // 1e8
|
||||
.Lv[0][2].HSRTIA_c = 386005, // 1e4
|
||||
.Lv[1][2].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][2].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][2].HSRTIA_c = 0, // 1e4
|
||||
.Lv[2][2].HSRTIA_a = 0, // 1e8
|
||||
.Lv[2][2].HSRTIA_b = 0, // 1e8
|
||||
.Lv[2][2].HSRTIA_c = 0, // 1e4
|
||||
.Lv[3][2].HSRTIA_a = 0, // 1e8
|
||||
.Lv[3][2].HSRTIA_b = 0, // 1e8
|
||||
.Lv[3][2].HSRTIA_c = 0, // 1e4
|
||||
|
||||
// hsrtia200r
|
||||
.Lv[0][3].HSRTIA_a = 9404, // 1e8
|
||||
.Lv[0][3].HSRTIA_b = 4309654444, // 1e8
|
||||
.Lv[0][3].HSRTIA_c = 15315713, // 1e4
|
||||
.Lv[1][3].HSRTIA_a = 0, // 1e8
|
||||
.Lv[1][3].HSRTIA_b = 0, // 1e8
|
||||
.Lv[1][3].HSRTIA_c = 0, // 1e4
|
||||
.Lv[2][3].HSRTIA_a = 0, // 1e8
|
||||
.Lv[2][3].HSRTIA_b = 0, // 1e8
|
||||
.Lv[2][3].HSRTIA_c = 0, // 1e4
|
||||
.Lv[3][3].HSRTIA_a = 0, // 1e8
|
||||
.Lv[3][3].HSRTIA_b = 0, // 1e8
|
||||
.Lv[3][3].HSRTIA_c = 0, // 1e4
|
||||
|
||||
.Ft[0][0].PhaseParaA = 148031,
|
||||
.Ft[0][0].PhaseParaB = -89728680,
|
||||
.Ft[0][1].PhaseParaA = 0,
|
||||
.Ft[0][1].PhaseParaB = 0,
|
||||
.Ft[0][2].PhaseParaA = 0,
|
||||
.Ft[0][2].PhaseParaB = 0,
|
||||
.Ft[0][3].PhaseParaA = 0,
|
||||
.Ft[0][3].PhaseParaB = 0,
|
||||
|
||||
.Ft[1][0].PhaseParaA = 341117,
|
||||
.Ft[1][0].PhaseParaB = -89913235,
|
||||
.Ft[1][1].PhaseParaA = 0,
|
||||
.Ft[1][1].PhaseParaB = 0,
|
||||
.Ft[1][2].PhaseParaA = 0,
|
||||
.Ft[1][2].PhaseParaB = 0,
|
||||
.Ft[1][3].PhaseParaA = 0,
|
||||
.Ft[1][3].PhaseParaB = 0,
|
||||
|
||||
.Ft[2][0].PhaseParaA = 20622054,
|
||||
.Ft[2][0].PhaseParaB = -90005211,
|
||||
.Ft[2][1].PhaseParaA = 0,
|
||||
.Ft[2][1].PhaseParaB = 0,
|
||||
.Ft[2][2].PhaseParaA = 0,
|
||||
.Ft[2][2].PhaseParaB = 0,
|
||||
.Ft[2][3].PhaseParaA = 0,
|
||||
.Ft[2][3].PhaseParaB = 0,
|
||||
|
||||
.Ft[3][0].PhaseParaA = 99823148,
|
||||
.Ft[3][0].PhaseParaB = -89960369,
|
||||
.Ft[3][1].PhaseParaA = 0,
|
||||
.Ft[3][1].PhaseParaB = 0,
|
||||
.Ft[3][2].PhaseParaA = 0,
|
||||
.Ft[3][2].PhaseParaB = 0,
|
||||
.Ft[3][3].PhaseParaA = 0,
|
||||
.Ft[3][3].PhaseParaB = 0,
|
||||
|
||||
//only for EIS 1e10
|
||||
.HSDAC_coeff_a = 14,
|
||||
.HSDAC_coeff_b = 9717249,
|
||||
.HSDAC_coeff_c = 8586589,
|
||||
|
||||
.LPDAC_coeff_a = 7,
|
||||
.LPDAC_coeff_b = 8394088,
|
||||
.LPDAC_coeff_c = 131973802074,
|
||||
|
||||
.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
|
||||
|
||||
/* Ft[4][4]; Lv[4][4] */
|
||||
|
||||
Reference in New Issue
Block a user