PDA

View Full Version : XC-1A control board



WGhost9
01-20-2010, 01:03 AM
let me begin by saying i am a huge Axon fan. Love it. But lately I am starting on a project that requires more processing power and larger program space (ROM though some extra ram wouldn't hurt either). I have been drooling over the XC-1A from XMOS as an alternative board in my price range. It boasts a lot of a lot of power but how easy is it to get working on a robot? Particularly has anyone managed to program UARTs for it like in the tutorials, and how does one use the multithreading capabilities? Thanks for the advice.

lnxfergy
01-20-2010, 08:02 AM
I've been using an XC-2 for a couple of months. I've walked through most of the tutorials without incident, and have a bot here that's running around on the XC-2 (basically, just closed loop motor control right now). There are a few things you'll have to deal with when using the XMOS compared to an AVR:


It's a 3.3V device, so you'll have to level-convert for almost everything
No onboard ADC, you'll need an external one, there's an example or two though.
Pins aren't arranged individually like the AVR, they are in blocks of 1,2,4,8, and 16.
#3 is just one of the many major paradigm shifts from the AVR, it will take a bit of time to adapt to the new architecture, especially in coding for the multi-threading.
There's still only 64K of RAM per core, into which code must be loaded. So, if your big problem is ROM space on the AVR, it may actually be worse on the XMOS, unless you can spread the work/code out amongst a number of cores (not threads, cores, the 8 threads of a core share the 64k)

That said, the development tools are great.

-Fergs

WGhost9
01-20-2010, 11:23 AM
That's interesting; so how does the multi-core work? Do you write a separate executable for each core? and if so what is the memory space for the program on each core?

Adrenalynn
01-20-2010, 01:14 PM
No - you choose the execution path in code.

on stdcore[0] : blah;
on stdcore[1] : blah;

or threading:

par
{
on stdcore[0] : blah;
on stdcore[1] : blah;
}
return ;

WGhost9
01-20-2010, 03:17 PM
If the cores have separate RAM, can they communicate through some shared space? Also does each core use a separate bank of pins?

lnxfergy
01-20-2010, 03:22 PM
If the cores have separate RAM, can they communicate through some shared space? Also does each core use a separate bank of pins?

Yes (called channels) and Yes. You should probably read through the tutorials from XMOS, they're really quite well written.

-Fergs