Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

AM5728: DSP: GPIO interrupt at 10MHz

$
0
0

Part Number:AM5728

Hi,

My DSP application need to process Interrupt on GPIO pin at 10MHz frequency. 

I am using Code Compressor studio for the project and with the help of debugger I am downloading the DSP bare metal application on C66x. The AM5728 EVM is halted in u-boot. The Gel scripts are configuring the DSP at 600MHz. I am stuck at a point where I am not able to process interrupts at more than 10 KHz when using debugger. 

The setup details are:

With the help of the external waveform generator I am giving square pulse (50% duty cycle) to GPIO port 3 pin 11.  This pin is configured as input pin and interrupt on rising edge. The interrupt ISR has only 4 instructions:

GPIO_disableInt(interrupt_pin);

GPIO_clearInt(interrupt_pin);

GPIO_toggle(debug_pin);  /* This is used for debug purpose */

GPIO_enableInt(interrupt_pin);

If i give external  square wave of frequency of 10KHz the program runs fine. It executes the ISR and comes to the main function to do the further processing. If I increase the external square wave frequency beyond 20KHz , the program always remain in ISR. Before it finishes ISR request, it receives another rising edge. So as soon as it enables the interrupt it again enters the ISR. The program never gets time to come to main for processing.

I am not able to understand why the execution of ISR is taking so much time when the DSP is running at 600MHz. How can I confirm the DSP operating frequency. Is there a way to check how much CPU cycles does each instruction takes. 

Thank you.

Regards

Indra


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>