Digital Audio Player
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
- “A DAC for all precision occasions” (https://www.ti.com/lit/an/slyt300/slyt300.pdf)