USB Audio Interface

The Plan

The aim was to produce a cheap, high quality 2 channel audio interface based on the PCM2902; the bigger picture was for it to plug into a Linux SBC and be used for personal in ear ethernet monitors, and potentially a complete digital live sound rig that did things right (digitise at source separately for each channel, don't have lots of analogue signals flying around, and call channels by there names not by a number).

Amazing noise performance wasn't necessary, but it needed to be reasonable, so I was aiming for a noise floor of around -75dB. I never got close to this, so effectively the project failed. (Also, I established that USB is not good enough for reliable low latency (<10ms) audio with the SBC's)

Implementation

Several design decisions (that may have contributed to the noise problem):

  • Keep the supply voltage to +5V/0V (rather than +-15V). This limited the choice of op-amps
  • Go for an op-amp design rather using one of the instrumentation/mic amplifier chips.
  • Go for a dual layer board to reduce costs, and autoroute the design (as I hate/suck at routing)

Other than that, it worked quite nicely.

Audio performance wise, I got a noise floor at -70dB on minimum gain, and -58dB on maximum gain (with the mic input's shorted).

It wasn't a power supply noise problem (I ran it off battery as a test and got no change), and it wasn't a specific noise source (it was wideband noise), all the audio input resistors were metal film MELF ones to reduce noise, I tried 3 different op-amps (TL971, TS971, MC somethings) and it wasn't massively different.

The Future

I can't see going back to this project: the need for a USB audio interface is no longer there. I might come back to the mic-preamp bits as that would be useful. I think the next version would use a dedicated mic preamp IC (INA217/INA163/TS472/SSM2019), have a boost converter generating the +-12V and try to keep the layout super-simple.