Asynchronous I2S FIFO project, an ultimate weapon to fight the jitter

Disabled Account
Joined 2019
Hi,
I'not Ian but may help. FifoPi was developped for I2S outputt "only".
But note you can have a better result with a stacked I2S dac hat than long connection with spidf cable : less jitter.
If you want or really need a spidf outputt from a Rpi, you should look at Digione from Allo.
Hope this helps
 
Hi Ian,

I'm not sure if this question has been asked before. I'm going to run 9038pro in pure sync mode with multiple sampling rate contents.

Is McFIFO and McDualXO capable of output MCLK at fixed 128*fs regardless of the input sampling rate? For example like dual 22.5792Mhz and 24.576Mhz XO output at 5.6448Mhz and 6.144Mhz at the McDualXO MCLK for 44.1khz and 48khz contents, while still maintaining 22.5792Mhz and 24.576Mhz at the McFIFO slave MCLK output to feedback to USB/I2S interface?

I don't want to touch 9038pro clock divider if McFIFO can do it that way.

Thanks
 
Hi Ian,

Is McFIFO and McDualXO capable of output MCLK at fixed 128*fs regardless of the input sampling rate? For example like dual 22.5792Mhz and 24.576Mhz XO output at 5.6448Mhz and 6.144Mhz at the McDualXO MCLK for 44.1khz and 48khz contents, while still maintaining 22.5792Mhz and 24.576Mhz at the McFIFO slave MCLK output to feedback to USB/I2S interface?


I thought MCLK is always the same, no matter the input sampling rate.
The slave MCLK is tied to the master MCLK from McDualXO according to the documentation and the slave is equal or smaller than the master.
You can get the relationship you want if you switch the MCLK feeds (output goes back to USB and slave goes to DAC) but you obviously loose the isolation. And you'll need something to control the jumpers to set the MCLK divider for the slave output.
It's probably easier to resample everything to an FS that matches your clock since documentation states that there is sound quality improvement if using direct clock frequency without dividers.
 
@ Nounouchet,

I'm sure it worth it but it's a too big money for my pocket. I'm on the way to test what Andrea Mori have made here with Laptech sc-cut & discroll oscillator.

Sure most of us have 44.1 KHz materials, better to choose a XO multiple of that.
What do you use to over/upsample please? A Pi like renderer I assume (or a pc), but which playback software ?
I use Volumio with Qobuz Studio on a Rpi3.
I resample directly in Volumio.


nounouchet
 
Really excited to build a new DAC setup with Ian's nice products! Going to attempt a HQPlayer-RPi build (DSD512), hoping to get some guidance on my first try.


Going to build a full RPi- FIFOPi- Dual Mono 9038 Hat- LL1544a I/V with LiFePO4 supply first. Then hope to add in a DSC2 v2.5.2 from @ppy @Vit123 as another option for DAC, also trafo (LL1684) I/V.



Does anyone know if I can hook up dual mono DAC hat via GPIO to FIFOPi, and still use the u.fl, and mute and gnd vias on the FIFOPi board to supply another DAC?


If I can manage to get any of that working, I might give DSD1024 a try. Wish me luck!


Any input on the above would be hugely appreciated! Thanks!
 
RushBattle said:
Does anyone know if I can hook up dual mono DAC hat via GPIO to FIFOPi, and still use the u.fl, and mute and gnd vias on the FIFOPi board to supply another DAC?


If I can manage to get any of that working, I might give DSD1024 a try. Wish me luck!


Any input on the above would be hugely appreciated! Thanks!

I'll follow
 
Last edited:
Try to find a I2S t S/PDIF convertor. I don't have one so far. Maybe I can develop one later.

Regards,
Ian

It would be very nice if you did something like 502DAC, without the analog part of this board and using previously developed solutions such as full galvanic isolations from pi, the ability to install different clocks through the panels as well as the ability to power such a board. from battery lifepo4.
With Best Regards!
 
Low volume at 44.1 KHz Playback

Hi Ian

Just received my FiFoPi from you today and thank you very much :)

I have hooked up the FiFoPi to my setup running a PCM1794 COD DAC from Twisted Pear Audio. The DAC does not have a local oscillator.
The FiFoPi works great and switches fine between the two oscillators from different sources, but when I play music from 44.1 KHz material the volume is very low, down to under a ~1/4 sound level. When I play 88.2 and 96 KHz the sound is at "Normal" level.

Do you have any idea on that I can do to fix this please? :)

Running ApplePi-driver in Volumio(2.555) since this is set to 24bit playback. When the Volumio resampling software is set to 88.2 KHz or higher, the volume is back to normal. But this would make no sense to use when running the fine new FifoPi...
COD DAC Schematic, PCM1794A
 
