Cirrus Logic DAC
Planet Fox > Electronics >

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)



Powered by FreeBSD
Valid HTML 4.01
Site Map
© MMIX-MMXIV Planet Fox