Part Number: TMS320C6655
How to handle multiple gpio pin interrupts in TMS320C6655 processor at rising edge simultaneously so that one interrupt would not affect other isr?
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.
Part Number: TMS320C6655
How to handle multiple gpio pin interrupts in TMS320C6655 processor at rising edge simultaneously so that one interrupt would not affect other isr?
Hi,
How to handle multiple gpio pin interrupts in TMS320C6655 processor at rising edge simultaneously so that one interrupt would not affect other isr?
Within a GPIO bank, simultaneous pin events are latched in SET_RIS_TRIG as a bitmask and generate a single bank interrupt; the ISR must decode and service each pin in software. Across banks, each bank issues a separate interrupt via the CIC, and the C66x CorePac resolves simultaneous arrivals using fixed priority (INT4 highest). Lower-priority interrupts remain pending and are serviced after the active ISR completes (no default nesting).
You can also refer the following files in the sdk for the interrupt configurations:
pdk_c665x_2_0_16/packages/ti/csl/cslr_gpio.h
pdk_c665x_2_0_16/packages/ti/csl/csl_gpioAux.h
pdk_c665x_2_0_16/packages/ti/csl/example/gpio/gpio_interrupt/main.c
pdk_c665x_2_0_16/packages/ti/csl/soc/c6657/src/csl_device_interrupt.h
pdk_c665x_2_0_16/packages/ti/csl/soc/c6657/src/csl_gpioGetBaseAddress.c
Regards,
Shabary S Sundar
Hi Fartine,
Hi betsy,
Does GPIO pin 16 comes under bank 1?. Does SET_RIS_TRIG can be used to latch both primary and secondary GPIO pins? Should I use single isr function to service all the pin interrupts?
Regards,
Fartine.
Hi Fartine,
Does GPIO pin 16 comes under bank 1?
Yes, The GPIO pin 16 comes under Bank 1.
Please Refer : https://e2e.ti.com/support/processors-group/processors/f/processors-forum/311851/c6657-gpio16-31-interrupt

Does SET_RIS_TRIG can be used to latch both primary and secondary GPIO pins?
Please Refer : https://www.ti.com/lit/ug/sprugv1/sprugv1.pdf?

The SET_RIS_TRIG register provides per-pin configuration where each bit corresponds to a GPn pin. Therefore, rising edge detection can be enabled independently for all GPIO pins across both Banks.
Please Refer the SDK code : pdk_c665x_2_0_16/packages/ti/csl/src/ip/gpio/V0/cslr_gpio.h

Should I use single isr function to service all the pin interrupts?