Adding DSP to the USB Audio 2.0 L1 Reference Design
Adding DSP to the USB Audio 2.0 L1 Reference Design
This application note shows how to integrate DSP processing into the XMOS USB Audio solution which enables the single tile L8 device to implement both the USB interface together with audio processing in a single chip. The DSP core utilizes the 64bit single cycle MAC instruction to provide audio processing functions such as EQ.
The DSP is provided by the open source sc_dsp_filters module from github to supply the Biquad filters [1]. This module can generate arbitrary cascaded biquad filters with suitable coefficients across a wide dB range. These coefficients are generated at compile time into one of the header files used to build the final executable. This application note is based on the biquad_xta_appnote_1v0 tag in the above repository.
[1] |
The USB XUD core requires a minimum of 80 MIPS, which limits this example to 6 cores. The design has one core available so we will use all of the available performance for DSP. For simplicity, it requires the device to operate at 500MHz, and will not support MIDI or SPDIF.
A typical use of this application would be in USB active speakers where DSP is required to compensate for physical limitations of the speaker enclosure or in a higher performance device where a digital crossover might be required.
This application note assumes the reader is familiar with the XMOS XS1-L1 DSP Performance Application Note [2] which describes how performance of the biquad filter library can be measured.
[2] |