Combine Cali ADC mode with Cali DAC mode. Vout perform output and sense voltage at the same time.

This commit is contained in:
Benny Liu
2021-06-04 16:35:31 +08:00
parent 380c5b7553
commit a26cdf2a73
5 changed files with 10 additions and 9 deletions
@@ -7,7 +7,6 @@
#define VIN_ADC 0x01
#define VOUT_DAC 0x02
#define HIGH_Z 0x03
#define VOUT_VIN_ADC 0x04
/** ADC Iin gain level **/
#define I_GAIN_3M 0x00 // largest gain
@@ -163,10 +163,9 @@ static void WorkModeLED() {
Elite_led_color(COLOR_RED);
}else if(INSTRUCTION.AdcChannel == VIN_ADC){
Elite_led_color(COLOR_ORANGE);
}else if(INSTRUCTION.AdcChannel == VOUT_VIN_ADC){
}else if(INSTRUCTION.AdcChannel == VOUT_DAC){
Elite_led_color(COLOR_BLUE);
}
break;
}
// case VIS_RST: {
@@ -10,7 +10,7 @@ static void reset() {
InitCT();
InitGPT();
PIN15_setOutputValue(HIGH_Z_MODE, 0); // 0 => open high_z mode
PIN15_setOutputValue(HIGH_Z_MODE, 1); // 0 => open high_z mode
VinADCGainControl(VIN_GAIN_AUTO);
IinADCGainControl(I_GAIN_AUTO);
@@ -48,7 +48,7 @@ static void Eliteinterrupt() {
InitCT();
InitGPT();
PIN15_setOutputValue(HIGH_Z_MODE, 0); // 0 => open high_z mode
PIN15_setOutputValue(HIGH_Z_MODE, 1); // 0 => open high_z mode
INSTRUCTION.VoutGainLevel = VOUT_GAIN_15K;
VoutGainControl(INSTRUCTION.VoutGainLevel);
@@ -1129,7 +1129,7 @@ static void update_ZM_instruction(uint8 *ins) {
break;
}
case CALI_DAC_MODE: {
case CALI_DAC_MODE: { // 0x93
ModeLED(WORKING);
INSTRUCTION.eliteFxn = CALI_DAC_MODE;
PIN15_setOutputValue(HIGH_Z_MODE, 1); // 1 => close high_z mode
@@ -1157,12 +1157,14 @@ static void update_ZM_instruction(uint8 *ins) {
ModeLED(WORKING);
break;
}
case VOUT_VIN_ADC : { // 0x04
case VOUT_DAC : { // 0x02
INSTRUCTION.eliteFxn = CALI_ADC_MODE;
INSTRUCTION.AdcChannel = VOUT_VIN_ADC;
INSTRUCTION.AdcChannel = VOUT_DAC;
INSTRUCTION.notifyRate = 1000;
INSTRUCTION.sampleRate = 15;
INSTRUCTION.VoViSwitch = 0x00; // 0: read Vout voltage
PIN15_setOutputValue(HIGH_Z_MODE, 1); // 1 => close high_z mode
INSTRUCTION.VoltConstant = ( ((uint16_t)(ins[4])) << 8) | (uint16_t)(ins[5]); // output voltage
ModeLED(WORKING);
break;
}
@@ -380,7 +380,8 @@ static void EliteADCControl(WorkMode *WorkModeData) {
cali_IT_plot(WorkModeData);
}else if(INSTRUCTION.AdcChannel == VIN_ADC){
cali_VT_plot(WorkModeData);
}else if(INSTRUCTION.AdcChannel == VOUT_VIN_ADC){
}else if(INSTRUCTION.AdcChannel == VOUT_DAC){
DAC_outputV(INSTRUCTION.VoltConstant); //UserCode -> DAC code -> DAC out
cali_VT_plot(WorkModeData);
}