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/TMS320F28069: The default ADCINT1_ISR is triggered by no reason

Part Number: TMS320F28069
Other Parts Discussed in Thread: ADS131A04

Tool/software: Code Composer Studio

Hi there,

I came across a problem when using F28069. I connected this mcu to an external ADC chip ADS131A04 through spia. ADS131A04 indicates the ADC is done and triggers XINT2 in F28069 to retrieve data. However, during usage, sometimes the default isr ADCINT1_ISR was triggered, and I cannot find any reason. The register PieCtrlRegs.PIEIER1.bit.INTx1 = 0 and PieCtrlRegs.PIEIER10.bit.INTx1 = 0. Does anyone come across similar problem?

Thanks in advance!

Dan 

  • Dan,

    You can monitor the PIE Interrupt Flags to see which interrupt sources are active. You can also inspect the PIE Vector Table to see if ADCINT1_ISR may have been mapped to another interrupt source.

    -Tommy
  • Hi Tommy,

    I checked the flags PieCtrlRegs.PIEIFR1.bit.INTx1 = 0 and PieCtrlRegs.PIEIFR10.bit.INTx1 = 0. I also check the PIE Vector Table. ADCINT1_ISR is only mapped to PieVectTable.ADCINT1.

    PIE1_RESERVED void (*)() 0x000355AA 0x00000D00@Data

    PIE2_RESERVED void (*)() 0x00000000 0x00000D02@Data

    PIE3_RESERVED void (*)() 0x00000000 0x00000D04@Data

    PIE4_RESERVED void (*)() 0x003EFB2F 0x00000D06@Data

    PIE5_RESERVED void (*)() 0x003EFB2F 0x00000D08@Data

    PIE6_RESERVED void (*)() 0x003EFB2F 0x00000D0A@Data

    PIE7_RESERVED void (*)() 0x003EFB2F 0x00000D0C@Data

    PIE8_RESERVED void (*)() 0x003EFB2F 0x00000D0E@Data

    PIE9_RESERVED void (*)() 0x003EFB2F 0x00000D10@Data

    PIE10_RESERVED void (*)() 0x003EFB2F 0x00000D12@Data

    PIE11_RESERVED void (*)() 0x003EFB2F 0x00000D14@Data

    PIE12_RESERVED void (*)() 0x003EFB2F 0x00000D16@Data

    PIE13_RESERVED void (*)() 0x003EFB2F 0x00000D18@Data

    TINT1 void (*)() 0x003F1DE8 0x00000D1A@Data

    TINT2 void (*)() 0x003F1DFA 0x00000D1C@Data

    DATALOG void (*)() 0x003EF7BC 0x00000D1E@Data

    RTOSINT void (*)() 0x003EF7C6 0x00000D20@Data

    EMUINT void (*)() 0x003EF7D0 0x00000D22@Data

    NMI void (*)() 0x003EF7DA 0x00000D24@Data

    ILLEGAL void (*)() 0x003EF7E4 0x00000D26@Data

    USER1 void (*)() 0x003EF7EE 0x00000D28@Data

    USER2 void (*)() 0x003EF7F8 0x00000D2A@Data

    USER3 void (*)() 0x003EF802 0x00000D2C@Data

    USER4 void (*)() 0x003EF80C 0x00000D2E@Data

    USER5 void (*)() 0x003EF816 0x00000D30@Data

    USER6 void (*)() 0x003EF820 0x00000D32@Data

    USER7 void (*)() 0x003EF82A 0x00000D34@Data

    USER8 void (*)() 0x003EF834 0x00000D36@Data

    USER9 void (*)() 0x003EF83E 0x00000D38@Data

    USER10 void (*)() 0x003EF848 0x00000D3A@Data

    USER11 void (*)() 0x003EF852 0x00000D3C@Data

    USER12 void (*)() 0x003EF85C 0x00000D3E@Data

    ADCINT1 void (*)() 0x003EF866 0x00000D40@Data   And 0x003EF866 is address for ADCINT1_ISR

    ADCINT2 void (*)() 0x003EF870 0x00000D42@Data

    rsvd1_3 void (*)() 0x003EFB39 0x00000D44@Data

    XINT1 void (*)() 0x003F18B3 0x00000D46@Data

    XINT2 void (*)() 0x003F0B6E 0x00000D48@Data

    ADCINT9 void (*)() 0x003EF88E 0x00000D4A@Data

    TINT0 void (*)() 0x003F1D93 0x00000D4C@Data

    WAKEINT void (*)() 0x003EF8A2 0x00000D4E@Data

    EPWM1_TZINT void (*)() 0x003EF8AC 0x00000D50@Data

    EPWM2_TZINT void (*)() 0x003EF8B6 0x00000D52@Data

    EPWM3_TZINT void (*)() 0x003EF8C0 0x00000D54@Data

    EPWM4_TZINT void (*)() 0x003EF8CA 0x00000D56@Data

    EPWM5_TZINT void (*)() 0x003EF8D4 0x00000D58@Data

    EPWM6_TZINT void (*)() 0x003EF8DE 0x00000D5A@Data

    EPWM7_TZINT void (*)() 0x003EF8E8 0x00000D5C@Data

    EPWM8_TZINT void (*)() 0x003EF8F2 0x00000D5E@Data

    EPWM1_INT void (*)() 0x003EF8FC 0x00000D60@Data

    EPWM2_INT void (*)() 0x003EF906 0x00000D62@Data

    EPWM3_INT void (*)() 0x003EF910 0x00000D64@Data

    EPWM4_INT void (*)() 0x003EF91A 0x00000D66@Data

    EPWM5_INT void (*)() 0x003EF924 0x00000D68@Data

    EPWM6_INT void (*)() 0x003EF92E 0x00000D6A@Data

    EPWM7_INT void (*)() 0x003EF938 0x00000D6C@Data

    EPWM8_INT void (*)() 0x003EF942 0x00000D6E@Data

    ECAP1_INT void (*)() 0x003EF94C 0x00000D70@Data

    ECAP2_INT void (*)() 0x003EF956 0x00000D72@Data

    ECAP3_INT void (*)() 0x003EF960 0x00000D74@Data

    rsvd4_4 void (*)() 0x003EFB39 0x00000D76@Data

    rsvd4_5 void (*)() 0x003EFB39 0x00000D78@Data

    rsvd4_6 void (*)() 0x003EFB39 0x00000D7A@Data

    HRCAP1_INT void (*)() 0x003EF96A 0x00000D7C@Data

    HRCAP2_INT void (*)() 0x003EF974 0x00000D7E@Data

    EQEP1_INT void (*)() 0x003EF97E 0x00000D80@Data

    EQEP2_INT void (*)() 0x003EF988 0x00000D82@Data

    rsvd5_3 void (*)() 0x003EFB39 0x00000D84@Data

    HRCAP3_INT void (*)() 0x003EF992 0x00000D86@Data

    HRCAP4_INT void (*)() 0x003EF99C 0x00000D88@Data

    rsvd5_6 void (*)() 0x003EFB39 0x00000D8A@Data

    rsvd5_7 void (*)() 0x003EFB39 0x00000D8C@Data

    USB0_INT void (*)() 0x003EF9A6 0x00000D8E@Data

    SPIRXINTA void (*)() 0x003F2C17 0x00000D90@Data

    SPITXINTA void (*)() 0x003F2C02 0x00000D92@Data

    SPIRXINTB void (*)() 0x003EF9C4 0x00000D94@Data

    SPITXINTB void (*)() 0x003EF9BA 0x00000D96@Data

    MRINTA void (*)() 0x003EF9D8 0x00000D98@Data

    MXINTA void (*)() 0x003EF9E2 0x00000D9A@Data

    rsvd6_7 void (*)() 0x003EFB39 0x00000D9C@Data

    rsvd6_8 void (*)() 0x003EFB39 0x00000D9E@Data

    DINTCH1 void (*)() 0x003EF9EC 0x00000DA0@Data

    DINTCH2 void (*)() 0x003EF9F6 0x00000DA2@Data

    DINTCH3 void (*)() 0x003EFA00 0x00000DA4@Data

    DINTCH4 void (*)() 0x003EFA0A 0x00000DA6@Data

    DINTCH5 void (*)() 0x003EFA14 0x00000DA8@Data

    DINTCH6 void (*)() 0x003EFA1E 0x00000DAA@Data

    rsvd7_7 void (*)() 0x003EFB39 0x00000DAC@Data

    rsvd7_8 void (*)() 0x003EFB39 0x00000DAE@Data

    I2CINT1A void (*)() 0x003F29B3 0x00000DB0@Data

    I2CINT2A void (*)() 0x003EFA32 0x00000DB2@Data

    rsvd8_3 void (*)() 0x003EFB39 0x00000DB4@Data

    rsvd8_4 void (*)() 0x003EFB39 0x00000DB6@Data

    rsvd8_5 void (*)() 0x003EFB39 0x00000DB8@Data

    rsvd8_6 void (*)() 0x003EFB39 0x00000DBA@Data

    rsvd8_7 void (*)() 0x003EFB39 0x00000DBC@Data

    rsvd8_8 void (*)() 0x003EFB39 0x00000DBE@Data

    SCIRXINTA void (*)() 0x003F296A 0x00000DC0@Data

    SCITXINTA void (*)() 0x003F2955 0x00000DC2@Data

    SCIRXINTB void (*)() 0x003EFA50 0x00000DC4@Data

    SCITXINTB void (*)() 0x003EFA5A 0x00000DC6@Data

    ECAN0INTA void (*)() 0x003EFA64 0x00000DC8@Data

    ECAN1INTA void (*)() 0x003EFA6E 0x00000DCA@Data

    rsvd9_7 void (*)() 0x003EFB39 0x00000DCC@Data

    rsvd9_8 void (*)() 0x003EFB39 0x00000DCE@Data

    rsvd10_1 void (*)() 0x003EFB39 0x00000DD0@Data

    rsvd10_2 void (*)() 0x003EFB39 0x00000DD2@Data

    ADCINT3 void (*)() 0x003EFA78 0x00000DD4@Data

    ADCINT4 void (*)() 0x003EFA82 0x00000DD6@Data

    ADCINT5 void (*)() 0x003EFA8C 0x00000DD8@Data

    ADCINT6 void (*)() 0x003EFA96 0x00000DDA@Data

    ADCINT7 void (*)() 0x003EFAA0 0x00000DDC@Data

    ADCINT8 void (*)() 0x003EFAAA 0x00000DDE@Data

    CLA1_INT1 void (*)() 0x003F25E0 0x00000DE0@Data

    CLA1_INT2 void (*)() 0x003F25F1 0x00000DE2@Data

    CLA1_INT3 void (*)() 0x003F2602 0x00000DE4@Data

    CLA1_INT4 void (*)() 0x003F2613 0x00000DE6@Data

    CLA1_INT5 void (*)() 0x003F2624 0x00000DE8@Data

    CLA1_INT6 void (*)() 0x003F2635 0x00000DEA@Data

    CLA1_INT7 void (*)() 0x003F2646 0x00000DEC@Data

    CLA1_INT8 void (*)() 0x003F2657 0x00000DEE@Data

    XINT3 void (*)() 0x003EFB04 0x00000DF0@Data

    rsvd12_2 void (*)() 0x003EFB39 0x00000DF2@Data

    rsvd12_3 void (*)() 0x003EFB39 0x00000DF4@Data

    rsvd12_4 void (*)() 0x003EFB39 0x00000DF6@Data

    rsvd12_5 void (*)() 0x003EFB39 0x00000DF8@Data

    rsvd12_6 void (*)() 0x003EFB39 0x00000DFA@Data

    LVF void (*)() 0x003EFB0E 0x00000DFC@Data

    LUF void (*)() 0x003EFB18 0x00000DFE@Data

  • Dan,

    I just want to double check, when disabling ADCINT1 in PIE group 1 you used EALLOW and EDIS for protected register access:

    asm(" EALLOW");
    PieCtrlRegs.PIEIER1.bit.INTx1 = 0;
    asm(" EDIS");

    - Ken
  • Hi Ken,

    Yes, when I changed the values of control register, I used EALLOW and EDIS.
  • Dan,

    Just wondering if you are using nested interrupts? In any case, please see the F2806x Silicon Errata at:

    www.ti.com/lit/sprz342

    See section 4.1 on page 3. You will also find a workaround on that page.

    I hope this helps. If this answers your question, please click the green "Verified Answer" button. Thanks.

    - Ken
  • Dan,

    It's been a while since we have heard from you last. Therefore, we are assuming you were able to resolve your issue. If this isn’t the case, please reject this resolution or reply to this thread. If this thread locks, please make a new thread describing the current status of your issue. Thank you.

    - Ken