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.

OMAP 3530 USB OTG Controller issue (Using Isochronous transfer type).

 

Processor: OMAP 3530

BSP version: TI_EVM_3530 - 6.14.00

Platform: EVM

 

We are working with OMAP 3530 with BSP version 6.14.00. We are developing a UVC driver with isochronous transfer type. Since OMAP BSP version 6.14.00 doesn’t support isochronous type we have modified the USB controller PDD driver and we achieved isochronous transfer working.

Note: Since there was no proper description about the USB OTG controller in “OMAP35x Applications Processor Technical Reference Manual” and we read from the above data sheet, that USB OTG controller of 3530 is IP of Mentor graphics, we have used “TMS320DM35x Digital Media System-on-Chip (DMSoC) Universal Serial Bus (USB) Reference Guide” to configure the USB functional controller.

First we performed the isochronous transfer with 1transaction per micro frame (1 UVC payload size is 1 K Byte and FIFO size allocated is 1 K Bytes) and enabled the double buffering and frame rate was 12 frames per second (One frame size is 600 kb). We also enabled the DMA. It is working fine. UVC video preview on host PC is clear with double buffering enabled and disabled.

We need the frame rate of 30 fps. So we are working with 3 transactions per micro frame (1 UVC payload size is 3 K Byte and FIFO is allocated is 4 K Bytes).

3 transactions per micro frame were achieved by settings the 11 and 12 bits of TxMaxP (In data sheet these two bits are shown as reserved bits) register. In Non DMA mode, even 3 transactions frame rate is very less (11 frames per second) and UVC video on host PC is clear. If we enable double buffering frame rate is 13 frames per second but preview is not clear (preview shown with some dots). I have attached the image captured from video preview for your reference.

So we have enabled the DMA. In this case, ISOC transfer is working, if the DMA is supplied with one UVC payload, but ISOC transfer is not working, if the DMA is supplied with more than one UVC payloads at a time. To make this work with more than one UVC payloads we have modified PDD driver to send one UVC payload per DMA transfer. In this case we have achieved 20 frames per second and UVC video preview on host PC is clear. If double buffering is enabled frame rate is 28 frames per second but UVC video preview is not clear (preview shown with some dots).

To achieve these 28 frames per second, double buffering is necessary, but if double buffering is enabled, preview is not clear.

Can any one help us to solve this issue?


 

  • Hi Subbarao

    I am running into a similar issue with OAMP35x platform. I am developing a WinCE driver for OTG to work in isochronous port and as you mentioned the OMAP BSP doesn't support that mode.

    Can you share what changes you had to do make to the USB controller PDD driver to support the isochronous transfer mode.

    Thanks in advance for your help.

    regards

    -Koustubh