Xmos USB Audio Streaming

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
User avatar
Manust
Member++
Posts: 19
Joined: Tue Mar 29, 2011 3:56 pm

Xmos USB Audio Streaming

Post by Manust »

Hello!

i would like to introduce you the schematics for my USB Audio 2.0 Board. It will be a part of my Master Thesis and i hope you could check the controller part (page 3) for any mistakes, because i'm new to XMOS Controllers.

Our Eagle university license doesn't allow me to put Eagle Files on the net so i can only provide a pdf of the schematics at the moment.

I'm starting a PCB this week with these schematics and will post it here as soon as its ready.

This first board will be for a few tests. So only Digital I/Os will be provided, and an isolated I2S Out/In

Thanks for your help,
Manuel
You do not have the required permissions to view the files attached to this post.


bearcat
Respected Member
Posts: 283
Joined: Fri Mar 19, 2010 4:49 am

Post by bearcat »

My comments are only questions to ponder, and are not recommendations.

Looks like you are following the reference design pretty close.

The USB spec indicates a desire to stay at / under 10uF on the VBUS.
I would put some local charge storage close to the L1. Add a 10uF close by (layout dependant).
I am unclear if you need the pull up on the JTAG debug line.
Just recently the XLINK on the XTAG2 is being used for the XSCOPE. You may want to add these links to allow use of the XSCOPE.
You may review the ISO74xx specs. It may list more than a .1uF as recommended. I would think a 10uF on each isolated supply would be prudent (along with the .1uF).
What is the purpose of the CMD lines? Single direction?
What about software control for the ADC / DAC's. If your point is to test different ADC/DAC for your thesis (a guess), or to support different chips, then I would imagine you are going to need I2C or SPI to the DAC / ADC and that's not easy to isolate.
You will need the 150Mhz isolators for higher sample rates.
Need termination of some kind on the isolated links?

(In general) I question running I2S offboard. For testing purposes, it's probably fair. But for a design I think there are issues. The isolators should be at the DAC / ADC. This allows for use of line drivers to that board. All the above add significant jitter and clock skew. The isolators are rated at up to 1nS per channel, of jitter and skew, across multiple channels it's going to be more. With line drivers, is the isolation needed? Of Course, there is the 3.3 / 5V / CMOS / TTL issue with various DAC's / ADC's / commercial products.

Since this is so close to the reference and if you are only building 1 or 2, it might be easier to modify a reference board and add a daughter card for the I2S. The design is looking good so far. Good Luck!
User avatar
Manust
Member++
Posts: 19
Joined: Tue Mar 29, 2011 3:56 pm

Post by Manust »

Thanks for your hints.

I already made a few changes this afternoon that included the capacitance on VBUS and decoupling of the isos.

ah didn't know that I'm going to look over the XLINK section tomorrow when i'm in my office.

We need isolation so power supplies are completely isolated from the PC side. yes indeed isolators are 150MHz types. But Isolaters now will be on the DAC/ADC Board.

CMD lines come from an old DAC board that is controlled with a 2bit value i've got. But now i'm going with a new one with i2c interface. For isolation we got the ADUM1250/2250 so there should be no problem.

Yeah i2s offboard... In this design usb part and analog part are supposed to be on different pcbs. But there will be only 2-3cm between these boards so there shouldn't be problems.

I'm going to post the newest schematics tomorrow since i haven't got them here.

Modifying the reference design will be hard, since we're going with eagle in our designs. I guess i'm faster making my own pcb

good night :)
Corin
Experienced Member
Posts: 66
Joined: Fri Dec 11, 2009 3:38 pm

Post by Corin »

Hi Manust,

Just as a point (not a full review) - that the SPDIF_RX will not work. The input for SPDIF_RX needs to be connected to a 1 bit port as well as not being reclocked by the D-type as the SPDIF will be different to the MCLK. Furthermore, you may require a PLL (e.g. CS2300-CP) as used on the L2 audio board to synchronise to the external SPDIF input.

Kind Regards,
Corin
User avatar
rp181
Respected Member
Posts: 395
Joined: Tue May 18, 2010 12:25 am

Post by rp181 »

Hey,
I have a question.

How do you add those information blocks to schematics, where you can put in title, sheet number, etc..? I only figured out how to add the frame.
User avatar
Manust
Member++
Posts: 19
Joined: Tue Mar 29, 2011 3:56 pm

Post by Manust »

Thanks for the information Corin...

have to look over that as soon as i find time for it :)


Those information blocks are a feature of Eagle. You have to activate xref (change -> xref -> on). If you add label there will be these blocks instead of the netname only!
User avatar
Manust
Member++
Posts: 19
Joined: Tue Mar 29, 2011 3:56 pm

Post by Manust »

Hey,
finally found some time to think about a few changes.

But there seems to be a problem i guess you could give me some help. I think there are not enough 1 Bit ports for me :/ and going to a l2 device is with this package not possible for our test pcbs.
If I'm right folowing ports are 1-Bit Ports that are free when using ULPI:
XOD0 - Flash/I2S
XOD1 - Flash
XOD10 - Flash/I2S
XOD11 - Flash/I2S
XOD24 - I2S
XOD25 - Free
XOD34 - Free
XOD35 - SPDIF_TX
XOD36 - MCLK

I would need I2C and SPDIF_RX well and for a PLL the Sync_Out. Is it possible to implement an I2C bus on the 32Bit Port?

Thanks for your help :)
Corin
Experienced Member
Posts: 66
Joined: Fri Dec 11, 2009 3:38 pm

Post by Corin »

Hi Manust,

These ports are indeed free when the chip is in ULPI mode.

It is not possible to implement I2C on the 32b port, as it requires the pins to be in opposing directions (e.g. SCL driving the clock out and SDA receiving the data in). You could put 1 pin of the I2C bus on the 32b port though (e.g. SCK) provided that it was set into open drain mode (which might mean that the other signals require pull-ups).

Kind Regards,
Corin
User avatar
Manust
Member++
Posts: 19
Joined: Tue Mar 29, 2011 3:56 pm

Post by Manust »

Hey,

Sorry for not posting for such a long time... had too much other stuff to do :?
After talking to a possible customer i had to change my requirements a bit.

For the moment i will build an USB-SPDIF Interface with an Input and Output at 192kHz.
I know the XMOS Controllers are able to produce S/PDIF directly but now where using an external S/PDIF Transmitter to make it easily exchangable with a DAC in future PCBs with only small Software changes necessary.
For S/PDIF Receive I'm using a CS8416, that will provide the recovered MCLK of the Input Signal.

The Schematics and a first PCB Layout are attached to this post

Any Suggestions on this would be great,
thanks in advance,

Greetings,
Manuel
You do not have the required permissions to view the files attached to this post.