@miklau

FifoPi doesn't have any problem with all other DACs I've tested. Seems it has some business with PCM1794.

I would suggest you:

1. Switch FifoPi jumper settings 2 to "ON" position to enable 32bit I2S output. If it is back to normal, it means your PCM1794 doesn't take 16bit I2S format. If still, go to 2.

2. Change the two XOs on the FifoPi to 22.5792/24.5760 MHz. If it is back to normal, it means your PCM1794 can not take MCLK at 1024Fs or higher. Or, please check the PCM1794 format selection setting PINs to see what's the music format it can take.

Please let me know if you have any update.

Good luck to your project.
Ian
 
Member
Joined 2003
Paid Member
Ian,

I believe you diagnosed that one correctly with #2. The datasheet for the PCM1794a (AND PCM1793 and PCM1795) ALL show a max System Clock Frequency of 768fs or 338688MHz and 36.864MHz for 44.1 & 48 sampling frequencies, respectively. I have tried to run a Dial DAC (PCM1793) synchronously with an Allo Kali with 45/49 clocks and it did not work, just as the datasheet stated.

Greg in Mississippi
 
Try to find a I2S t S/PDIF convertor. I don't have one so far. Maybe I can develop one later.

Regards,
Ian

There are many i2s to S/PDIF converters on the market, also some for the raspberry. Most of them are using the WM8804, some the CS8406.
I could not find one simple i2s to S/PDIF converter using DIT4192 or DIT 4096.


because pi's lack of a m_clock out the converters for raspberry are not build to apply an external clock.
But now, you gave us this FiFoPi and we have a clock. But now we lack the proper converter....
 
There are many i2s to S/PDIF converters on the market, also some for the raspberry. Most of them are using the WM8804, some the CS8406.
I could not find one simple i2s to S/PDIF converter using DIT4192 or DIT 4096.


because pi's lack of a m_clock out the converters for raspberry are not build to apply an external clock.
But now, you gave us this FiFoPi and we have a clock. But now we lack the proper converter....

I know you don't like PLL clock:). What's the best I2S to S/PDIF chip do you think? TI, AK or something else?

I would be interested in developing one. Please keep asking to see if I can make it true.

Regards,
Ian
 
Member
Joined 2003
Paid Member
Ian's RPi GB Goodies Impressions, tweaks, mods and hints thread just started here:

https://www.diyaudio.com/forums/pc-...mpressions-tweaks-mods-hints.html#post5743505

Don't everyone post at once!

Greg in Mississippi

P.S.
<SNIP>
Sure it's not bad I have two and it sounds even better with a close energy decoupling cap : 1 uF Panasonic PPS or even better (subjective listening) with a CornellDublier acrylic cap. <SNIP>

Interesting. I have a few of those CDE 1uF Acrylic's around. Have you tried the Rubycon PML-film series?
 
Last edited:
Ian,

I believe you diagnosed that one correctly with #2. The datasheet for the PCM1794a (AND PCM1793 and PCM1795) ALL show a max System Clock Frequency of 768fs or 338688MHz and 36.864MHz for 44.1 & 48 sampling frequencies, respectively. I have tried to run a Dial DAC (PCM1793) synchronously with an Allo Kali with 45/49 clocks and it did not work, just as the datasheet stated.

Greg in Mississippi

@Greg and @Ian

Thank you both for your reply.

The PCM1794 is a 24bit DAC only. That is also why I use a driver that samples everything at 24bit. That works fine both in MoOde(Driver: Dial DAC) and Volumio(Driver: ApplePi).

I have also tried to make a Kali reclocker 45/49 MHz work with my PCM1794 and same issue as Greg described.
So thanks for the input from both:) I will try to source a pair of 22/24 clocks for the FiFoPi. I have never thought of that and it makes sense when looked at the Data sheet.
Greg where you able to make your Dial DAC (PCM179x) work with set of 22/24 MHz clocks?
Ian do you know if the low-cost generic clocks you have used on the FiFoPi is available at Mouser, or maybe know the brand name? I was thinking of buying a pair 22/24 just to see if it works with my PCM1794 COD DAC before spending the extra on a set of CCHD-557.

Thanks again:)
 
I know you don't like PLL clock:). What's the best I2S to S/PDIF chip do you think? TI, AK or something else?

Ian

From a picture it looks like (I don’t know real or for sure) the auralic Aries G2 (4k$ Streaming device) has a CS8406 from Cirrus.
Why not start with that one?

But please, if you realise that the raspberry with FiFoPi and Ian’s McSpdif is better than the above named, don’t ask for 4k$!