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

I did a search of the Model# RR71A101MDN1 embedded on the StationPi PCB (Optional Capacitors):

RR71A101MDN1 Nichicon | Mouser

https://www.mouser.com/datasheet/2/293/e_rr7-1919103.pdf

What dis do? Lowers impedance?

Looking forward to a StationPi build... Just focusing now on optional caps or possibly Super/Ultra Caps to power.


Cheers


EDIT: nvm, just read the FAQ. Recommended but not necessary. I'll order these capacitors as a throw in on my next Mouser order.

They are optional polymer local decoupling capacitors. It's good the have but not a must.

Regards,
Ian
 
Hi Ian,
whenever i set the divider jumper to /2 on the McFifo board, the mute signal stop working after a track switch.
i am feeding it with DSD signal coming from hqplayer.
with the divider set to /1 when i stop a track, until I press play again, the mute stay active.
with a /2 or /4 divider set on the mcfifo, when i stop a track the mute glitch on for a second and then goes back to un-mute.

that's it

What's your 1/2 MCLK for?

Regards,
Ian
 
Disabled Account
Joined 2020
They are optional polymer local decoupling capacitors. It's good the have but not a must.

Regards,
Ian

Thanks. They are <$1 a piece so I will just tack on my next Mouser order.

If I go the UltraCap route, these polymer local decoupling capacitors not needed at all?

I am just trying to keep things simple on the current Group Buy, but with building around a StationPi I am considering the MKIII again.

Problem is now two 5V is needed. One for RPi5V and one for Audio5V.

If I dedicate the MKIII to Audio5V clean side, the RPi5V can be somewhat dirty?

I believe the MKIII outputs only one 5V?

So what I'm considering is:

MKIII
UcMateConditioner
UcHybrid
UcAdapterKIT

to power the clean side (Audio5V).

I don't know yet how to power the RPi5V side since the MKIII has only one 5V.

I am LiFePO4 batteries only, no mains so please rule out any mains products.

So for now just assuming the RPi5V side I don't have to be as extreme with clean power?

I think I can get away with just my own LiFePO4 battery 5V + polymer capacitor to power the RPi side and consider a second MKIII later on.

Just wondering what is the optimal UltraCap solution to power a StationPI for both 5V sides...
 
Disabled Account
Joined 2020
Hi Ian,

Very nice. I read that in the Q3 manual but didn't know how to apply 3.3V to the StationPi.

So one 3.3V into J5 on StationPi and one 3.3V into J5 on Q3 or just one 3.3V into J5 on the StationPi is enough?

Naturally the MKIII 5V into J3 on the StationPi.

This is great news as the MKIII becomes more and more justifiable...

Cheers


EDIT: After re-reading your answer. I take it as one can use 3.3V into the J5 on the StationPi versus 5V.


Now just need to consider how many UcHybrid needed? 1 or 2 3.3V.
 
Last edited:
Hi,

I’m still curious about the flip flop reclock option. I found some GHz logic Flip Flops from maxim integrated that have low jitter Typ. 0.2ps - 0.8ps. But these are for differential signal and clock. Regarding lvttl signals I found the following Answer from the official Ti service site. The AUC logic Family which is ?fastest/newest? Has a Typ. jitter of 25ps.
https://e2e.ti.com/support/logic/f/151/t/810935?tisearch=e2e-sitesearch&keymatch=SN74AUC1G79


Ian, why do you think, that the flip flops have better jitter performance than the actual implementation of the fifo output? Is the isolation after your fifo of that importance? Wouldn’t be an isolation before the FiFo more beneficial?

Do you have actual readings on jitter performance on bit clock right after fifo and after flip flop ?
 
Problem with McFIFO display

I have a problem with getting the McFIFO display to work. The display is showing X02 and 49.1530Mhz on the second line after power up, but can't get the I2S or DSD info to display. I'm not even getting it on the Arduino Serial monitor. The sound is playing fine, no problems there, it's just the info not showing on the display.

Any pointers?

- I'm using Arduino Uno with Arduino IDE 1.8.14 on Mac.
- DIYINHK USB receiver is feeding an ADAU1452 DSP board which is outputting 4 channels at 192khz to McFIFO, and DSP is also using the slave MCLK from McFIFO.
- McDualXO outputs to two AK4490 DACs.
 
