Skip to content
sa9ra1xken edited this page Apr 30, 2024 · 11 revisions

About this project

This is a KiCad project for an experimental implementation of a digital audio device that features XMOS xCORE embeded processor. The board is intended to behave as a USB audio class output device (USB DAC), or an audio media player (Micro SD card player).
The main objective of this project is to integrate all the major processes into software running on an XMOS processor. Integrated processes are;

  • USB audio class
  • Audio sample interpolation
  • SPI DAC interface
  • User interface with OLED and buttons
  • Micro SD disk I/O
  • FAT file system
  • AVI player
  • Flac decoder

As I mentioned in the second item above, one interesting challenge is to implement an audio sample interpolation process by software. In year 2018, an innovative interpolation technique for audio DAC applications, so-called SSDAC (Super Sampling DAC), was introduced in "トランジスタ技術" magazine, a popular monthly magazine for electronics engineers and hobbyists in Japan. SSDAC doesn't use conventioal FIR filter-based interpolation technique but uses cubic spline function to interpolate audio samples. Though the original SSDAC was implemented using FPGA based hardware logic, I thought it was one of the most suitable application for XMOS architecture. So I start this project. For detailed information on the original SSDAC, refer article published in "トランジスタ技術" magazine, issue of October 2018.

Block diagram

graph LR;
host[USB Host];
style host stroke:#FFF
sd[Micro SD Card];
processor["`Processor
            XMOS
            xCORE-200`"];
dac["`D/A converter
      TI DAC8811
      X2`"];
opa["`OpAmp
      OPA2277
      X2`"];
oled["`OLED
    128 x 64 dot`"];
output[Analog];
style output stroke:#FFF
clock["`Audio Master Clock
        Si5351A-B-GT`"];

host --> processor;
sd --> processor;
processor -- SPI --> dac;
processor -- i2c --> oled;
dac --> opa;
opa --> output;
processor -. i2c .-> clock;

clock --> processor;
clock --> dac;

Loading

Processor

XU216-256-TQ128 device from XMOS xCORE-200. The device cocsists of two Tiles, each of them are capable to run maximum of eight logical cores in paralel. Device also built-in 256K byte SRAM and USB PHY.

DA converter

TI DAC8811, industrial 16-bit multibit DAC with SPI interface.

OLED module

‎SSH1106 controller based 128 x 64 dot, 1.3 inch monochrome OLED module with i2c interface. This module looks avairable on several net shops by serching with above specification but manufacture and model is unclear. Let me post some detail information here OLED info.

Audio Master Clock

Skyworks Si5351A-B-GT

Clone this wiki locally