Hi,
Did anyone got the USB interface of the OMAP3503 EVM working with Linux ? I want to connect a USB sound card, and it just does nothing.
I do not get a USB event when I plug in any USB device. Just nothing happens. The USB Host driver is built in, detects one HUB Root,
but thats it.
As far as I understand, I need a "Mini A" cable, with the ID pin tied to ground. Can anyone confirm if this is correct ?
Best Regards,
Manuel
(Sorry for the wrong post in the DM355 board, I think here maybe is the right place).
This is indeed the better place for this type of question :)
The OMAP35x SDK does provide support for USB devices, and it has been tested, though there are several limitations still present with the USB drivers as discussed in section 2.6 of the PSP release notes.
You do have to have a MiniA ended cable for this to work, meaning pins 4 and 5 (ID and GND) of the connector are connected together otherwise the port will be in slave mode (i.e. expecting to talk to a master PC as opposed to a slave device).
You may want to try a powered USB hub, if the USB sound card is drawing more current than the port can handle you may see this type of failure.
You may also want to try leaving the device connected to the USB when you power cycle the board in case this is some problem with the hotplug event.
We have tested OMAP35xx EVM with USB sound card and it works fine."Mini-A" plug is to be inserted on EVM so that EVM can act as USB host. You can try
$ echo "F" >/proc/driver/musb_hdrc to start a session.
If my reply answers your question then please click on the green button "Verify Answer"
Please make sure pins 4 and 5 are connected per Bernie's comments above; we did encounter an issue were pins 4 and 5 were not connected together in the USB cable.
thanks for the reply. I already had considered all the details posted so far. I also checked the cable if the ID pin was actually connected to ground, and it was as it should be. So the cable is not broken or something like that. Im also using a powered HUB.
When I do a "cat /proc/driver/musb_hdrc, I get this:
[root@OMAP3EVM /]# cat /proc/driver/musb_hdrcStatus: MHDRC, Mode=Host (Power=e0, DevCtl=81)OTG state: a_idle; inactiveOptions: musb-dma, host, debug=1 [eps=16]Root port status: 00000100
The OTG status does not look OK for me. Maybe my board is somehow broken ? I'm using the default kernel of the latest SDK (version 1.0.0 I think).
Any suggestions ?
Cheers,
Hi everyone,
It turned out that my OMAP35x board was broken. I tried another different board one, and USB devices are detected just fine. But, it does not work either.
Either with the original SDK 1.0.0 default kernel or custom kernel with different USB driver settings (experimental code for better transaction handling),
I get different results for different USB Soundcards:
Gigaport AG: It does not work at all. No audio and error messages and the whole USB stack getting messed up (I have to reboot).
Maya EX: Stereo works, but 5.1 Output fails, also with error messages and the whole USB stack getting messed up (I have to reboot).
Has anyone got 5.1 Audio working on the OMAP35x EVM and with which audio card ? Thank you in advance.
I have tested stereo with TI's DEM-PCM2900/02 card and it works. Let me see if I can get Maya Ex card to test 5.1.
Regards,
Ajay
but that TI USB Soundcard seems to support stereo only. Stereo works with the Maya EX also, but 5.1 (6 channels) does not work. It could be a USB bandwidth problem maybe?
Doing stereo playback on a USB soundcard is quite pointless to me, because I can also do that with the built in audio interface. I'm trying to use the USB soundcard device because I need more audio channels.
Manuel,
I assume that you are using the aplay utility and the ALSA infrastructure over USB. I have seen some issues with the kernel USB Audio client driver in this use case. Have you verified that this driver works say in the PC use case with Maya 5.1 device. It would be a worthwile option to try out to localise were the issue could be (whether or not it is OMAP specific). Probably you might have tried it but I could not make it from your posts so far.
swami
thanks for replying, but I have been using ALSA for several years (as user, driver and application developer), and I have never had any problems with multichannel. I also have other ARM based systems working just fine with
the very same audio cards in multichannel mode. I will try using another USB HUB, see what happens, maybe its a signal integrity problem?
Good to know that you are familiar with the ALSA infrastructure quite a bit.
We had an issue with the usbaudio.c code in "sound/usb" directory were the USB flags were not correctly updated. This lead to random oops after recording stopped. We corrected the issue by correctly updating the ASYNC flag in the URB flags structure. Need to post the patch to the community though. Busy with other tasks now will do so shortly. This is based on the 2.6.27 OMAP GIT code ( we back ported it to 2.6.10 kernel but the fix I think applies equally on both kernel versions). That is the reason I mentioned there could be probable issues in the ALSA Sound driver.
Have you encountered the above issue by any chance ?
Thanks for the information. I did some googling about that. Does this problem show up under any circumstance or only if I request explicitly the ASYNC mehtod ? The error message that is supposed to reveal this problem seems to be "file descriptor in wrong state" or something like that. I have NOT encountered that error message. I would be glad if I could try a workaround to that issue. Do you have any diff patch around which you could take a look at ?
By default the async flag is set to 1 in the kernel build. Would try to post the patch by next week.
Hi Swami,
Would it it be of any help as a work around to use some API call to force ASYNC=0 or something like that ? How ever if you could post a patch would be really great.
Hi there,
Here are the error messages I get as soon as I try to play back a 6 channel 48KHz 16 bit resolution WAV file using aplay:
usbhid 1-1.4:1.3: usb_probe_interfaceusbhid 1-1.4:1.3: usb_probe_interface - got idinput: USB Audio as /class/input/input2input: USB HID v1.00 Device [USB Audio] on usb-musb_hdrc.0-1.4drivers/usb/core/inode.c: creating file '008'usb_endpoint usbdev1.8_ep01: ep_device_release called for usbdev1.8_ep01musb_stage0_irq 722: BUS RESETusb 1-1.4: aplay timed out on ep0out len=0/0musb_h_tx_flush_fifo 126: Could not flush host TX fifo: csr: 000ausb 1-1.4: aplay timed out on ep0out len=0/0musb_h_tx_flush_fifo 126: Could not flush host TX fifo: csr: 000a8:1:2: usb_set_interface failed
The USB sound card does not support resampling, so I cannot test lower sample rates in order to sort out bandwidth problems.
Any ideas ?
Manuel Jander
My initial thought is that our SDK drivers (which I assume you are using) are written for the Mistral OMAP35x EVM, which only supports stereo 2-channel output. I do not believe the hardware (and probably Linux drivers) can handle 6-channels.