This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320F280041C: INSTASpin doesn`t trigger mainISR

Part Number: TMS320F280041C
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

Greetings! I`m using your INSTASpin library for a very first time. I`ve started to make change so I can adjust my hardware. So I changed the ADC senction to this:

void HAL_setupADCs(HAL_Handle handle)
{
  HAL_Obj *obj = (HAL_Obj *)handle;

  SysCtl_delay(100U);
  ADC_setVREF(obj->adcHandle[2], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V);
  ADC_setVREF(obj->adcHandle[1], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V);
  ADC_setVREF(obj->adcHandle[0], ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V);
  SysCtl_delay(100U);

  /*
  // Configure internal reference as 1.65*2 = 3.3
  ASysCtl_setAnalogReference1P65(ASYSCTL_VREFHIA |
                                 ASYSCTL_VREFHIB |
                                 ASYSCTL_VREFHIC);

  // Enable internal voltage reference
  ASysCtl_setAnalogReferenceInternal(ASYSCTL_VREFHIA |
                                     ASYSCTL_VREFHIB |
                                     ASYSCTL_VREFHIC);
*/
  // 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);
  ADC_setPrescaler(obj->adcHandle[2], 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);
  ADC_setInterruptPulseMode(obj->adcHandle[2], ADC_PULSE_END_OF_CONV);

  // enable the ADCs
  ADC_enableConverter(obj->adcHandle[0]);
  ADC_enableConverter(obj->adcHandle[1]);
  ADC_enableConverter(obj->adcHandle[2]);

  // set priority of SOCs
  ADC_setSOCPriority(obj->adcHandle[0], ADC_PRI_ALL_HIPRI);
  ADC_setSOCPriority(obj->adcHandle[1], ADC_PRI_ALL_HIPRI);
  ADC_setSOCPriority(obj->adcHandle[2], ADC_PRI_ALL_HIPRI);

  // delay to allow ADCs to power up
  SysCtl_delay(1000U);

  // configure the interrupt sources
  // configure the ample window to 15 system clock cycle wide by assigning 14
  // to the ACQPS of ADCSOCxCTL Register.
  // RC2/C1


  // configure the SOCs for hvkit_rev1p1
  // IA-FB - B3->RB0
  /*ADC_TRIGGER_EPWM1_SOCA*/
  ADC_setupSOC(obj->adcHandle[1], ADC_SOC_NUMBER0, ADC_TRIGGER_SW_ONLY,
               ADC_CH_ADCIN7, HAL_ADC_SAMPLE_WINDOW);

  // IB-FB - C0->RC0
  ADC_setupSOC(obj->adcHandle[0], ADC_SOC_NUMBER0, ADC_TRIGGER_SW_ONLY,
               ADC_CH_ADCIN12, HAL_ADC_SAMPLE_WINDOW);

  // IC-FB - A3->RA0
  ADC_setupSOC(obj->adcHandle[1], ADC_SOC_NUMBER1, ADC_TRIGGER_SW_ONLY,
               ADC_CH_ADCIN10, HAL_ADC_SAMPLE_WINDOW);

  // ADC-Vhb1 - C2->RC1
  ADC_setupSOC(obj->adcHandle[2], ADC_SOC_NUMBER0, ADC_TRIGGER_SW_ONLY,
               ADC_CH_ADCIN9, HAL_ADC_SAMPLE_WINDOW);

  // ADC-Vhb2 - C1->RC2
  ADC_setupSOC(obj->adcHandle[0], ADC_SOC_NUMBER1, ADC_TRIGGER_SW_ONLY,
               ADC_CH_ADCIN14, HAL_ADC_SAMPLE_WINDOW);

  // ADC-Vhb3 - B4->RB1
  ADC_setupSOC(obj->adcHandle[0], ADC_SOC_NUMBER2, ADC_TRIGGER_SW_ONLY,
               ADC_CH_ADCIN15, HAL_ADC_SAMPLE_WINDOW);

  // VDCBUS - A9->RA1. 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[2], ADC_SOC_NUMBER1, ADC_TRIGGER_SW_ONLY,
               ADC_CH_ADCIN11, HAL_ADC_SAMPLE_WINDOW);

  ADC_setupSOC(obj->adcHandle[0], ADC_SOC_NUMBER3, ADC_TRIGGER_SW_ONLY,
               ADC_CH_ADCIN10, HAL_ADC_SAMPLE_WINDOW);

  ADC_setInterruptSource(obj->adcHandle[2], ADC_INT_NUMBER1, ADC_SOC_NUMBER0);
  //ADC_enableInterrupt(obj->adcHandle[0], ADC_INT_NUMBER1);
 // ADC_clearInterruptStatus(obj->adcHandle[0], ADC_INT_NUMBER1);
  return;
} // end of HAL_setupADCs() function

void HAL_enableADCInts(HAL_Handle handle)
{
    HAL_Obj *obj = (HAL_Obj *)handle;

    // enable the PIE interrupts associated with the ADC interrupts
    Interrupt_enable(INT_ADCC1);        //C1

    // enable the ADC interrupts
    ADC_enableInterrupt(obj->adcHandle[2], ADC_INT_NUMBER1);
    ADC_clearInterruptStatus(obj->adcHandle[2], ADC_INT_NUMBER1);

    // enable the cpu interrupt for ADC interrupts
    Interrupt_enableInCPU(INTERRUPT_CPU_INT1);

#ifdef _VSF_EN_
    // enable the cpu timer 0 interrupt for FAST estimator
    Interrupt_enable(INT_TIMER0);
#endif  // _VSF_EN_

    return;
} // end of HAL_enableADCInts() function

]

The problem is the mainISR doesn`t trigger. My ADC channels are working. I`ve checked with manually trigering(ADC_forceSOC(hal.adcHandle[0], ADC_SOC_NUMBER0);). The ADC counter is counting. The INT1 is enabled in the registers. The flag is cleared. The ADC interrupt is enabled in the ADCINTSEL register. The mainISR has been assigned to the INT_ADCC1. I`ve removed anything unnecessary  from the code.

Any suggestions?

THanks!