DSP Xover project (part 2)

I have the nanoDIGI at the moment and it uses volume on the Spdif I think it´s working fine.
If you don´t have any plans on volume on the Spdif,I could use nanoDIGI only as a volume control before your board.
Are you planning on explaining the feautures of the software?:)
 
How are things coming along ?

It's all going alright, thanks for asking.

I successfully connected a device on one I2S expansion port.
Just to summarize, this port always works in slave mode - i.e. the device must supply the sync and the bit clock. The board is happy with any sample rate because the data goes through the sample rate converter, spitting out data at the rate selected for the processing (48 kHz, 96 kHz or 192 kHz).
If there's still interest for this, we'll see in a future revision how to organize a master clock fed through that same port. This was requested by a member in this thread, and I had already said that I had made the hardware change to allow this - but we'll need to figure out how to make the software compatible with this option, as that supplied master clock would become the system clock.

I also had the second I2S port working. It's spitting out 6 DSP channels freely routed - i.e. the user selects in the application what DSP channels he wants to collect on the expansion port. This second expansion port always works in master mode: this means that it supplies the sync and the bit clock at the selected DSP rate (again, can be 48 kHz, 96 kHz or 192 kHz).

I'm currently busy with the firmware update procedure which will allow the application to flash the board with a new firmware - for both the DSP and the MCU.

Regarding hardware, it's all fine although a bit slow, sorry again for this. The PCBs have been manufactured and the stencil for assembly is ready too. We're currently waiting delivery of the last components in order to start assembly. This is unfortunately out of my control because some parts have an um-compressible lead-time.

Cheers

Nick
 
I interpret asynchronous to mean the DAC controlling the clock/data rate rather than the dsp board

No this is not possible. The reason is simple: the master clock is onboard.
You simply cannot request samples from a system that has its own clock without going through a sample rate converter.

I think what he is asking is if you can run an external dac in addition to the onboard dacs ?
Trev

This is absolutely possible. The data transiting through this expansion port is independent of what's going to the DACs - but they share the same clock. The cool feature is that, if we decide to expand the number of channels, then we can effectively have 14 analogue outs (8 + 6).


So its still synchronous but the master is the DAC or do You want to disconnect the clocks and introduce some memory to compensate for the two clock domain differences?

You must set your external DACs is slave mode: they get the data lines, the frame sync, the bit clock and the master clock.

Hi Nick
I have been following this thread for some time now with interest. This is a fairly simple question but will make life easy for me at least:

Are you planning a nice case for this board?

Aidan

Hi Aidan,

There's no plan for a finished product at this point at least. We'll make a demo unit and we'll display all the details so that you build your own unit with confidence.

Cheers

Nick
 
From a differrent thread.
The center of all functions will be the dsp filter that "Chapark" is working on
and at the I2S input I will have "Loriens" usb reciver. I will also be in need of
both digital and analog inputs of the dsp. If I'm not misstaken that will
disqualify the possibility to use the Wave IO as a masterclock, right? The
plan for outputs are to connect two stereo dacs to I2S and use ESS digital
volume control before sending this to four channels of John Broskie's "Unballancer".


Could someone with more experience in digital clocking please describe the
best way to clock a setting like this. I don't mind bying an external clock
if that's needed.
 
dahlberg said:
The center of all functions will be the dsp filter that "Chapark" is working on and at the I2S input I will have "Loriens" usb reciver. I will also be in need of both digital and analog inputs of the dsp.

So far no problem

dahlberg said:
If I'm not misstaken that will disqualify the possibility to use the Wave IO as a masterclock, right?

Well yes and no.
I assume Wave IO and Lorien's usb receiver are the same unit.
In the first version of the board software, the central clock is internal. This is what disqualifies any external clock as master clock.
So, with the first software, you just connect your USB receiver to the I2S port and data is converted to the internal rate. You can also use any of the analogue/spdif inputs and you can anytime switch between all 4 inputs (analogue, coax, optical, I2S).
This works perfectly but uses the onboard clock.

In a forthcoming software revision, there will be the option for feeding an external clock to the system through the expansion port.
With this setup:
- Analogue audio will be AD converted using that external clock.
- SPDIF will be rate converted to the system rate
- I2S input data will bypass the sample rate converter because it's expected to be at the rate of the supplied external clock.

In this second setup, you're responsible for supplying a clock that has the proper rate. This means that if you actually supply a clock different from the one that you told the system you would supply, then it's not going to work as expected. Also, if the rate of your clock changes (for example because the clock is regenerated from chunks of digital data sampled at various rates), then you are going to hit problems as well.
I want here to stress that if you're making the choice of supplying an external clock, you're also taking on the responsibility of that clock. It's not going to be plug and play.

dahlberg said:
The plan for outputs are to connect two stereo dacs to I2S and use ESS digital volume control before sending this to four channels of John Broskie's "Unballancer".

Ok so here we have another device who wants a clock.

I'd like first to briefly mention that the term 'asynchronous' doesn't fit nicely the context of I2S coms. Indeed, I2S is inherently 'synchronous' in the sense that both endpoints use the same clock transmitted along data and synchronously to it.

So this is it: there are 2 endpoints (external DAC and DSP board) but only one clock, so we must decide whether the clock comes from the DSP or from the DAC. We'll call 'Master' :D the endpoint supplying the clock and we'll call 'Slave' :( the endpoint sync'ed with the Master's clock.

I said here in a previous post that the expansion port that has 6 extra outs will only work in Master mode. This actually means that data on this port is at the system's central rate, which is derived either from the onboard PLL or from the external clock supplied via the other expansion port (future software revision as discussed above).

You understand now that if you want this port to work in Slave mode (i.e. clock supplied by your DACs), then you're introducing a 3rd clock in the system. :mad:
We have to set now who's the 'boss of it all', as would say Lars Von Trier. Do you want the master clock to be generated from the onboard PLL? Do you want that clock to be supplied by the USB receiver? Or do you want the master clock to be supplied by the DACs? This is the question you must answer.

My guess is: just feed your DACs with the system's central clock - which can be either PLL generated or supplied by the receiver. For allowing this, you set your DACs in Slave mode and let the DSP board be the Master of this I2S com. :)
 
Last edited: