05-26-2017 07:59 AM
Hi to all,
In order to reduce complexity I'd like to be able to send interrupts from PL logic directly bypassing the GPIO.
So far it doesn’t work for me. The block diagram is attached. For interrupt signal verification it includes ILA. The interrupter is a 16-bit counter sending a pulse once over the counting cycle. The clock frequency is 1 MHz.
My system is buit on the Digilent Zybo board in a standalone mode, Vivado 2016.4, no erros or meaningful warnings.
Software is taken from the Zynq Book Training files, however, instead of XGPIO I use XScuGic:
XGpio_InterruptEnable(GpioInstancePtr, 1); =è
XScuGic_Enable(IntcInstancePtr, INTC_INTERRUPT_ID);
The INTERRUPT_ID parameter is taken from xparameter.h line #define XPAR_FABRIC_INT_CNT_0_INTR_INTR 61
The InterruptHandler routine does nothing but increments interrupt counter value. The main checks the count and quits when it's over 50.
In the debugging mode all initialization went without errors and the program was in state of waiting for the interrupt.
Hope someone will be able to guide me.
Thanks
05-30-2017 12:16 PM
I made it to work after adding a line:
XScuGic_SetPriorityTriggerType(IntcInstancePtr, INTC_INTERRUPT_ID,0x00, 0x3);
to the SetupInterruptSystem subroutine.
The question may e cosidered answered and closed.
05-29-2017 09:29 PM
Hi,
Could you make sure the intr port of Interruptor_0 block is of type intr?
Check in port's properties.
Regards
Praveen
05-30-2017 11:39 AM
Hi Praveen,
Thank you for response.
Based on the attached snapshot of the pin properties the type is intr as you suggested.
Anything else to check?
05-30-2017 12:16 PM
I made it to work after adding a line:
XScuGic_SetPriorityTriggerType(IntcInstancePtr, INTC_INTERRUPT_ID,0x00, 0x3);
to the SetupInterruptSystem subroutine.
The question may e cosidered answered and closed.