Hey!

First time on the site? Say hello here!
jelle
Junior Member
Posts: 4
Joined: Tue Jan 04, 2011 2:32 pm

Hey!

Post by jelle »

Hi,

I am jelle, 22 years old, studying for audio engineer in germany.
I'm also interested in programming and electronics and just started reading "programming xc for xmos"

Also maybe planning to build an audio recorder as thesis project, but still trying to figure out if the goals i set aren't to much.

I still having some "newbie" questions about xmos.

Greets jelle


User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

Hello Jelle, welcome to Xcore.
If you have any questions, don't hesitate to ask them.
jelle
Junior Member
Posts: 4
Joined: Tue Jan 04, 2011 2:32 pm

Post by jelle »

Could you advise me a starter board? or a development kit?
And do you know a place in belgium, netherlands or germany where i could get one ?
Or a european online shop?

Thanx
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

Hello, if digi-key is not a viable option, check the distributor list: http://www.xmos.com/products/distributors
My employer gets the stuff from Alcom (they have offices in both NL and BE). I'm not sure if they accept private persons as customers.

The XC-1A board gives the most bang for your bucks as it features a quadcore processor.
But you cannot program other boards with the onboard programmer. If you plan to build your own boards an XK-1 + XTAG2 might be more of your likes. The XK-1 features a single core processor. With the XTAG2 you can program the XK-1 but also your own boards.

XMOS has also made an audio interface (The XAI) but it only directly supports the XDK dev kit which is the most expensive one. You might be able to make an adapter to connect it to other boards.
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

Do you what to use USB or Ethernet for communication to the outer world ?

With USB you will have the struggle with OS drivers on the host that need to be up to date with the OS version.

Ethernet, you have this
Image

Multi channel USB2.0
Image

With a XDK+XAI + SDRAM module you have everything, but also a large initial cost.
Probably not the most confused programmer anymore on the XCORE forum.
jelle
Junior Member
Posts: 4
Joined: Tue Jan 04, 2011 2:32 pm

Post by jelle »

Hey,

Somehow i think i would go for the XC-1A board or the XCARD XC-2.
And for storage i tought about an Ftdi vinculum chip because it allready supports Fat32, but i don't know if it is fast enough.
i've also been thinking about an wavefront semi AL1402G Adat decoder, To decode the Adat signal.

24bit audio * 48khz * 8 or 16 channels is that even possible?
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

I believe that my XAI board can run 8+6 channels at 192 kHz @ 24 bit without any problems on the XMOS .
side.

You use the HW 64-bit port FIFOs and 32bit FIFO buffering, eg at 48 kHz you have over 100 instruction between each L/R bit using IS2.
On the stereo card it is even time to apply a IIR antialiasing filter for re sampling in the same thread that handles the port-com.

What might be troublesome if something uses a strange format that needs bit-baning. As long it's a multiple of 8 bits you can use the port with very few instruction, but 1byte->10 bit conversion with startbit/stopbit is typically slower, since you need to insert the bits with separate instructions.

Go for the XC-2. It has more port-connections and the Ethernet. With XC-1 you will only have 1 Mbit UART included to speak to a PC. I would draw an outline of the connections, to check that you have enough of pins. It's possible to write out/read in time-synced data at almost 50 Mbit/s on several 1-ports pin in parallel , so your 18.4 Mbit in total is not a horrible number. Hmm of course it would be easy to check the limit and try how many ports that it can handle. The simulator is a great tool, you do not even need a card.
But the Bit clock output of 3.072MHz at 4 pins with the wavefront chip should be like nothing.
But you have to check the pinout from the XC1/XC2. You will need at least 6 1-bit ports per ADAT chip on the same core.

Here is an example how you can capture the first 24 bits of several channels at the same time after the LR pin changes it states.

Code: Select all

wck when pinsneq(lr) :> lr @ t;
		// IIS sample starts at t + 1, so capture "up to" t + 1 + 23
#pragma loop unroll
			for (int i = 0; i < NUM_OUT; i++) {
				asm("setpt res[%0], %1" :: "r"(din[i]), "r"(t + 24));//set porttime
			}
A port has a timer which can be used to cause the transfer of data to or from the pins to
take place at a specified time. The time at which the transfer is to be performed is set
using the SETPT (set port time) instruction. Timed ports are often used together with
timestamping as this allows precise control of response times.
Probably not the most confused programmer anymore on the XCORE forum.
User avatar
saundby
Junior Member
Posts: 7
Joined: Sat Sep 04, 2010 9:23 pm

Post by saundby »

jelle wrote:Also maybe planning to build an audio recorder as thesis project, but still trying to figure out if the goals i set aren't too much.
The main difficulties I see with student projects are when the student tries to do too many different things that aren't central to their project. For example, they'll not only be configuring the hardware and writing the main application, but they'll also expect to build or program the interfaces, file systems, etc. as well.

Figure out what part of the project you will focus on, then get solutions for the rest that are ready to use, and won't require integration or tweaking on your part. It'll be worth the extra cost where necessary. I've seen great projects not come together in time because the students got the cheaper platform and tried to build up too much of what wasn't central to their theses, compromising their ability to finish on time.

Good luck!
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

About the vonculum chips: they can read about 400KB/s best case scenario. This drops fast when reading small files. I think one should expect something similar for writing. The vinculum chips are a hell to work with though. It's more or less a microcontroller with a USB interface and uses a firmware to do the things you want. Unfortunately the firmware quality isn't that great. See http://www.sphere.ws/blog/?p=230 about my adventures with the vinculum and XMOS so far.
jelle
Junior Member
Posts: 4
Joined: Tue Jan 04, 2011 2:32 pm

Post by jelle »

thanks for all the information and the code snippet.

I allready read the blog and if this vinculum chip is to confusing, i think it is better to just use an SD card for storage. Do you have some experience with the vinculum2 chips?

I've searched the net and the forum about fat32 and xmos support? Did anyone succesfull implement this with sd cards? I read a topic about a fat32 library.