8-ch audio card USB Bus Problems

XCore Project reviews, ideas, videos and proposals.
hamtam
Active Member
Posts: 34
Joined: Wed Jun 28, 2017 7:37 am

Post by hamtam »

The main issue was that the firmware did not wait until the PLL has locked. Thus the device could not reply properly to the USB Audio request of the host.

You have to wait until mclk is stable before reply on the USB Bus. What we saw on the board (on the oscilloscope) was no or a wrong MCLK Signal. So "AudioHwConfig" should only return if the MCLK is stable. It is a good idea to place test pads for eg. MCLK, PLL Sync, 3,3V 1,0V etc.

Another trick is to ad a resistor in the master clock line so you can check with different values e.g. 33 Ohm if the signal gets more solid.

To increase "AUDIO_PLL_LOCK_DELAY" is only a hack, which might help in some cases. By the way the USB standard needs a reply within 1 second so you must not increase AUDIO_PLL_LOCK_DELAY to much.

I assume you have an issue with the MCLK try to measure is on the board.
  • Which PLL are you using?
  • does it generate the right frequencies?
  • are the DAC and DAC configured right?
Jowls
New User
Posts: 2
Joined: Thu May 17, 2018 5:03 pm

Post by Jowls »

In case anyone is looking at this thread with the same error, our issue was not a hardware issue at all. We had been using the stock firmware, which expected to read I2C values from DAC (CS4384) and PLL chip (CS2100), neither of which were present on our board (only ADC). So I commented out any lines in audiohw.xc relating to DAC or CS2100 and it worked perfectly.