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.

Interrupts on 28034?

I am working on the design of a board using the 28034 where I have 7 inputs that are interrupts. Reading through the "Piccolo System Control and Interrupts Reference Guide" (SPRUGL8C), I noticed that Figure 79 (page 120) shows the GPIO0~31 pins connecting to XINT1, XINT2 and XINT3 through 32-to-1 multiplexers.

Am I correct in thinking that the three interrupt  signals ,XINT1~3, are "normally" connected to GPIO12, 16 and 17? SPRUGL8C seems to indicate that only 3 of the 96 interrupts can come from the GPIO pins.

Thanks in advance.

Phil

  • Hi Phil,

    You are correct in that there are separate 32-to-1 muxes for each XINT (XINT1-3).  This allows you to choose any three individual GPIO (GPIO00-GPIO31) as an interrupt source.

    However they are not 'normally' connected to GPIO12, 16, and 17.  Where did you see the info about GPIO12, 16, and 17?  Instead, the default values of the various GPIOXINTnSEL registers is 0.  This means that GPIO00 is the default selection for each of the three XINTs (assuming the XINTn is enabled). 

    If you're looking for 4 more places where you can have an external signal drive an interrupt, I might suggest looking at the trip-zone submodule of the ePWM peripheral (if you have unused ePWM modules and unused TZ pins in your system), the eCAP peripheral, and the eQEP as potential options.  In each, getting things to work may not be as straightforward as with the XINTn provisions, but it may be possible depending on what you need done.

    Hopefully this helps.


    Thank you,
    Brett

  • Phil,

    The XINT1-3 are the only HW Interrupts that come from GPIO pins directly.  They can be assigned to any of the 1st 32 IOs as you have pointed out.  This assignment is independent of what function the GPIO has been assigned, whether it be IO or to a peripheral  I think the default is GPIO0, but I don't think that is what you are asking.

    I think the assignment really depends on what pins you have available after you have assigned your peripherals and what you want to do with the ISR.  The pins(12/16/17) you have mentioned have a dedicated Trip Zone action in one of their mux position that is independent of the XINT.  The TZ, when configured, will use an incoming edge on those pins to directly high Z selected PWM outputs.  So, if that is the needed action from one of your 7 external interrupts then you don't need to use an XINT for this.  Once configured the HW will take care if it automatically.

    If you need to do something else based on the incoming signal, that is where the XINT comes it, when received it will jump the processor to the assigned ISR so you can do whatever you need in SW, then jump back to the main program.

    If this is not enough, then we will need to either use an external multiplexer or simply use an IO and poll its state from time to time.  With that said, please don't hesitate to post what you want to do and we'll be happy to give our best suggestion.

    Matt

  • Thanks Brett and Matthew

    Based on your suggestions, I am using GPIO12, 16, and 17 (TZ1, 2, 3) for three of the interrupts and GPIO0, 1, 2, and 4 (EPWM1A, 1B, 2A, 3A) for the remaining four interrupts. I will work with our software people to ensure they can make this work.

    Thanks again.

    Phil