Connect XMOS XS1-L1 to ESS 9018 Evaluation Board

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
ghmfranken
Member
Posts: 14
Joined: Thu Sep 27, 2012 6:41 pm

Connect XMOS XS1-L1 to ESS 9018 Evaluation Board

Post by ghmfranken »

How to connect the I2S outputs of the XMOS XS1-L1 to a Sabre DAC (evaluation board)? Which output PINs should be connect to what input PINs of the DAC? And what is a best practice of what type of connectors to use.
From the XMOS I read somewhere that I need to use the 3 outputs:
1. Bit Clock - SCLK
2. Left channel DSD data - LRCK
3. Right channel DSD data - DAC DATA

Below I provide a link to a picture of the input PINs of the Sabre DAC:
http://s5.postimage.org/azd4lgtt3/Sabre.jpg

Does anyone has experience with this? Any help would be welcome...


User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

I'm working with the same here, but custom made. Maybe we can share ES9018 register setup files later ?

You should connect BitClk,LRClk,and I2Sdata[0 3] (0 for stereo all four for 8 channel LPCM use) to available 1 bit ports on the L1. Any 1 bit port will do, but port 1A-1D might be used for SPI boot. If you are planning of using ULPI-USB on the same tile/core, many pin is used for that.

You also need to connect the MasterClk to a 1 bit port configured as a clock-source, and here is 2 varaints.
1) If the ES9018 is running in async mode using the internal PPL, you need an external clocksource.
You might use two clocks @ 44100*n and 48000*n or a programmable clockgen. n is typically 256.
The ES9018 can run either with 50 ppm clocks or 100 ppm clocks. If you use clocksource with a high drift the ES9018 will loose it's PPL-lock (I suspect). To analyse that connect the LOCK (a out pin on the ES9018) to an in port on the L1.

(2) If the clocksource to the ES9018 already is 44100*n and 48000*n you can connect it via a buffer to a 1 bit port configured as a clock-source.
ghmfranken
Member
Posts: 14
Joined: Thu Sep 27, 2012 6:41 pm

Post by ghmfranken »

Thank you for the reply. I am afraid that I need a little more step-by-step help as I can not get any audio out of my ES9018 evaluation board :-(. Of cource I am willing to share the register settings (but from my point of my register settings are useless at this time).

- The final goal of my project is to be able to playback DSD over PCM as described in: http://dsd-guide.com/sites/default/file ... rd_1v1.pdf. For this I already wrote a DSP thread to interact with decouple and audio thread (based on reference 3.3 software). Of course I am happy to share the source with you if interested!
- The intermediate goal is to get audio out of my ES9018 evaluation board using the L1 and the 3.3 reference software.

Here is a link with a photo to my current setup (http://postimage.org/image/7i7j644pv/
). The ES9018 board is connected to the XMOS L1 board (running unmodified 3.3 reference software):
blue wire: SCLK (XMOS) to 4th pin from right (ES9018).
red wire: LRCK (XMOS) to 5th pin from right (ES9018)
yellow wire: DAC Data (XMOS) to 6th pin from right (ES9018)

I can mail the export of the register state. Just send me a PM.

Your help is really appreciated!
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

You have to figure out which one is master and which one is slave.
The Cirrus CODEC is used in stand-alone mode and the ES9018 as well !?
I suspect that you have 2 master and 1 slave (XCore) at the moment.
There can only be one master that send the LR- and Bit-Clock. If you are running the ES9018 as master you will have to desolder the Cirrus CODEC or at least make the I/O high-Z.
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

Also consider to connect the GND on the ES9018 eval board directly to GND at the pinlist. Your current groundconnection if any seems to be very long via som USB cables.
ghmfranken
Member
Posts: 14
Joined: Thu Sep 27, 2012 6:41 pm

Post by ghmfranken »

I connected the GND pin on the L1 with a GND pin on the DAC and flashed the firmware with the version of the DSD over PCM project here on xcore: http://www.xcore.com/projects/dsd-audio-over-usb. From the project description, this seems to be a working I2S solution on the L1 reference board.

Looking in the ES9018 registers, register #27 (Status) now has a value of 0 (DPLL Locked). When playback audio, the locked led on the DAC is not on. Still no audio out of my Denon 4310 ampliefier? How to troubleshout what is wrong in my setup? Are there any other registers that I should pay attention to?
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

Have you manage to solve the problem ?

I would begin with something simple, write a small program that send out sinewave in PCM mode, like 1 period is 32 samples, and making that signal to lock the DPLL, and getting that tone to be spurious free.

Can you check the I2S signalling with a scope or an signal analyzer ?
Check that the DATA_CLOCK = Fs when using DSD. It should of course work the same way on your hardware as in the DSD/PCM project, but I haven't any experience of that yet.
ghmfranken
Member
Posts: 14
Joined: Thu Sep 27, 2012 6:41 pm

Post by ghmfranken »

Due to time contraints I did not follow up on my project. Today I managed to get audio of my setup (using the DSD over PCM project/firmware). It did crack a lot and the lock was gone from time to time, but that is due to a combination of clumsy soldering and the use of too long jump wires.

Thanks for all the support. I will now focus on propper soldering the connector header and getting rid of the cracks and the loss of the lock. Next I will focus on my own custom firmware. But at least I then have a basic setup for testing my code.
ghmfranken
Member
Posts: 14
Joined: Thu Sep 27, 2012 6:41 pm

Post by ghmfranken »

I managed to get I2S/DSD working perfectly (using the firmware of the "DSD audio over USB" project). I connected the XMOS board to the ES9018 evaluation board using the wiring described on http://hifiduino.wordpress.com (see http://s5.postimage.org/m8lcuq6lj/hifiduino.gif). Note that this setup requires remapping the DAC inputs. I also now properly soldered the pin headers on the XMOS board.

See http://s5.postimage.org/s893ydrdz/es9018_xmos.jpg for a picture of my test setup. So now I can focus on modifying the reference 3.3 software to output DSD.