Other Parts Discussed in Thread: LAUNCHXL-F280025C, C2000WARE
Hi,
I trying to set up ADCs using a HAL_setupADCs() function. I am reusing this function originally written for f280025 examples. I getting compiler errors for the following two lines. The compiler is looking for the definition and declaration of ADC_setVREF(), which is missing n the adc.c of the f28379s driverlib. What is the function used for setting f28379s reference voltage.
// LAUNCHXL-F280025C based kits
ADC_setVREF(obj->adcHandle[0], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V);
ADC_setVREF(obj->adcHandle[1], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V);
void HAL_setupADCs(HAL_Handle handle) { HAL_Obj *obj = (HAL_Obj *)handle; SysCtl_delay(100U); #if defined(BSXL8323RS_REVA) || defined(BSXL8323RH_REVB) || \ defined(BSXL8353RS_REVA) || defined(BSXL3PHGAN_REVA) || \ defined(BSXL8316RT_REVA) || defined(DRV8329AEVM_REVA) /* commented JS // LAUNCHXL-F280025C based kits ADC_setVREF(obj->adcHandle[0], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V); ADC_setVREF(obj->adcHandle[1], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V); */ // end commented JS #elif defined(HVMTRPFC_REV1P1) // TMDSCNCD280025C based kits ADC_setVREF(obj->adcHandle[0], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V); ADC_setVREF(obj->adcHandle[1], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V); #else #error Select the right clock of PLL for the board #endif // ADC Reference SysCtl_delay(100U); // Set main clock scaling factor (50MHz max clock for the ADC module) ADC_setPrescaler(obj->adcHandle[0], ADC_CLK_DIV_2_0); ADC_setPrescaler(obj->adcHandle[1], ADC_CLK_DIV_2_0); // set the ADC interrupt pulse generation to end of conversion ADC_setInterruptPulseMode(obj->adcHandle[0], ADC_PULSE_END_OF_CONV); ADC_setInterruptPulseMode(obj->adcHandle[1], ADC_PULSE_END_OF_CONV); // set priority of SOCs ADC_setSOCPriority(obj->adcHandle[0], ADC_PRI_ALL_HIPRI); ADC_setSOCPriority(obj->adcHandle[1], ADC_PRI_ALL_HIPRI); // enable the ADCs ADC_enableConverter(obj->adcHandle[0]); ADC_enableConverter(obj->adcHandle[1]); // delay to allow ADCs to power up SysCtl_delay(1000U); //------------------------------------------------------------------------- #if defined(MOTOR1_ISBLDC) // configure the interrupt sources // Interrupt for motor 1 ADC_setInterruptSource(MTR1_ADC_INT_BASE, MTR1_ADC_INT_NUM, MTR1_ADC_INT_SOC); // Idc 1st ADC_setupSOC(MTR1_IDC1_ADC_BASE, MTR1_IDC1_ADC_SOC_NUM, MTR1_IDC_TRIGGER_SOC, MTR1_IDC1_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCA_SOC0 ADC_setupPPB(MTR1_IDC1_ADC_BASE, MTR1_IDC1_ADC_PPB_NUM, MTR1_IDC1_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IDC1_ADC_BASE, MTR1_IDC1_ADC_PPB_NUM, 0); // Idc 2nd ADC_setupSOC(MTR1_IDC2_ADC_BASE, MTR1_IDC2_ADC_SOC_NUM, MTR1_IDC_TRIGGER_SOC, MTR1_IDC2_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCC_SOC0 ADC_setupPPB(MTR1_IDC2_ADC_BASE, MTR1_IDC2_ADC_PPB_NUM, MTR1_IDC2_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IDC2_ADC_BASE, MTR1_IDC2_ADC_PPB_NUM, 0); // VSEN_A_M1 ADC_setupSOC(MTR1_VU_ADC_BASE, MTR1_VU_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_VU_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // VSEN_B_M1 ADC_setupSOC(MTR1_VV_ADC_BASE, MTR1_VV_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_VV_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // VSEN_C_M1 ADC_setupSOC(MTR1_VW_ADC_BASE, MTR1_VW_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_VW_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // VSEN_DCBUS_M1-->Trig Interrupt ADC_setupSOC(MTR1_VDC_ADC_BASE, MTR1_VDC_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_VDC_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); #if defined(CMD_POT_EN) || defined(DRV8329AEVM_REVA) // POT_M1 ADC_setupSOC(MTR1_POT_ADC_BASE, MTR1_POT_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_POT_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); #endif // CMD_POT_EN | DRV8329AEVM_REVA #else // !MOTOR1_ISBLDC // configure the SOCs for M1 #if defined(MOTOR1_DCLINKSS) // configure the interrupt sources // Interrupt for motor 1 ADC_setInterruptSource(MTR1_ADC_INT_BASE, MTR1_ADC_INT_NUM, MTR1_ADC_INT_SOC); // Idc 1st ADC_setupSOC(MTR1_IDC1_ADC_BASE, MTR1_IDC1_ADC_SOC_NUM, MTR1_IDC1_TRIGGER_SOC, MTR1_IDC1_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCA_SOC0 ADC_setupPPB(MTR1_IDC1_ADC_BASE, MTR1_IDC1_ADC_PPB_NUM, MTR1_IDC1_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IDC1_ADC_BASE, MTR1_IDC1_ADC_PPB_NUM, 0); // Idc 2nd ADC_setupSOC(MTR1_IDC2_ADC_BASE, MTR1_IDC2_ADC_SOC_NUM, MTR1_IDC2_TRIGGER_SOC, MTR1_IDC2_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCC_SOC0 ADC_setupPPB(MTR1_IDC2_ADC_BASE, MTR1_IDC2_ADC_PPB_NUM, MTR1_IDC2_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IDC2_ADC_BASE, MTR1_IDC2_ADC_PPB_NUM, 0); // Idc 3rd ADC_setupSOC(MTR1_IDC3_ADC_BASE, MTR1_IDC3_ADC_SOC_NUM, MTR1_IDC3_TRIGGER_SOC, MTR1_IDC3_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCA_SOC0 ADC_setupPPB(MTR1_IDC3_ADC_BASE, MTR1_IDC3_ADC_PPB_NUM, MTR1_IDC3_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IDC3_ADC_BASE, MTR1_IDC3_ADC_PPB_NUM, 0); // Idc 4th ADC_setupSOC(MTR1_IDC4_ADC_BASE, MTR1_IDC4_ADC_SOC_NUM, MTR1_IDC4_TRIGGER_SOC, MTR1_IDC4_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCC_SOC0 ADC_setupPPB(MTR1_IDC4_ADC_BASE, MTR1_IDC4_ADC_PPB_NUM, MTR1_IDC4_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IDC4_ADC_BASE, MTR1_IDC4_ADC_PPB_NUM, 0); #else // !(MOTOR1_DCLINKSS) // configure the interrupt sources // Interrupt for motor 1 ADC_setInterruptSource(MTR1_ADC_INT_BASE, MTR1_ADC_INT_NUM, MTR1_ADC_INT_SOC); // ISEN_A_M1 ADC_setupSOC(MTR1_IU_ADC_BASE, MTR1_IU_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_IU_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCA_SOC0 ADC_setupPPB(MTR1_IU_ADC_BASE, MTR1_IU_ADC_PPB_NUM, MTR1_IU_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IU_ADC_BASE, MTR1_IU_ADC_PPB_NUM, 0); // ISEN_B_M1 ADC_setupSOC(MTR1_IV_ADC_BASE, MTR1_IV_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_IV_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCC_SOC0 ADC_setupPPB(MTR1_IV_ADC_BASE, MTR1_IV_ADC_PPB_NUM, MTR1_IV_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IV_ADC_BASE, MTR1_IV_ADC_PPB_NUM, 0); // ISEN_C_M1 ADC_setupSOC(MTR1_IW_ADC_BASE, MTR1_IW_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_IW_ADC_CH_NUM, MTR1_ADC_I_SAMPLEWINDOW); // Configure PPB to eliminate subtraction related calculation // PPB is associated with ADCA_SOC0 ADC_setupPPB(MTR1_IW_ADC_BASE, MTR1_IW_ADC_PPB_NUM, MTR1_IW_ADC_SOC_NUM); // Write zero to this for now till offset calibration complete ADC_setPPBCalibrationOffset(MTR1_IW_ADC_BASE, MTR1_IW_ADC_PPB_NUM, 0); #endif // !(MOTOR1_DCLINKSS) #if defined(MOTOR1_FAST) || defined(MOTOR1_ISBLDC) // VSEN_A_M1 ADC_setupSOC(MTR1_VU_ADC_BASE, MTR1_VU_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_VU_ADC_CH_NUM, MTR1_ADC_V_SAMPLEWINDOW); // VSEN_B_M1 ADC_setupSOC(MTR1_VV_ADC_BASE, MTR1_VV_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_VV_ADC_CH_NUM, MTR1_ADC_V_SAMPLEWINDOW); // VSEN_C_M1 ADC_setupSOC(MTR1_VW_ADC_BASE, MTR1_VW_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_VW_ADC_CH_NUM, MTR1_ADC_V_SAMPLEWINDOW); #endif // MOTOR1_FAST || MOTOR1_ISBLDC // VSEN_DCBUS_M1-->Trig Interrupt ADC_setupSOC(MTR1_VDC_ADC_BASE, MTR1_VDC_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_VDC_ADC_CH_NUM, MTR1_ADC_V_SAMPLEWINDOW); #if defined(CMD_POT_EN) || defined(DRV8329AEVM_REVA) // POT_M1 ADC_setupSOC(MTR1_POT_ADC_BASE, MTR1_POT_ADC_SOC_NUM, MTR1_ADC_TRIGGER_SOC, MTR1_POT_ADC_CH_NUM, MTR1_ADC_V_SAMPLEWINDOW); #endif // CMD_POT_EN | DRV8329AEVM_REVA #endif // !MOTOR1_ISBLDC return; } // end of HAL_setupADCs() function