Micro DIR9001 + PCM1794A DAC

After not getting a response to a question I posted in this thread, I decided to see if there was any chance I could manage to get one put together myself.

Nearly 13 hours of reading, squinting, and building later I have myself the DAC I was after. Like always, my determination has overcome my ignorance and the little DAC worked the first time I powered it up. I really don't know how I do it. :eek:

The circuit is a culmination of the datasheets for the DIR9001/PCM1794A evaluation modules, the TwistedPear Audio COD, and any other info I could find.

I managed to get the thing made single sided with only one jumper (and a ground plane). There is no input buffer as I only plan to use Toslink receivers. The output is just passive I/V resistors, but I plan to build another board the same size with OPA1632/THS4131 that will sit piggyback. I have to manually reset the circuit right now, but I put a spot on the board for a TPS3809K33, I just don't have any on hand.

I'm listening to it right now using half of the balanced I/V output with a single ended amp. The gain is low, but it sounds good so far.

Here are some really bad cell phone pics (my camera is out of town for the weekend). The last pic is the micro DAC next to an Entech 203.2 PCB with a DIR9001 -> CS8412 converter board.



2007-11-25 11:52 pm
13 hours... congrats, awesome work. :D

I've got a DIR9001/PCM1796 (yeah, with a microcontroller) design on the back burner. One interesting thing about the DIR9001 is that the jitter of the recovered clock varies with the fs multiplier, according to a chart in the datasheet. I'm curious whether optimizing this makes an audible difference.
mako1138 said:
One interesting thing about the DIR9001 is that the jitter of the recovered clock varies with the fs multiplier, according to a chart in the datasheet. I'm curious whether optimizing this makes an audible difference.

Well, my little board doesn't have a single inductor or ferrite bead and the digital and analog grounds share the same ground plane; so I doubt it matters much for me at least.

I had to make some compromises with the design as I'm not patient enough to wait for parts to be ordered and I'm limited to 1"x5" PCB strips. I think it turned out good even with the shortcuts I took. I don't hear any strange hiss or hum coming from the speakers.

I need sleep now. I worked on this from the time I got home from a night shift at 8AM until around 9PM and I'm still up at 2:30AM :dead:. I think I will play some "TV on the Radio" through my new little DAC friend and pass out.
I threw together a p2p circuit with an INA2134 and put it on the output of the dac (with the passive I/V resistors still in place). The output signal is about 1.7VRMS now and it sounds amazing. I can't wait to try the THS4131.

Thank you, I like the challenge of making them small. I think I need to switch to 0603 parts, 0805 seems so big to me now after >3 years of soldering them.

When I finish the active I/V board it will stack on top of the DAC. I think I will put the +5v regulator on the I/V board so all I will need is a +/-15v supply.

So no one has an opinion on reclocking with with the SRC? I just want to know if it would be a night and day sort of thing, or if it is like comparing a polypropylene cap to "better" polypropylene cap.


2006-12-30 2:01 pm
6 months ago I did some basic research with my buddy for a "pass D1 Clone"......we stopped the planning and after a drunk summer I remember only this :)

A) the SRC4192

Its a great Sample Rate Converter which integrates a DIR and a multifeature SRC. It has many Inputs and able to mux. We planned to use a PCM2707 (as USB receiver) -> SRC4192 -> PCM1794

A PLL can feed the SRC and PCM. The SRC4192 can Upsample to eliminate some kinds of jitter....it can recreate the clock based on the input signal (up to 192khz) or with extern clock (up to 212Khz).

The signal to noise ratio and many other specs are very good. Although DIR9001 has very low jitter....the SRC is a real Jitterkiller.

To place a small PCM2707 as USB Receiver would make your microDAC more versatile......for PC or Mac User. Just a thought!

My opinion, regarding your great tiny-micro-dac-work.....give it a try.

I am not a pro......but thats what I remember from the Tech Talk of my DIY friend in Germany.

Have to tell my friend about your Project....he will love it!

have nice evening

I do plan on making one with the PCM2707 eventually. For right now I need SPDIF input because my source (a PC as DSP) has three SPDIF outputs.

I've read about the capabilities of the SRC and get what it does (sort of), but my original question still stands; is it worth the effort?

My source is 16-bit 48kHz; will I (a non-believer of audiophile magic) be able to tell the difference if I include the SRC to upsample to say 96kHz?


2006-12-30 2:01 pm
Upsampling is not voodoo - it is measureable, sometimes hearable.

1) Measurement

Conversion 16bit to 24 bit (and almost the same wit 44,1 to 192khz)

Pictures from Hoerwege Website - german audio manufacturer at www.hoer-wege.de





The 44,1 to 192Khz Conversion works similar.....not the same but similar. Esxcuse my bad english.

