Handling multiple interrupts on MSP430

I have a module communicating with my MSP and it generates two interrupts at the same time .. an external interrupt on P2.6...and a RX interrupt on the MSP430F548's UCA3 uart module

the external interrupt is caused by its Ring indicator line and the RX interrupt by its TX line indicating it has some data that has to be read...

also i need both the interrupts..

my MSP is facing problems while handling these two together...can anyone please suggest what the problem might be..?

PS: can anyone provide me a link to an application note that describes multiple interrupt handling of the MSP430 properly..

any help will be highly appreciated..

  • chetan shah

    I have a module communicating with my MSP and it generates two interrupts at the same time .. an external interrupt on P2.6...and a RX interrupt on the MSP430F548's UCA3 uart module

    the external interrupt is caused by its Ring indicator line and the RX interrupt by its TX line indicating it has some data that has to be read...

    also i need both the interrupts..

    my MSP is facing problems while handling these two together...can anyone please suggest what the problem might be..?

    Additional detail is needed to better understand the issues  you are having.  Would you describe what issues you are having?

    Are these interrupt conditions related?

     

    chetan shah

    PS: can anyone provide me a link to an application note that describes multiple interrupt handling of the MSP430 properly..

    I don't believe there is any specific application note indicating how to handle the interrupts.

  • In reply to BrandonAzbell:

    Normally, there should be no problem at all for F54xx to handle RX, TX, and RI interrupts of an UART. It probably can handle a lot more interrupts.

    But it depends on the requirements and how you write the code.

    Each interrupt usually has a time limit of how soon you need to service it. The CPU can only do one think at a time. If interrupt is enabled, it can drop what it is doing at that time and start to service an interrupt (with a small overhead). But if interrupt is disabled, it has to continue executing the current code and the interrupt has to wait (until interrupt is enabled). Thus it is possible that the waiting exceeds the time limit of servicing that interrupt.

    What is your MCLK frequency?

    What baudrate are you using?

    What is the minimum time between two consecutive RI interrupts?

    What is the maximum execution time for your RX interrupt Seville?

    What is the maximum execution time for your RI interrupt Seville?

    What is the maximum time duration you disable interrupts elsewhere?

  • The app note is SLAA294, MSP430 Software Coding Techniques, and it is only 7 pages long. Page two is the answere to your ISR requirements. It explains it better than I can (pictures).[:)]