Now in the stage of testing and debugging software my first USB interface based on the XMOS XUF208 processor.
Interface block diagram:
- USB 1.1 / 2.0, 12/480 Mbps.
- USB Audio Class 2.0.
- Output mode: PCM 16-32 bits, 44.1 – 384 kHz, DSD 2.8 MHz – 11.2 MHz (with USB 2.0).
- Input mode: PCM 16-32 bits, 44.1 – 384 kHz.
- 2 channel input / 2 channel output, with the possibility of selecting the number of I / O channels when ordering (possible modes: 4 outputs, 2 inputs / 2 outputs, 2 inputs, total 2 data lines).
- Input / output format I2S.
- TDM output (in firmware version 2.0), number of channels up to 16/16.
- Masterclock clock from the DAC / ADC board, frequency 22.5972 / 24.576 MHz.
- Power supply of isolators – 3.3V.
- Powered by an external power source.
- There are 3 power supplies on the board: the primary stabilizer is 5V, 2 DC-DC converters for 3.3V and 1V for powering the processor core. There is also a 24 MHz oscillator on the board, for clocking the USB PHY of the processor.
SI8662, SI8640 and ADUM1250 are used as galvanic isolation.
A control board with a display and buttons is connected via an I2C interface without galvanic isolation.
3 operating modes are planned:
Legacy mode. Parallel operation in which control commands are issued as static signals (MUTE, RESET, DSD, F0, F1). This mode allows the interface to work without a control board.
Soft mode, in which the control of the DAC / ADC IC is controlled via the I2C or SPI bus. The configuration is selected from the menu. Management board required.
Native mode. In which the configuration of control modes is stored in the EEPROM memory on the DAC / ADC board. The most functional mode in which all control is exercised from the interface processor. Control signals on the DAC / ADC board are generated using an I2C expander. This mode will allow you to use the most diverse peripherals on the converter board (volume control, etc.) without the need for adjustment, since configuration will be stored in eeprom. 10 pin connector, because only I2S and I2C signals are enough. This mode allows the interface to work with or without the control board.
The board is programmed using a specialized XA-XTAG adapter.
Interface software update is possible via DFU. The firmware algorithm will be later, after the final debugging of the interface.
The pins are grouped by function, so in the case of unused functions (for example, SPI is not needed), the isolator responsible for this group of signals may not be installed on the board.
Full-featured drivers come from here:
It is possible to adapt the standard firmware for the needs of the client: specialized software for solving a specific problem and embedding it in new / existing devices. Opportunity, cost and time of adaptation specify email firstname.lastname@example.org
Photo of the first debug board:
Firmware version history:
2019/04/17 – UI01V1.0RC2_L
Fixed bug with interface hanging when OS was restarted and audio was playing simultaneously.
Known issues: A click when switching PCM-DSD and back.
2019/04/03 – UI01V1.0RC1_L
Fully implemented Legacy mode. Fixed SDK errors that lead to data corruption when outputting in all DSD modes.
Known issues: periodic interface freeze when rebooting from Linux (Ubuntu 18.04 x64), requiring an HW reset. There may be a problem with the Ubuntu USB Core operating system. A massive problem with various USB peripherals. Having a click when switching PCM-DSD and back.
Cost of ready OEM devices:
|PCS||Cost||Production time, weeks|
The term of production of the party, taking into account the delivery of components.
Customize firmware from 100$+
Russia, Samara 2016-2019.