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.

TMS320F2812: How to convert a specific GPIO pin to an input interrupt

Part Number: TMS320F2812

Hi,

I have three specific GPIO pins (bits) configured as debug pins - T2PWM_GPIOA7 (bit 7 of GPIO A), T1PWM_GPIOA6 (bit 7 of GPIO A) and T4CTRIP_SOCB_GPIOD6 (bit 6 of GPIO D).

My intention is to convert ANY one of them into an input interrupt. I understand how I can convert these pins into inputs (pull-down resistors are connected). But I do not understand, for the TMS320F2812 controller, HOW to convert them to interrupt pins

My goal is to connect this TI DSP to another piggyback controller which contains a SYNC signal which will be the interrupt provider signal. (this line is less important but I wrote it to get an overall picture of the puzzle). 
The constraint is I do not have other GPIO pins left for configuring them as interrupts. 

Kind Regards,
Raghu

  • Hi Raghu,

    Did you try configuring the External Interrupt Control Registers XINTxCR?

    Regards,
    Gautam
  • Raghu:
    Reference: processors.wiki.ti.com/.../C2000_Archived_Workshops (2812 multi-day workshop)

    Chapter 5 of the Student Guide goes into GPIO pins. On later devices, GPIO were routed to interrupts, but not on this device. There are some external interrupts, XINT1, XINT2, and XNMI_XINT13 that can be used, but you would need to physically wire them to your particular I/O's. (Somebody please correct me if I am wrong!)

    Is there any way you can move from the 2812 to a newer device??
  • The answer to your question is NO. I did not try to configure the External Interrupt control registers.

    But as I see it, there are three XINT pins and only one is free (GPIOE2/XNMI_XINT13) but that's a non-maskable interrupt. The other XINT interrupts are already in use :(

  • Since after asking the question and doing a little more reading, I think I can just use the XINT13 pin as an input interrupt directly, instead of connecting it to another I/O pin. Please correct me if this understanding is wrong.

    But what I don't yet understand is how to make XINT13 a "standard" interrupt and not a non-maskable interrupt? Another question is related to the CPU_timer being MUXed with the interrupt. Will there be a problem with these two signals interfering while I still handle the ISR of the interrupt??  Can you please help me understand how I can go about this???


    Thank you :)

  • Reference: TMS320x281x DSP System Control and Interrupts Reference Guide SPRU078G
    April 2002 − Revised August 2012

    Take a look at the existing code for the XINT1 and XINT2 interrupts - you will need to set up similar registers for the XNMI_XINT13 interrupt.

    Hopefully, you are not using the NMI (looks like you were not).

    Not much more that I can offer at this point...
  • Just one question. Where can i find the "existing code" for XINT1 or 2? I searched around but maybe I did not look for the right keyword. Thank you again :) 

    Kind Regards,

    Raghu