This blog is to give some background knowledge on the USB Audio Class. I will try to collect some information from internet about the USB Audio Class 1 and USB Audio Class 2 and then give the description on this blog.

Introduction

Universal Serial Bus (USB) is a serial bus standard to interface devices. USB was designed to allow many peripherals to be connected using a single standardized interface socket and to improve the plug-and-play capabilities by allowing devices to be connected and disconnected without rebooting the computer (hot swapping). Other convenient features include providing power to low-consumption devices without the need for an external power supply and allowing many devices to be used without requiring manufacturer specific, individual device drivers to be installed.

http://en.wikipedia.org/wiki/USB

USB Audio

USB audio is very popular.

One of the reasons is that USB audio is part of the USB standard and as a consequence native mode drivers are available in all the popular OS (Win, OSX and Linux).
Connecting a USB audio device is a matter of plug & play.

USB audio is a flexible solution as any PC offers USB.

If you use a laptop this is probably the way to go if you want to improve on the on-board sound card.

The audio is routed to the USB.
This is a matter of choosing the USB audio device in your media player.
The on-board sound card is bypassed; in fact you don’t need a sound card at all.

Today the resolution of USB audio ranges from 16 bit/ 32 kHz to 32 bit/ 384 kHz.
A lot of DACs are still limited to 16 bit/ 48 kHz max.

The data transfer from the PC to the DAC can be done in adaptive or in asynchronous mode.
In adaptive mode the DAC adjust its timing to the rate the data is pouring in.
In asynchronous mode the DAC keeps its timing constant and controls the amount of data send by the PC. By design asynchronous mode eliminates input jitter.

Resolution

A lot of people think USB audio is limited to 16 bits/48 kHz max.
A lot of (cheap and sometimes not so cheap) USB DACs are indeed limited to this resolution.

This is because the manufacturer decided to use a simple and cheap of the shelf hardware solution.

USB Audio Class 1 standard (1998)

This standard allows for 24 bits/96 kHz max.
The standard itself doesn’t impose any limitation on sample rate.
Class 1 is tied to USB 1 Full Speed = 12 MHz

Every millisecond a package is send.
Maximum package size is 1024 bytes.

2 channel * 24 bit * 96000 Hz sample rate= 4608000 bits/s or 576 Byte/ms
This fits in the 1024 byte limit.
Any higher popular sample rate e.g. 176 kHz needs 1056 bytes so in excess of the maximum package size.

All operating systems (Win, OSX, and Linux) support USB Audio Class 1 natively.
This means you don’t need to install drivers, it is plug & play.
All support 2 channel audio with 24 bit words and 96 kHz sample rate

USB Audio Class 2 standard (2009)

USB Audio Class 2 additionally supports 32 bit and all common sample rates > 96 kHz
Class 2 uses High Speed (480 MHz). This requires USB 2 or 3.
As the data rate of High Speed is 40 X Full speed, recording a 60 channel using 24 bits at 96 kHz  (132 Mbit/s) is not a problem.

Using High Speed USB for playback  there are no limits in resolution.

It is downwards compatible with class 1.

From mid-2010 on USB audio class 2 drivers are available in OSX 10.6.4 and Linux.
Both support sample rates up to 384 kHz.

Companies like Thesycon or Centrance have developed  a USB Class 2 Audio driver for Windows.

This was necessary because Microsoft simply didn’t support UAC2.

In April 2017, an update of Win10 finally brought native mode drivers.

If you use older versions of Win, you still need a third party driver.

Here is the youtube to describe about the USB Audio Class 1 vs Class 2

USB Speed

  • Superspeed – 10 Gbps USB data rate (USB 3.1)
  • Superspeed – 5 Gbps USB data rate (USB 3.0)
  • High Speed – 480 Mb/s with a data signalling tolerance of ± 500ppm (USB 2).
    This means every 125 µs a SOF packet arrives with a allowed deviation of ± 0.0625 µs..
  • Full Speed – 12 Mb/s with a data signalling tolerance of ±0.25% or 2,500ppm. (USB 1&2)
    This means every 1ms a SOF packet arrives with a allowed deviation of ± 500ns.
  • Low Speed – 1.5Mbits/s with a data signalling tolerance of ±1.5% or 15,000ppm (USB 1&2)

How to dump the USB Descriptor on the Windows 10

Thesycon’s descriptor dumper is a Windows utility that displays the USB descriptors of any USB device. The dump is in plain text format and can be saved to a file or copy-pasted into an email. This is most useful for developers and technical support personnel.

https://www.thesycon.de/eng/usb_descriptordumper.shtml

such as

Nordic nRF52 Chipset has started to support the USB 2.0 Full Speed feature.

ChipsetUSB Support
nRF52810No
nRF52811No
nRF52820Yes
nRF52832No
nRF52833Yes
nRF52840Yes

All of them are supporting the USB Audio Class 1.

References:

  1. https://www.thewelltemperedcomputer.com/KB/USB.html
  2. USB Audio Class 1 specification (URL).

Thanks for your interests on my blog. Since 2019, I have created this blog and shared the idea how to do some funny stuffs. I am very pleasure that I get quite a lot of positive feedback. I really hope that this blog helps your own embedded solution development. May I get support from you to keep it in order to maintain the wordpress host service? Your appreciation would be very helpful.


https://jimmywongiot.com/2021/05/26/asking-for-support/