HDMI to I2S (for audio not transport) working but w/ noise.

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hi,

I am trying to use HDMI as input for my ADAU1701 so I can digitally process the audio without the problem of the DSP's internal ADC's.

I have the following:
-. 3E Audio ADAU1701
-. HDMI to I2S Aliexpress board
-. PCM5102 DAC with I2S input.

When I connect the HDMI to I2S directly to the PCM5102 DAC it works perfectly, and it sounds quite good, but when I connect the HDMI to I2S board to my DSP It gets a ton of noise and what I think it's jitter. Unusable.

I presume the problem is in the clocks, so I tried every configuration available in the Register Control on Sigma Studio, and most of them did not make a difference. Setting "Program Length" to 4x and unticking "Master Mode" in "Serial Output" made the sound better but still with noise and jitter.

So, what is the problem and how can I fix it (If possible)?

Maybe the HDMI 2 I2S board work as Master I2S, and the ADAU1701 only supports I2S input as SLAVE?

Or the fact that the clock in the HDMI to I2S board is a 24.00Mhz crystal and the 3E Audio ADAU1701 has a fixed PLL setting for 12.288Mhz?

IDK. Any Suggestion is welcomed as I am planning on getting and HDMI to I2S board with all 8 channels available, but first I want to make it work in stereo.

Cheers

UPDATE1: I just noted that the publication of the PCM5102 DAC has this note: "BCK and DATA marked inverse!When using pls make BCK as DATA , DATA as BCK". So, if in my board they are inverted (but I connected them w/o knowing this), and it does work OK with my HDMItoI2S, maybe this HDMItoI2S board also has the BCK and DATA flipped? I don't think so, but I will try it anyway.

UPDATE2: I don't think the cables are flipped, after thinking a little, when I connect the PCM5102 DAC to my DSP it works perfect, so it's a NO GO.
 

Attachments

  • Capture.JPG
    Capture.JPG
    97.3 KB · Views: 175
  • Capture2.JPG
    Capture2.JPG
    159.9 KB · Views: 214
  • Capture3.JPG
    Capture3.JPG
    135.3 KB · Views: 200
  • Capture4.JPG
    Capture4.JPG
    177.6 KB · Views: 164
  • Capture5.JPG
    Capture5.JPG
    138.9 KB · Views: 197
  • Capture6.JPG
    Capture6.JPG
    120.1 KB · Views: 96
Last edited:
Last edited:
Thanks!

Considering the cost of the converters, it would be better to just switch to a more modern ADAU1452 which has the flexibility to work at different clock rates (and also have 4 I2S inputs available).

Anyway, IS the problem exactly? That the HDMItoI2S works in master mode? or that it's clock it's 24Mhz?
 
That basic problem is that the HDMI clock is any clock other than the one you are using to run your DSP chip. The same clock needs to clock everything (although you could divide its output to have two synchronized frequencies). Otherwise you need to use an ASRC, or else use a FIFO. Most of current breed of audio DSP chips have internal ASRCs, often more than one.
 
Last edited:
Thanks for your reply!

Very helpful and easy to understand for a non technical mind like mine.

I will test it with my ADAU1452 which has several Asynchronous Sample Rate Converters, and then reply here to report my results.

Regarding on why the PCM5102 DAC worked OK with the HDMItoI2S board, is it because the DAC act as slave of the HDMI?
 
Yes, the dac chip has a PLL that allows it track the incoming I2S and generate its own master clock signal from that. Not the best from a jitter perspective, but if the PCM5102 dac doesn't have its own master clock crystal oscillator, then PLL is all that's left. Another possibility might be for the DSP and the dac chip to share the same master clock (SCK, it appears to be called for this dac, someone can correct me if I have that wrong). Table 3, on page 11 of the dataheet lists which SCK frequencies can work with various digital audio sample rates. Maybe that's more complicated than you want to get though.
 
Last edited:
I made some edits to my last post, in case any of it is of interest.

To avoid the PLL and just run off a local crystal clock on the dac board, it looks like either the both the DSP and the dac would need to be on that same dac crystal clock (or a divided version of it), or that the dac acts as I2S master and one of the ASRCs in the DSP chip can be used to convert the DSP output to match the I2S clocks from the dac board. Either way, the dac chip would receive I2S synchronous with its crystal clock.

The downsides of either option are: (1) If a shared master clock, then some hardware design and board modifications would probably be needed. (2) If the dac acts as I2C master then the DSP has to apply another ASRC to the digital audio data stream to match its I2S output to the dac clock. IME ASRC conversion is not completely audibly transparent, at least to some people, and or on some reproduction systems. Also, some ASRCs have better specs and better SQ than others. The ones embedded in DSP chips and in some dac chips are not usually the ones I would prefer to use. That said, the ones in DSP chips are used for a lot audio applications without people complaining about the sound. Its just that they're not ultra hi-fi to me.
 
Last edited:
If I need an oscilloscope, then I am out of luck as i don't have one.

If there is another way, I can try it.

I suppose you could remove the crystal from the ADAU1701 board and use MCLK from the HDMI board instead. Default HDMI board MCLK maybe 256Fs and if that fails setup for 384Fs. The PLL mode pins only give 4 options and there is every chance the HDMI board MCLK frequency is within that range of 64Fs to 512Fs.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.