2) can your hear it?

The rule of thumb says - what isnt in the music will be not better due to upsampling....if your source is just average it will still be average in 192khz. To avoid Jitter in your Player is the best way to kill jitter :)

I switched completely to PC based audio.......FLAC files.....ASIO driver for bit-perfect playback...USB....etc!

For me.....just my experience.....with my EZDac.....is that the sound gets smoother with 192Khz....with Headphone I believe that noise is less with low volume music....but questions stays.....is the noise from your DAC, source, Amp, cable, PSU, Headphone etc?

just my 2 cents :)


To be honest, I doubt I would be able to tell the difference. Lets say I did want to add the SRC though, is it worth doing using the DIR9001 recovered clock signal? If I really have to add an external clock then I wouldn't want to bother.

What should the output clock from the DIR9001 be set at, 128Fs? Should I resample to 192kHz? Why does the ezDAC only resample to 96kHz?

Sorry for all the questions and thanks for the help, I'm still trying to a grasp on this digital stuff.


2006-12-30 2:01 pm

the SRC can reclock internally based on the input signal (Recovering clock!)....so no external Clock needed.....its just another option.

Maybe I did understand you wrong - do you want to use the DIR and SRC together? Because SRC has a DIR built-in!

The DIR9001 cant upsample to 192Khz. It can only play what is coming in....if 48Khz is on the inputs then only 48Khz on the outputs.

192 Khz is not a must......96Khz upsampling is also okay....but many companies are using higher values (192Khz instead of 96 Khz) to imply "better". 96 Khz is okay....with 96Khz you can use 256fs....some people use only 48Khz with 768Fs......never compared the sound of the different settings......i think its just a "measuring" thingie!

But your suspicion is right....if you build a basic microDac....maybe SRC is not relevant because the benefit of an SRC would be.....using a external clock to reclock the DAC and SRC...to get more exact DA results. Drawback......your micro DAC Design will be larger in size.

So, let the SRC out.......Micro1794DAC V1.0 (without SRC) :)


OK, I've modified my schematic to include the SRC4192 using the recovered clock from the DIR9001. I have hardwired all the jumper settings for what I need, hopefully I have them correct.

I would really appreciate it if someone could take a look and tell me if this will work. The only thing I am really unsure of is the reset of the SRC4192. In the datasheet it says it needs a clock signal present during reset, but the clock is coming from the DIR9001 that also gets reset at the same time.

Here is a rundown of all the jumper settings.....


CKSEL -> ERROR : Auto Mode
FMT0 = 1, FMT1 = 1 : 24-bit, MSB-first, I2S Output
PSCK0 = 0, PSCK1 = 0 : SCKO = 128Fs


IMFT0 = 1, IMFT1 = 0, IMFT2 = 0 : 24-bit I2S Input
MODE0 = 0, MODE1 = 0, MODE2 = 0 : Clock I/O Slave Mode
OMFT0 = 1, OMFT1 = 0 : I2S Output
OWL0 = 0, OWL1 = 0 : 24-bit Ouput


MONO = 0, CHSL = 0, FMT0 = 0, FMT1 = 0 : I2S, Stereo, Sharp
DEM = 0 : De-Emphasis OFF



  • microasrc_dac.pdf
    46.7 KB · Views: 985

Sorry, was busy typing when you posted above.

I guess I am not understanding some things here. I do not see where the SRC4192 has the ability to input a SPDIF signal, hence the need for the DIR9001? I also don't understand how to determine what the DIR9001 output clock Fs needs to be.

I see a mistake I made already with the SRC mode selection. It should be....

MODE0 = 1, MODE1 = 1, MODE2 = 0 : Clock IN Slave Mode/Clock OUT Master Mode 256Fs

Maybe I should stick to the basics and just finish the active I/V and stop trying to show off. :eek:
I *think* I have finally figured out what xxxFs is now (something that should have been obvious), it is the sampling frequency times a multiplier. For instance, if the sampling rate of the SPDIF signal to the DIR9001 is 48kHz and I have PSCK[1:0] set for 256Fs, then the output clock frequency will be 12.288MHz.

This makes sense now because when I play around with the settings of PSCK[1:0] with my working DAC it doesn't seems to change anything. I see that is because the PCM1794A can accept all the different clock frequencies that creates.

One baby step at a time I guess.
Eureka, I've got it! (proclaims the noob)

I think I have it all figured out now.....

The maximum sampling rate the DIR9001 can handle is 96kHz. If I set PSCK[1:0] to 512Fs, that will make the clock output 49.152MHz. With the SRC4192 set to slave input with a master output of 256Fs, the PCM1974A will be receiving a 192kHz sampling rate.

I will ask one more time to be sure though, will using the recovered clock from the DIR9001 make this whole exercise pointless?