AD5791 recommanded receiver

Hello,

I work on designing a DAC prototype using the AD5791 (SPDIF only for the time being)

Although I am familiar with the old DACs such as the AD1865 (see the DAC End from Andrea Ciuffoli for example) and have already built a few of them, I have difficulties to understand how to connect a receiver to the AD5791.

Analog Devices gives an example of Typical Operating Circuit in the datasheet (see attached) but no example of a receiver connections;
I have started a design with the CS8414 but I had to stop because I don't understand how to feed the DAC major inputs: SYNC (inv), SCLK, SDIN, SDD, LDAC (inv), CLR (inv), RESET (inv) ??

Do you have such an example of Receiver <->AD5791 connections ?

Thank you
 

Attachments

  • AD5791 Typical operating circuit.JPG
    AD5791 Typical operating circuit.JPG
    99 KB · Views: 262
Schiit Audio uses the AD5791 in their original Yggy DAC. I wrote a blog post about that when it came out : https://www.diyaudio.com/archive/bl...tts-flagship-dac-uses-not-audio-dac-chip.html

Its worth bearing in mind that both Mike Moffat and Scott Wurcer insisted that the AD5791 needs a deglitcher to make it suitable for audio use.

To get ideas about possible solutions it might be worth looking at how Schiit interfaced to the chip, there are pics online of the internal circuitry of the Yggy DAC. If it were me, I'd use an MCU which had both an I2S and an SPI port.
 
Schiit Audio uses the AD5791 in their original Yggy DAC. I wrote a blog post about that when it came out :
Thanks Abraxalito: I am going to read it.

Its worth bearing in mind that both Mike Moffat and Scott Wurcer insisted that the AD5791 needs a deglitcher to make it suitable for audio use.
My English is not perfect: can you briefly explain what is a deglitcher and how to implement it ? to date I have made a few DACs but I don't know what deglitcher is ...

To get ideas about possible solutions it might be worth looking at how Schiit interfaced to the chip, there are pics online of the internal circuitry of the Yggy DAC
it is exactly what I though; a friend of mine has a Cantata into which he has recently added a DAC card that uses an AD5791, and I have asked him to send me detailed photos, but no reply to date.
The photos available on the Schiit website are not big enough to read the parts reference to identify the circuits, at least I did not managed to read the parts' references,

If it were me, I'd use an MCU which had both an I2S and an SPI port.
I use to program the µCs so it should not be too difficult to implement a MCU, provided that I am explained what has to be done....
Do you have a particular MCU in mind that could perform the work ?? I could study its datasheet before I get some information on what a deglitcher is ...
Thank you very much,
 
For information, Schiit audio says in the Yggdrasil datasheet that they use a AKM AK4113 receiver (I cannot verify this for the time being).

I am not familiar at all with the AK4113, but I know more the CS8414 from Crystal.
After having studied the AD5791 and Crystal CS8414 receiver datasheets, it seems to me that we can "theoretically" feed the AD5791 with the CS8414, at the condition to configure the CS8414 to deliver the data flow in the AD5791 expected format.

I wait for your explanation regarding the "deglitcher" (is it between the receiver and the DAC, or is after the DAC ?) before posting a bit more details on this...

Thank you !
 
I have same problem when I tried to interface TI's DAC11001A R2R DAC, like AD5791, it's also a 20-bit SPI DAC.
DAC11001A seems to be an competitor of AD5791 from TI, they are not designed mainly for audio but can be used in audio, otherwise they should be I2S-compatible.

There is a discussion about how to convert I2S to SPI so that DAC11001A can be compatible with most commonly used I2S audio format.
It looks like simple logic conversion can do the job, and surely CPLD/FPGA can do that too.

DIYAudio Memeber PaulFrost(From TI) said:
The I2S to SPI is a bit of a problem.
Fortunately, the DAC11001A features a daisy-chain mode that looks somewhat similar to I2S.
I was able to create the glue logic that converts 24-bit, right-justified I2S to SPI using only 2 flip-flops, a shift register, and 7 logic gates.
When I post the reference design I will share the digital logic sims.


U17, U18, U19, U51: SN74LVC1G175DBVR
U20: SN74LV165APW

Overall, I think it would be best to start from I2S, then SPDIF.
Developing MCU and CPLD/FPGA is not easy for everyone, especially if it can be solved by logic converters.
Of course, it is best if there are some open source solutions for I2S-SPI converting.

1650646871084.png
 
My English is not perfect: can you briefly explain what is a deglitcher and how to implement it ? to date I have made a few DACs but I don't know what deglitcher is ...