I have a problem with getting the McFIFO display to work. The display is showing X02 and 49.1530Mhz on the second line after power up, but can't get the I2S or DSD info to display. I'm not even getting it on the Arduino Serial monitor. The sound is playing fine, no problems there, it's just the info not showing on the display.

Any pointers?

- I'm using Arduino Uno with Arduino IDE 1.8.14 on Mac.
- DIYINHK USB receiver is feeding an ADAU1452 DSP board which is outputting 4 channels at 192khz to McFIFO, and DSP is also using the slave MCLK from McFIFO.
- McDualXO outputs to two AK4490 DACs.

I wrote that Arduino code long time ago. The source code is on GitHub. Please Trying to debug it by yourself. I don't have any technical support by now. Sorry about that. I'm gonna design a dedicate Fifo controller with display if I have time. It's no my R&D list.

Regards,
Ian
 
Hi,

I’m still curious about the flip flop reclock option. I found some GHz logic Flip Flops from maxim integrated that have low jitter Typ. 0.2ps - 0.8ps. But these are for differential signal and clock. Regarding lvttl signals I found the following Answer from the official Ti service site. The AUC logic Family which is ?fastest/newest? Has a Typ. jitter of 25ps.
https://e2e.ti.com/support/logic/f/151/t/810935?tisearch=e2e-sitesearch&keymatch=SN74AUC1G79


Ian, why do you think, that the flip flops have better jitter performance than the actual implementation of the fifo output? Is the isolation after your fifo of that importance? Wouldn’t be an isolation before the FiFo more beneficial?

Do you have actual readings on jitter performance on bit clock right after fifo and after flip flop ?

@janho12345

The best flip-flops are from Potato GHz TTL. Very small company but does great jobs to high speed logic chips. You can buy PO74G374A directly from them to replace current flip-flops for better performance.
http://www.potatosemi.com/potatosemiweb/datasheet/PO74G374A.pdf

I'm currently working on ReclockPi project which can make FifoPi I2S/DSD output signals quality to a higher level. I will try to make it available soon.

Regards,
Ian
 
@janho12345

The best flip-flops are from Potato GHz TTL. Very small company but does great jobs to high speed logic chips. You can buy PO74G374A directly from them to replace current flip-flops for better performance.
http://www.potatosemi.com/potatosemiweb/datasheet/PO74G374A.pdf

I'm currently working on ReclockPi project which can make FifoPi I2S/DSD output signals quality to a higher level. I will try to make it available soon.

Regards,
Ian

I'm not sure.

Several measurements have demonstrated that the best phase noise is achieved by the AC or better the ACT families.

Although they need a proper implementation because they generate a lot of RF.
 
I have a problem with getting the McFIFO display to work. The display is showing X02 and 49.1530Mhz on the second line after power up, but can't get the I2S or DSD info to display. I'm not even getting it on the Arduino Serial monitor. The sound is playing fine, no problems there, it's just the info not showing on the display.

Any pointers?

- I'm using Arduino Uno with Arduino IDE 1.8.14 on Mac.
- DIYINHK USB receiver is feeding an ADAU1452 DSP board which is outputting 4 channels at 192khz to McFIFO, and DSP is also using the slave MCLK from McFIFO.
- McDualXO outputs to two AK4490 DACs.

You can use DSD detecting output on McFIFO board.
It's what i do.

nounouchet
 
@nounouchet which DSD detecting output are you referring to and how do you use it? AFAIK the only way to get PCM and DSD info is over the J21 header that I'm already using.
What I see sometimes in Serial monitor is messages 6 (xonumber), then 2 (wrong signal), then 9 (fmck - xo frequency in Mhz), but can't tell why I get the wrong signal message, I'm sending 32bit 192kHz signal from my DSP.
 
@iggy111
I use the serial line (J21) to retrieve the different information on the signal. But it doesn't work well for DSD.
To obtain reliable information between PCM and DSD, I use at the input of my Arduino the signal generated by the McFIFO board (GND & DSD pins). This signal is recovered between J21 and J15 on the board.
 
@nounouchet thank you, if you could send a link to the code you are using for that would be very grateful.
I managed to fix my problem, it took a lot of googling and trial by error, but finally I have all the PCM info on display.
I had to change a "while" into an "if" for the Serial.available which was the crucial part (especially when using ESP8266 to avoid WDT reset loops), and add a delay of 1ms at the start of loop so all the data gets displayed, otherwise it's scrambled and/or partial.

Will fork Ian's original code and add this fix with comments.