Return-to-zero shift register FIRDAC

Regarding the common mode suppressor, I liked it better slowed down to just take care of DC offset. Don't know if it has any effect on distortion, but it seems to help in terms of retrieving more detail from the dac. Because the dac may still have some other issues, slowing down the CM circuit may expose something else that could benefit from some a little TLC. Such it is with the R&D part of dac design IMHO.
 
Last edited:
On a more positive note, as I explained in post #1979 my plan was to put this in a 160x100mm Hammond box. Actually I managed with plenty of room to spare so even a 120x100mm would have been sufficient. But the height of the sandwiched RTZ+USB-DSD board is the issue as it is almost 50mm.

Here are some pictures of the result.

RTZ_front.jpg


RTZ_back.jpg


RTZ_top.jpg


The box contains RTZ dac board, USB-DSD board (STM32F723+PCM2DSD), DC-DC converter (my "SilentSwitcher" using TPS7A39), front panel control board (with display, rotary encoder and IR led) and a headphone amp with switchable crossfeed.

As can be seen from the front display I've added a software based digital volume control. This operates on PCM input from USB so it uses 32 bits. I intend to use it only for the built-in headphone amp and fine tuning the output for my main amp which has 3dB stepped volume control.

Front and back panels are black PCBs. Not the best looking but fit for purpose.

All my other DAC boards (AK4490, AK4493, ES9038Q2M, ES9039Q2M) have the same layout so I can use the same box and panels for them as well.

And the volume knob is temporary :)
 
Last edited:
  • Like
Reactions: 4 users
The increased distortion at 10kHz seems to be caused by the common-mode noise suppressor circuit (around U8 & U15). My quick & dirty fix was to "eliminate" it by removing 3k9 resistors R46 & R89. This works as expected in differential mode but as @MarcelvdG promptly pointed out unfortunately not in single-ended mode as common-mode noise is increased and there will be DC offset unless 3rd filter stage is used.

Why not re-structure the filter so it filters common and differential noise? I always do that in my circuits with Op-Amp's.

Thor
 
On a more positive note, as I explained in post #1979 my plan was to put this in a 160x100mm Hammond box. Actually I managed with plenty of room to spare so even a 120x100mm would have been sufficient. But the height of the sandwiched RTZ+USB-DSD board is the issue as it is almost 50mm.

Here are some pictures of the result.

View attachment 1278934

View attachment 1278937

View attachment 1278938

The box contains RTZ dac board, USB-DSD board (STM32F723+PCM2DSD), DC-DC converter (my "SilentSwitcher" using TPS7A39), front panel control board (with display, rotary encoder and IR led) and a headphone amp with switchable crossfeed.

As can be seen from the front display I've added a software based digital volume control. This operates on PCM input from USB so it uses 32 bits. I intend to use it only for the built-in headphone amp and fine tuning the output for my main amp which has 3dB stepped volume control.

Front and back panels are black PCBs. Not the best looking but fit for purpose.

All my other DAC boards (AK4490, AK4493, ES9038Q2M, ES9039Q2M) have the same layout so I can use the same box and panels for them as well.

And the volume knob is temporary :)
Very nice compact build
 
And just to be sure it would nice if someone using Marcel's board can confirm the 10kHz distortion issue.
I haven’t seen reports indicating such, so possibly no issues with Marcel’s design. IIRC when the 3rd stage active filter of the original design was bypassed, there was reported improvement in the sound and some new boards from others, sans third stage was introduced. You still haven’t answered my question earlier. Do you find an improvement in sound after the mods made that measured well, no? Apologies for being persistent but I reckon an interesting reference going forward.
 
Yes, re-structuring is probably needed. However it would be nice to find some improvement e.g. with opamp swap as JosephK suggested as many have already built boards.

If I have time, I might give it a look-see, so it may be doable more easy-like.

I don't understand what you mean. The filter consists of two identical (except for mismatch, of course) single-ended filters and a common-mode loop, so it already filters both in common and in differential mode.

What Bohrok found is that the common mode servo causes increased HD (and thus IMD) at Higher frequencies.

It may be the impedance mismatch on the inputs that is causing this, if there is any. I'd need to look closer. Ot the gain setting for the common mode loop.

I would probably have a set of capacitors from I/U conversion to ground and between the two I/U conversion nodes. And instead of using two single ended filters make a fully differential one.

While we are that, making both I/U conversion and Filter "FDA" using what is often called the "Birt" circuit will be worth it.

You are familiar with it? In effect, use a second OPA to generate an inverted output and use this composite as fully differential amplifier, balanced in and out. Common mode servo remains needed, +in of inverter OPA.

Thor
 
"FDA" using what is often called the "Birt" circuit will be worth it.

FDA = Fully Differential Amplifier.

Can of course also use OPA1632, but the BBC's Mr. Birt had a clever alternative for generic Op-Amp's back in 70's:

1709101548709.png


This is for an ADC driver, but the principle should be obvious, as should be the application to Marcel's I/U & Filter.

The circuit has a raft of advantages. Depending on noise gain, it is often possible to use a different inverter OPA than the main one, usually speed is helpful and noise low enough only to not degrade common mode noise (and thus SE output noise) materially. Only one fly in the ointment, needs careful stability analysis if not implemented as bandwidth constrained active lowpass.

Thor
 
I'm not sure if CCIF IMD is a proper measurement for this issue.
Here is mine with "stock" filter.
You are right that IMD at these frequencies are not the optimum for the issue at 10Khz that you mentioned, but IMD and THD are different expressions caused by the same non linear behaviour so in this case with the even higher frequencies it could give a fair impression.
Allow me to comment on your results.

With -4.97dBFs, you could have increased the sum of both signals to 0dBFs, which is what I did to get the most critical situation.

The 2nd order product f2-f1 and the first two 3rd order product 2f2-f1 and 2f1-f2 are usually having roughly the same amplitude, which was true in my case but with ca. 25dB between them not at all in your image, altough we were at the same level with the first two 3rd order products.
https://www.diyaudio.com/community/threads/return-to-zero-shift-register-firdac.379406/post-7403333

So the question is: how can these large differences be explained. When I remember correctly, in my case the filter was equiped with the OPA2210, what amps did you use ?
And does the used DSD frequency make a difference for the 10Khz distortion that you measured, I made my measurement at DSD256.

Hans
 
FDA = Fully Differential Amplifier

Right. We use those all the time at the place where I work, we just never use that abbreviation...

I was not familiar with the Birt circuit. It looks quite asymmetrical, although it becomes symmetrical when you replace the op-amps with nullators and norators. A nullator is a network element with 0 voltage across it and 0 current through it, essentially a model for an ideal op-amp input stage. It is drawn as single circles in my sketch. A norator is a network element that can have any voltage across it and any current through it, essentially a model for an ideal op-amp output stage. It is drawn as double circles.

IMG_20240228_075105.jpg


I see one advantage and one disadvantage compared to the circuit in my filter. The advantage is that there is only op-amp input stage contributing to the differential noise and the disadvantage the asymmetry you get when the op-amps are not ideal.

I have no idea whether this will solve the 10 kHz distortion issue (to the extent that there is an issue at all, the distortion bohrok2610 measured at 10 kHz is larger than at 1 kHz, but not excessively large).