USB Audio
The assignment was to design a new USB audio card to replace the client's existing PCIe audio card. The PCIe card was previously used in the Windows 10 LTSC-based SBC illustrated below. New applications required use of a different embedded system, which lacks a PCIe slot, but does offer multiple USB ports.
SBC

Below are shown two generations of PCIe cards, gen 1 (left), gen 2 (center) and the XMOS SDK (right). More on this later...
Audio Cards

Researched the following technologies, to help identify the best hardware for the required functionality.
- I2C (synchronous, single-ended, serial communication bus)
- I2S (serial interface protocol for transmitting two-channel digital audio as PCM between ICs)
- SPI (Serial Peripheral Interface, a de facto standard for synchronous serial communication)
- S/PDIF (Sony/Philips Digital Interace)
- TDM (Time-division multiplexing)
- OSI model (Open Systems Interconnection model)
Researched the following DACs.
DACs

Prototypes

Ultimately chose the XMOS device. The manufacturer provided a great SDK, schematic, BOM and Gerber files of the developement board. The schematic was provided in Altium format. Since I did not have an Altium license, I planned to use KiCAD (open source). However, using the KiCAD translation tools resulted in a long list of errors. And Altium licenses exceeded our budget, so I took a different approach.
Since I was provided with Gerber files and a BOM, and the physical board size of the development board met our requirements, we repurposed it for our application. I simply de-populated the BOM to eliminate any unnecessary components, and used the Gerber files as-is. This eliminated cost, risk and lead-time.
XMOS

