Hello,
We have a 10k pot hooked up to pin6 (ADCINB3) of the BoosterPack Headers. The ADC is working properly and reading values from 0 - 4095. However, once we enable the motor flag and have the motor spinning there is an issue. As we increase the ADC value the motor current starts to spike and the system goes unstable. Any ideas?
the last section of both hal.c and hal,h in the snippets below are where we are having the issue (Throttle/ADC_SOC_NUMBER8)
//hal.c // configure the interrupt sources // configure the ample window to 15 system clock cycle wide by assigning 14 // to the ACQPS of ADCSOCxCTL Register. // RB2/B1 ADC_setInterruptSource(obj->adcHandle[1], ADC_INT_NUMBER1, ADC_SOC_NUMBER2); // configure the SOCs for hvkit_rev1p1 // ISENA - PGA5->A14->RA0 //JFA Stock //ADC_setupSOC(obj->adcHandle[0], ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM6_SOCA, //ADC_CH_ADCIN14, HAL_ADC_SAMPLE_WINDOW); ADC_setupSOC(obj->adcHandle[0], ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM6_SOCA, //JFA ADC_CH_ADCIN9, HAL_ADC_SAMPLE_WINDOW); // ISENB - PGA3->C7->RC0 //JFA Stock //ADC_setupSOC(obj->adcHandle[2], ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM6_SOCA, //ADC_CH_ADCIN7, HAL_ADC_SAMPLE_WINDOW); ADC_setupSOC(obj->adcHandle[2], ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM6_SOCA, //JFA ADC_CH_ADCIN0, HAL_ADC_SAMPLE_WINDOW); // ISENC - PGA1->B7->RB0 //JFA Stock //ADC_setupSOC(obj->adcHandle[1], ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM6_SOCA, //ADC_CH_ADCIN7, HAL_ADC_SAMPLE_WINDOW); ADC_setupSOC(obj->adcHandle[1], ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM6_SOCA, //JFA ADC_CH_ADCIN2, HAL_ADC_SAMPLE_WINDOW); // VSENA - A5->RA1 ADC_setupSOC(obj->adcHandle[0], ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM6_SOCA, ADC_CH_ADCIN5, HAL_ADC_SAMPLE_WINDOW); // VSENB - B0->RB1 ADC_setupSOC(obj->adcHandle[1], ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM6_SOCA, ADC_CH_ADCIN0, HAL_ADC_SAMPLE_WINDOW); // VSENC - C2->RC1 ADC_setupSOC(obj->adcHandle[2], ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM6_SOCA, ADC_CH_ADCIN2, HAL_ADC_SAMPLE_WINDOW); // VSENVM - B1->RB2. hvkit board has capacitor on Vbus feedback, so // the sampling doesn't need to be very long to get an accurate value ADC_setupSOC(obj->adcHandle[1], ADC_SOC_NUMBER2, ADC_TRIGGER_EPWM6_SOCA, ADC_CH_ADCIN1, HAL_ADC_SAMPLE_WINDOW); //Added to measure external input from MSP430 driving speed //JFA ADC_setupSOC(obj->adcHandle[1], ADC_SOC_NUMBER8, ADC_TRIGGER_EPWM6_SOCA, ADC_CH_ADCIN3, HAL_ADC_SAMPLE_WINDOW); //hal.h // convert phase A current ->RA0/A14 value = (float32_t)ADC_readResult(obj->adcResult[0], ADC_SOC_NUMBER0); pADCData->I_A.value[0] = value * current_sf; // convert phase B current ->RC0/C7 value = (float32_t)ADC_readResult(obj->adcResult[2], ADC_SOC_NUMBER0); pADCData->I_A.value[1] = value * current_sf; // convert phase C current ->RB0/B7 value = (float32_t)ADC_readResult(obj->adcResult[1], ADC_SOC_NUMBER0); pADCData->I_A.value[2] = value * current_sf; // convert phase A voltage ->RA1/A5 value = (float32_t)ADC_readResult(obj->adcResult[0], ADC_SOC_NUMBER1); pADCData->V_V.value[0] = value * voltage_sf; // convert phase B voltage ->RB1/B0 value = (float32_t)ADC_readResult(obj->adcResult[1], ADC_SOC_NUMBER1); pADCData->V_V.value[1] = value * voltage_sf; // convert phase C voltage ->RC1/C2 value = (float32_t)ADC_readResult(obj->adcResult[2], ADC_SOC_NUMBER1); pADCData->V_V.value[2] = value * voltage_sf; // convert dcBus voltage ->RB2/B1 value = (float32_t)ADC_readResult(obj->adcResult[1], ADC_SOC_NUMBER2); pADCData->dcBus_V = value * voltage_sf; // Measure Speed Input ->RB2/B1 //JFA value = (float32_t)ADC_readResult(obj->adcResult[1], ADC_SOC_NUMBER8); pADCData->Throttle = value;