Suspected interrupt issue in USB audio application

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hi there, Im using the CY8C5667LTI-LP009 in a digital USB mic based noise sensing project and have hit a major hurdle. I run our custom board into an ODROID C1+ SBC (Pi clone with more muscle) and it enumerates as a USB audio device. When I run any kind of call to record audio such as the ALSA "arecord" the kernel chokes and dies with a:

   

"Kernel panic - not syncing: fatal exception in interrupt" (Ive attached a shot of its death dump)

   

Its strange as the CY8C5667LTI-LP009 based audio board works fine when plugged into a Mac or PC. It also works when plugged into a Pi, but the audio can be glitchy, containing random impulses. Other cheap USB audio cards work fine on the ODROID.

   

My hope is that this can be remedied by edited some of the firmware settings using Creator, but I don't know where to start. I have changed the Max Packet Size in USBFS from 192 to 512 based on another some audio developer guidelines but it had no effect so I changed it back.

   

Any help would be very much appreciated!

   

Charlie

0 Likes
2 Replies
himam_31
Employee
Employee
50 likes received 25 likes received 10 likes received

Hi,

   

 

   

Have you checked the USB packets using a USB protocol analyzer? Please check is proper packets are transferred between PSoC and the host device.We have not yet tested the USB Audio with ODROID yet.

   

Thanks,

   

Hima

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hi Hima,

   

I ran usbmon and tcpdump to create a dump of all USB packets when only the PSoC5LP board was plugged in.

   

When plugged into the ODROID the PSoC does not generate any USB traffic while static (not recording). When I call arecord which generates the crash, nothing is written to the dump file. It seems that tcpdump cant dump quick enough before the kernel crash.

   

I plugged the board into a UK Pi and saw that the Cypress board was generating URB_BULK I/O traffic even when static before I called arecord and the audio started streaming in. Ive attached that file if its of any use.

   

I also ran arecord using a cheapo USB sound card based on a C-Media IC on the ODROID which works fine and have attached the dump for that too (3Dsound.pcap.zip).

   

Ive also attached the detailed output from the devices lsusb if thats any use.

   

At the point of madness!

   

Thank you!

   

Charlie

0 Likes