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.

OMAO-L138 - Upp, EOL

Hi team,

I need a clarification on the TMS320C674x/OMAP-L1x Processor Universal Parallel Port (uPP) User's Guide section (2.8.1):

 

"For small line size and fast data transfer, it is possible to “miss” EOL events if they occur faster than the user’s code can handle them. This does not hinder uPP operation; the uPP peripheral continue processing data uninterrupted until the EOW event or some error condition is encountered."

 

How often will this "miss" happen? What is a small line size? Will it recover on the next line hit and cause the isr to service it twice (per the while loop recommendation)?

  • Mariana,

    You may "miss" one or more EOL events when using a very small line size and very fast uPP clock.  The recommended ISR structure is meant to avoid missing interrupts, but it can fail if you have rapidly repeating interrupts of the same type.  The only interrupt that is likely to "fire" this fast is the EOL interrupt.

    For example, say that you have a large data transfer broken into 128-byte lines.  If the uPP is running at 75 MHz in 16-bit mode, then you will complete a line every 256 CPU cycles (assuming a 300 MHz part).  If it takes longer than this to traverse the ISR loop once, then you could conceivably have two EOL interrupts fire before you can service one.  Thus, you have "missed" an EOL interrupt.  It's difficult to define a universal "safe" line length because it depends on several factors: uPP clock speed, DSP clock speed, the ISR code, etc.

    Please note that this is only a concern for multiple instances of the same interrupt.  Different uPP interrupt events do not mask each other in this way.  For example, an EOW interrupt is often accompanied by an EOL interrupt at exactly the same time.  The ISR laid out in the user guide will reliably catch both of these interrupts.

    Also, the uPP peripheral itself does not care if you miss EOL events.  You can even safely disable EOL events if you don't care about them.  It's only a concern if the application is tracking/counting EOLs for its own purposes.

    Hope this helps.