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.

OMAPL138 UPP transmit < 64 bytes?

How can I program a UPP transmit transfer that is less than the minimum FIFO burst size (64bytes)?  When a transfer is configured for less than 64 bytes an end of line interrupt, not an end of window interrupt, and an underrun interrupt occur.  The UPP also continues to assert that it is active (UPIS2 bit 0) although the address in UPIS0 has been incremented to the end of the transfer.  How are transfers less than 64bytes properly handled?

  • Hunter,

    Sorry for the delay in my response; I wanted to run my own test before commenting.  I'm having a hard time reproducing your issue.  Here is what I tried so far:

    1. Line count: 1
    2. Line size: <64 (I've tried as low as 4)

    With these settings, I am able to successfully transmit and receive very small buffers.  I see the end of line and end of window interrupts, but no error interrupts.  Could you please share the exact values you're using the program the DMA descriptors?  I'd like to try running some transfers that are identical to yours.

  • Thanks for looking at this Joe.  The transfer that failed had a line count of 1 and a byte count of 2.  I will try byte count 4 and see if that works.  Can you try a byte count 2 transfer?

  • I have confirmed that a byte count of 4 does work.  A byte count less than four results in the window address not being updated, an increment of the line count, the DMA active bit to be permanently asserted, and the underrun bit to be asserted in the UPISR.   4 is the minimum byte count.  Thanks Joe.