Cirrus Logic HD Audio DAC
I'm a big fan of Cirrus Logic products. It seems that
most
audiophiles choose Burr-Brown (now a part of Texas Instruments) for
their designs, and while I admit that BB products do provide excellent
sound quality, they can't hold a candle to Cirrus Logic parts. I first
found out about Cirrus when I was just a kid, I bought a fancy ISA
soundcard with a Crystal (Cirrus) chipset. The sound quality was way
better than I expected, easily on par with some of the better CD
players I've heard. A few years ago I started to wonder if they were
still around, since I hadn't seen any Crystal soundcards in a while. It
turns out, that although they no longer make audio chipsets for PCs,
they do still provide a wide variety of audio interface ICs and DACs.
This project is
part of a simple demo board I made to evaluate the sound quality of
Cirrus Logic’s current line of DACs. Cirrus doesn’t currently offer a
combined S/PDIF receiver/DAC LSI, so this design uses two chips. The
~$10 CS-8416 is an integrated S/PDIF receiver, multiplexer, and sample
rate convertor. It has two modes, one is hardware mode, for use on its
own and is selected by pulling the SDOUT pin low via a 47KΩ resistor.
The CS-8416 can also be interfaced to a microcontroller via I2C or SPI,
which provides more input ports, more output format options, and the
ability to read Q subcode embedded in the S/PDIF stream. In hardware
mode, which I’ve used here, the various options are selected by pulling
the chip’s various pins high or low. In the schematic below, pulling
RCBL high puts the serial port into master mode, pulling AUDIO and C
low selects 24-bit right-justified output data, and pulling U high
selects a recovered master clock (RMCK) frequency of 128 × the
sampling frequency. There are other options that can be customized, but
those are the important ones. The active input is selected by TXSEL0
and TXSEL1. Pulling them both low (00, binary 0) selects RXP0, pulling
TXSEL0 low and TXSEL1 high (01, binary 2) selects RXP2, etc…
The CS-8416 employs a PLL to extract the master clock
and R/L
clock from the S/PDIF bitstream. Since the PLL must remain rock stable
you absolutely must use type C0G multilayer ceramic capacitors and a
metal film resistor for the PLL's R/C network (C10, C11, and R2 in the
schematic). Try to put these parts as close together as possible to
avoid frequency drift.
The CS-8416 has three separate power inputs. VD
is
the digital circuitry, such as the registers and samplerate convertors.
VA is the analog circuitry, which is the PLL used to
separate the master clock from the S/PDIF stream. VA should
be well isolated from VD and very stable. Both VD
and VA are limited to an absolute maximum of 3.46V. VL
is the logic, such as the inputs and outputs. VL is
completely separate from VA and VD, and has an
absolute maximum rating of 5.25V.VL will run perfectly fine
on 3.3V, but I chose to use a separate 5V power supply for VL
because my optical receiver won’t operate on less than 4.75V and
outputs a 5V signal. Additionally, it gives an extra measure of
protection for the coaxial S/PDIF connection, since most devices use 5V
(TTL level) logic, so we don’t need an extra chip for converting logic
levels.
CS-4338 is the
actual DAC, a switched capacitor design with excellent performance
characteristics. The 433x series is available in a variety of input
formats, the 4338 model I used here accepts 16 or 24-bit left justified
data at a sampling rate of up to 96kHz over a 4-wire port. The 4 inputs
are SDATA: serial data, SCLK: serial bit clock, LRCK: left/right
channel clock, and MCLK: master clock, which determines the sampling
frequency. The DAC has two modes, high-rate mode and base-rate mode.
The design below operates fully in HRM, where MCLK is 128 × the
sampling frequency. This allows the DAC to work on data streams up to
96kHz. Using BRM (256×FSor higher) limits the sampling frequency
to no higher than 48kHz.
The DAC has only one power input, which I’ve set a 5V to
match
the logic output of the CS-8416. The DAC power should be isolated from
VL by a decoupling capacitor (C2) and a couple of turns of wire around
a ferrite bead (L1), which should be able to filter out most of the
digital crud. The DAC only needs a minimum of external components, just
the small RC network on the analog outputs. I’ve optimized the output
to drive a preamplifier or amplifier, since the DAC’s output is more
than enough to do that on its own. You could also add support for
headphones by adding a small power amp like MC34119, KA2209 or similar.
Once you're finished, you can use SW2 to select input 1 or 2. SW1
should be a momentary push button, and is used for resetting the
device. Depending on your power supply you may have to press this
button after the deive is first powered on.
Sound quality with this DAC isn’t just good, it’s great.
I’m
truly impressed by the level of detail this tiny and inexpensive
circuit is able to extract from a bitstream. I’m currently using it
with the optical output from my Turtle Beach Montego sound card, a
small tube amp that I made, and AKG studio headphones. The sound output
through this DAC is much clearer, faster, quieter and more detailed
than the analog output directly from the expensive sound card. It’s
definitely a keeper, I’ll be leaving this prototype connected to the
sound card to power my PC speakers and headphone amp, and I’ll be
building another on a PCB with all surface mount components for my
stereo system, as well as a fancier version under the control of a
Motorola 68HC11 microcontroller. I'd also like to make one for my car.
I'll be sure to post them here when I'm done.
Download Schematic and Parts
List(PDF, 178KB)
Download CS-8416 Datasheet (PDF,
616KB)
Download CS-4338
Datasheet (PDF, 787KB)
|