A deglitcher is a circuit that removes unwanted noise from a DAC's output which occurs around the time it updates. Its performing the same function as a sample and hold. The idea is to store the DAC's output voltage on a capacitor and only update the charge on that capacitor when the DAC's output has settled and isn't generating noise (glitches).

it is exactly what I though; a friend of mine has a Cantata into which he has recently added a DAC card that uses an AD5791, and I have asked him to send me detailed photos, but no reply to date.
The photos available on the Schiit website are not big enough to read the parts reference to identify the circuits, at least I did not managed to read the parts' references,

I seem to recall pictures from 3rd parties which showed more detail but my memory is rather hazy.

I use to program the µCs so it should not be too difficult to implement a MCU, provided that I am explained what has to be done....
Do you have a particular MCU in mind that could perform the work ?? I could study its datasheet before I get some information on what a deglitcher is ...
Thank you very much,

I didn't have a particular MCU in mind but I'd look at STM32F401 as a possible candidate. Its been available on a 'BlackPill' board for some time which means you don't have to solder a very fine pitch IC for yourself. Using such a chip would also allow you to implement an oversampling filter which eases the analog filtering requirement at the DAC's output. Without oversampling you'll need a very steep reconstruction filter to keep DAC images out.
 
@jensenhoffman:
Excellent, congratulations ! Your diagram explains how to convert I2S to SPI without a MCU, so it will save a lot of time !
I am going to study it this afternoon.

Did you go further in your DAC project, I mean have you completed your entire DAC ? How does it sound compared to the other designs that you have lessoned to ?

Do you know if this interface schematic would also work with the AD5791 or only with the T.I. 11001A dac?? (sorry but I am not familiar with these 2 DACs)

@abraxalito:
A deglitcher is a circuit that removes unwanted noise from a DAC's output which occurs around the time it updates. Its performing the same function as a sample and hold. The idea is to store the DAC's output voltage on a capacitor and only update the charge on that capacitor when the DAC's output has settled and isn't generating noise (glitches).
I understand what you mean.
Is there a good schematic available to be used ??
this will again save time:
  • the jensenhoffman schematic provides the I2S->SPI conversion part,
  • the DAC part is well documented by analog Devices for the AD5791, and I assume that TI also provides good Typical Operation circuit for the 11001A
  • if you have a deglitcher schematic ready to use, it would provide the 3rd part, I mean between the DAC and the output stage
I seem to recall pictures from 3rd parties which showed more detail but my memory is rather hazy.
Any idea of the direction to look for them ?

I will post the photo from my friend that I have received last night (just need to resize them), but they won't be enough.
I didn't have a particular MCU in mind but I'd look at STM32F401 as a possible candidate. Its been available on a 'BlackPill' board for some time which means you don't have to solder a very fine pitch IC for yourself. Using such a chip would also allow you to implement an oversampling filter which eases the analog filtering requirement at the DAC's output. Without oversampling you'll need a very steep reconstruction filter to keep DAC images out.
I have to read a bit about this filtering part...
My goal is to collect all the information on the parts presented above, and then build a complete documentation folder for the community.
I will of course build such a DAC for myself...
 
Last edited:
As promised, here is the photo (from my friend) of the DAC part based on a AD5791.
It is a closeup from a Cantata CD player; I have kept the size a bit big (1500px) to allow you to read some IC references; I can post even bigger if you need.
cantata_1_s.jpeg
The small input board that you see at the back is a third party board that allow to feed the device with an external SPDIF input.
You can see it in a larger size on this page: https://www.reson.de/flex4 but it is not the purpose of our discussion...
 
I understand what you mean.
Is there a good schematic available to be used ??

I searched online quite a bit when the Yggy was first announced and didn't find anything. There was something I found in a textbook but I've forgotten which one.

I just did a search and this article will give you some suggestions : https://www.maximintegrated.com/en/design/technical-documents/app-notes/5/583.html. I've never built a deglitcher myself so have no experience to offer you.
 
I assume you know how to adapt the schematic to the different frame structure of the AD5791.
Not entirely !

I have studied the AD5791 datasheet and read that it expects to get MSB first, as well as the SYNC signal edge timings. I could adapt a CS8414 configuration in order to generate the low with the correct format, but it is obviously not SPI, so this approach should be abandoned...

In addition, the jensenhoffman schematic provides the I2S->SPI conversion part, but I need SPDIF ->SPI, so it is different.
Maybe there is a way to convert SPDIF to I2S (?) then I2S to SPI, but it looks complex for me, and I suspect various issues...

So for the time being, I am in a a deadlock and I do not see any solution.