CS4398 and DSD format

As I understand the CS4398 it needs to work in software mode to set the DSD format, it not possible in the stand alone mode. If that's the case, what is the easies way to set the software bits, is it with a uP the only way or can a EEProm do the trick?

I'm thinking of to use the CS4398 with the XMOS DSD USB receiver, if that is doable?
 
I am also thinking this combo, it should be the highest C/P and cheapest solution to play DSD from computer!

but the IV in the official datasheet is complex than the others and most important includes couple capacitor in the audio path which I don't like much.
I am still searching a good IV for the CS4398 before prototype board.
 
Last edited:
It looks like you need to use the I2C or SPI interface to run DSD through this chip, because you need to tell it the ratio between the DSD data-rate and your MCLK frequency. You probably also want to use the volume control functionality, etc. How you determine the DSD format details, I do not know, but probably there's a really common rate that everything uses and you only need to program the DAC according to your MCLK rate.

An EEPROM won't do this, you need a microcontroller. If you're not familiar with micros, I would recommend getting an Arduino (Nano) and having a play with that. There are many many I2C and SPI devices available very cheaply, which will allow you to verify that you can write to such a device with your own software. If you don't want lots of pins for LCD, buttons, rotary encoder (volume), etc, then look at something like a Trinket (ATmega85) - it's got just enough IO to program your DAC on power-up with fixed settings from its internal EEPROM, and maybe interface with a volume knob.

Keep in mind this is very cheap: a Nano is about $7 shipped from China, and is breadboardable if you buy some SIL pins+socket.
 
Any progress in the Project, especially in the SW setting part:rolleyes:

Yes, it's done:D
The cs4398 datasheet has all information to set the SW,

But please notes that there are three oversampling modes are needed to be set for each sampling rate change.
As I know, most of the cs4398 design on the market uses only one oversampling ratio for all sampling rate just because of simplicity. It will hurt the audio quality seriously for the common sampling rate 44.1k/48k dramatically.
I also found the output of the CS4398 is very strong when compare to other DAC, it's 134%VA peak to peak, it's 2.369Vrms full volume at default configuration.
The cs4398 Non-Decimating Volume Control is excellent but it need software to control, it's better than variable resistor volume control. It may not be fair to compare. They are not in the same class:eek:
 
Does the cs4398 support DSD256? The Lampizator board seems using this chip,
 

Attachments

  • Lampizator 004_tn.jpg.jpeg
    Lampizator 004_tn.jpg.jpeg
    104.2 KB · Views: 379
Last edited:
What do you mean by 'address registration?' Do you know how I2C bus works in terms of hardware? If so, do you just want to understand how to read and write device registers? Something else?

For biquad filters, I believe you can use the freeware REW to generate coefficients.
 
Did you look at the links I posted? There is discussion about I2C bus hardware considerations, and about how to read and write audio device control registers. There is also a link to early Arduino test program I wrote to read and write the control registers in an ESS dac. Did you find the link to that program? If so, you can download it and take a look at one example of how registers can be written to and how they can be read. Also, there is more info about understanding the code syntax at the links I gave.

In other words, if you want to learn how to write a program then you have to do some work, some reading, etc. But its not hard if you are willing to put in some effort.