Motivation:

My motivation for pursuing this project is two-fold, I wanted to get more experience designing mixed-signal circuits and devices and I wanted the ability to play music from FLAC or ogg files with headphones without relying on a device such as my phone or my computer.

Goals

  • Accepts music using FLAC, ogg, (mp3 and wav optional) on a microSD
  • Display for selecting music
  • Equalizer with loadable eq settings on the microSD
  • Skip, Back, Pause/Play, Volume Control
  • Rechargeable (USB-C)
  • 3.5mm output

Contraints

  • Battery Life: 8 hours
  • Fits in a pocket
  • Equal or better quality audio than my computer (subjective)

Existing Products

VS1053b

The VLSI Solution VS1053b Ogg Vorbis/MP3/AAC/WMA/FLAC/MIDI Audio Codec Circuit and the Sparkfun mp3 Player Arduino Shield already contains most of what’s required by this project, with the VS1053b covering DSP, DAC, and amplifier. However for the sake of this project, I want to select a DAC, DSP, and design the amplifiers myself. I’ll mostly be following this datasheet for specifying constraints.

According the VS1053b datasheet, the chip is capable of the following (bullets selected for salience):

  • Decodes and encodes a variety of formats
  • Spatial Processing
  • Bass and treble controls
  • Zero cross detection for smooth volume changes
  • Stereo driver capable of 30 Ohm loads
  • 18 bit DAC, 100 dB Dynamic Range
  • Max 0.07% Total Harmonic Distortion, 0.02% Third Harmonic Distortion
  • Max analog output 2.06Vpp, typical 1.85Vpp, minimum 1.64 Vpp

Block Diagram

Power

Requirements

  • Lithium Battery powered (LiPo vs Li-ion vs LiFePO4)
  • USB-C Charging
  • 3.3V for digital circuits

For the power section, I’ll mostly be using off the shelf batteries and protection circuits.

Digital

DAC

Architecture

DAC Architectures consist of three main types: R-2R, Sigma-Delta, and String.

Part search was performed on Digikey for an 18+ bit, sigma-delta DAC, yielding the following options.

Cirrus Logic CS4338

Price: $2.51 24 bit, 2 channel, I2S interface, 5V analog & digital supply

Cirrus Logic CS4329

Price: $5.98 Specs:

  • 20 bit
  • 2 channels
  • Serial interface
  • 5V analog & digital supply
  • 106 dB Dynamic Range
  • 115 dB SNR
Cirrus Logic CS4360

Price: $5.14 Specs:

  • 24 bit
  • 6 channel
  • I2C and I2S
  • 3.3V analog & digital supply
  • 102 dB Dynamic Range
  • 115 dB SNR
Analog Devices AD1934WBSTZ

DSP

Could use a dedicated DSP or perform DSP on the MCU or a separate MCU.

microSD Card

Analog

Citations

  1. “A DAC for all precision occasions” (https://www.ti.com/lit/an/slyt300/slyt300.pdf)