XHRA to SABRE ES9018k2M interface

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
Post Reply
wlodek
Member++
Posts: 22
Joined: Fri Jul 22, 2016 3:19 pm

XHRA to SABRE ES9018k2M interface

Post by wlodek »

Hi,
I am interfacing XHRA to Sabre DAC ES9018k2M with I2S. Due to some requirements I have to isolate the DAC from XHRA.
XHRA is working on the nonisolated part together with the Si5351A PLL that produces 3 clocks. Two of these clocks go to XHRA (24 MHz, XMCLK) and the third clock signal (MCLK) goes to DAC.
The digital isolation is implemented with the Ti IS7840. MCLK from Si5351A , LRCLK and XMCLK I2S clocks go through Ti IS7840 to DAC.
It works but the audio signal is distorted. When listening to music it was hard to notice but when I tested the pure sine signal then it is obviously distorted (sounds really bad).

Do you think that digital isolation could introduce clock jitter that can be a source of my problem?
When watching the audio signal on the output (with the scope) I can see that from time to time there are single sine cycles that are of lower amplitudes. The sinus itself is quite smooth. This can also be caused by loosing a sample. I will do some more test with spectrum analyzer to get a better picture of the distortion

Wlodek
Attachments
schematic.pdf
(304.17 KiB) Downloaded 328 times
schematic.pdf
(304.17 KiB) Downloaded 328 times


User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

Hi.

Are you using an isolated dc-dc power supply to power the TI ISO7840 digital isolators ?

Have you isolated all interface pins related to the DAC ? The ISO7840 is a 4/0 digital isolator so all channels on this device are in the same direction. This should be fine for your clock outputs but not suitable for the I2C (SDA) port pins onboard the ES9018k2M DAC.

We have used the NVE and SiLabs digital isolators for years (not audio related projects) with success in high volumes. You may want to also test the SiLabs drop-in replacement devices.

https://hifiduino.wordpress.com/2011/11 ... 2s-or-not/

from the above webpage:

Code: Select all

 December 24, 2012 at 10:02
Reply	

Ian’s Fifo reclocker does exactly that: clocking after the isolator…
perhaps consider to use the required digital isolators for the I2C interface -> place the PLL on the isolated side and then direct to your DAC. Then the PLL will be local to your DAC.
wlodek
Member++
Posts: 22
Joined: Fri Jul 22, 2016 3:19 pm

Post by wlodek »

Hi Mon,
I2c interface is isolated with separate isolator .
I am considering moving the PLL to the isolated side so that mclk will be close to DAC and two other clock will travel back back to XHRA. For this I will need additional isolator.
Before I do this I will play a little bit to find out what makes the problem. At first glance clocks look Ok on the output from ISO and are comparable with XMOS evb which does not use isolation
User avatar
infiniteimprobability
XCore Legend
Posts: 1126
Joined: Thu May 27, 2010 10:08 am
Contact:

Post by infiniteimprobability »

Hi - it would be good to get some more details about the nature of distortion. Can you capture a wav file and maybe do an FFT? (I use audacity to do this which is free!).

By zooming in on the sections of sine wave that are causing the distorition, you can tell a lot. i.e. data misalignment (which could be happening due to issues on i2s), missing samples or zeroed samples etc..

Also, is the problem better/same/worse at lower sample rate? This might reveal more about what is happening too..
wlodek
Member++
Posts: 22
Joined: Fri Jul 22, 2016 3:19 pm

Post by wlodek »

Hi,
I could not record output signal to wave today but I performed some additional tests. The sine frequency is modulated over the time so I can hear some higher (and lower) frequencies changing slowly in time. I thought it could be caused by my DC2DC converter but replaced it with the external DC supply and it changed nothing.
I tried with different sine frequencies, and different sampling frequencies. The sampling resolution (16/32 bits) has no effect as I can always see that for each LR clock I have 32 data clocks for left and 32 data clocks for right channel.
I will have to check QSPI memory contents that is used for XHRA booting. I took the default cfg file that comes with the XHRA eval board and removed only those I2C commands to SABRE ES9018k2M that deal with the headphone amplifier which is not present on ES9018k2M.
The XMOS eval board works with ES9016Q2C.
I did not change any settings for the PLL Si5351A which is the source of CLK signals to XHRA and Sabre DAC.
Maybe the cfg file that comes with the eval board has some Si5351 registers wrongly programmed.
This is what I have to check carefully.
Post Reply