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.

AM3358: USB Asynchronous Isochronous endpoints for audio

Part Number: AM3358

Processor team,

Can the AM335x family support an Asynchronous Isochronous endpoint for an Audio Device?  Is this supported with the Linux Processor SDK?  Is this supported with TI-RTOS Processor SDK?

Thanks,

Darren

  • Hi Darren,

    I am not sure what the "Asynchronous" is regarding Isoch endpoints. AM335x USB does support Isoch endpoints, and the Processor SDK Linux has its Audio support implemented in UAC1 and UAC2 classes.

    I am not sure about the Isoch Audio support in TI-RTOS though, so I am routing this query to our RTOS expert.

  • Hi Bin,

    It's definitely more than just isochronous.

    Thanks for looking into this.

    Darren

  • Hi Bin,

    It's described in section 5.12.4.1.1 of the USB 2.0 spec.

    Thanks,
    Darren

  • Darren,

    Appreciate the pointer, I quickly went through Chapter 5 of the USB2.0 Spec, and learned there are 3 sync types of isoch endpoints. (I never read this chapter before.)

    I am certain this section of the USB Spec is audio application specific and more importantly it is platform independent, because no any USB controller document (for example, MUSB or xHCI) mentioned about these sync types. So the question comes to whether a software support audio async isoch endpoints. But I couldn't find any clue in the Linux kernel usb audio driver either.

    Then my comment is if you can run your usb audio application which requires async isoch transfers on any Linux PC running kenrel v4.19, I am sure you can run the same application on AM335x with Processor SDK Linux, because we use the community kernel and the kernel usb audio drivers are platform independent.

  • Hi Darren,

    Darren Jenkins said:
    Is this supported with TI-RTOS Processor SDK?

    PRSDK USB audio class is described here: https://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_03_00_106/AM335X/rtos/index_device_drv.html#usb

    I can't locate anything in the documentation or code indicating asynchronous isochronous is supported.

    Inspecting the file <PDK>\packages\ti\drv\usb\src\usb_func\device\usbdaudio.c, it appears the audio source and sink use adaptive endpoints.

                USB_EP_ATTR_ISOC |              // Endpoint is an adaptive isochronous data
                USB_EP_ATTR_ISOC_ADAPT |        //  endpoint.
    

    Regards,
    Frank