Linking XMOS to ARM

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
User avatar
RogerH
Active Member
Posts: 55
Joined: Fri Oct 15, 2010 12:14 am

Linking XMOS to ARM

Post by RogerH »

Hi,

I read somewhere, can’t find it now, that someone had unsuccessfully attempted to link XMOS chips to ARM chips via XMOS links. I recall that person reverted to SPI which was successful

Has anybody succeeded in linking ARM's using XMOS links?

Cheers, Roger...


User avatar
Andy
Respected Member
Posts: 279
Joined: Fri Dec 11, 2009 1:34 pm

Post by Andy »

What sort of speeds do you require? If you're planning on transferring a lot of data between the 2 devices it might be better to use one of the ARM peripherals such as SPI because their GPIO isn't particularly quick.
User avatar
RogerH
Active Member
Posts: 55
Joined: Fri Oct 15, 2010 12:14 am

Post by RogerH »

Hi Andy,
Andy wrote:What sort of speeds do you require? If you're planning on transferring a lot of data between the 2 devices it might be better to use one of the ARM peripherals such as SPI because their GPIO isn't particularly quick.
I only next to exchange small messages at fairly slow rate, mostly commands to the XMOS and ACK's back to the ARM. Sounds like SPI would be the simplest solution.

Cheers, Roger...
User avatar
leon_heller
XCore Expert
Posts: 546
Joined: Thu Dec 10, 2009 10:41 pm
Location: St. Leonards-on-Sea, E. Sussex, UK.

Post by leon_heller »

Emulating XLInks on an ARM should be feasible, someone has done it with an AVR, IIRC. As mentioned, it won't be all that fast. A PIC32 would be better - I/Os work at the processor speed.
User avatar
bsmithyman
Experienced Member
Posts: 126
Joined: Fri Feb 12, 2010 10:31 pm

Post by bsmithyman »

Which makes more sense might depend on what your XMOS core is doing. If you're nearing the processing limit, then using an XLink takes the overhead out of the core. If you've got loads of free XCore threads, SPI doesn't take that much to implement and may have better performance on the ARM end (as mentioned above).
User avatar
RogerH
Active Member
Posts: 55
Joined: Fri Oct 15, 2010 12:14 am

Post by RogerH »

Thanks for the input guys.

For most of my applications in mind SPI would be fine. However using Xlink integration with the ARM opens up all sorts of possibilites in using for example channels to communicate with individual threads.

Being a newb to this I have no idea whether this is possible. As to issues with ARM I/O speed, I understand that it is possible to alter the speed of the Xlink on the XMOS chips so this may possibly be a way of matching the IO speeds. I will dig into this a bit more.

Cheers, Roger...
User avatar
RogerH
Active Member
Posts: 55
Joined: Fri Oct 15, 2010 12:14 am

Post by RogerH »

Well, I think that I have found the answer to my question and I believe that the answer is yes, it is possible to interface to an ARM processor via XLINK.

Thanks to the pointer from Leon_Heller to an AVR project to do this I eventually tracked it down to the XMOSLinkers project archive where there is a project that achieves this on an AVR chip.

refer here: http://archive.xmoslinkers.org/node/306

I see an advantage in using a XLINK instead of SPI in that using the Xlink it is possible to communicate directly with threads via XLINK channels.

So as soon as I get some XMOS hardware I will leap into this.

Expect a new project soon.

BTW…That XMOSLinkers archive is a great resource!

Thanks, Roger...
User avatar
leon_heller
XCore Expert
Posts: 546
Joined: Thu Dec 10, 2009 10:41 pm
Location: St. Leonards-on-Sea, E. Sussex, UK.

Post by leon_heller »

Yes, that's the project I was thinking of.
User avatar
RogerH
Active Member
Posts: 55
Joined: Fri Oct 15, 2010 12:14 am

Post by RogerH »

Thanks again Leon,

It doesn't look too difficult to port to ARM. It uses interrupts on the AVR to receive data from the XLink. I will likely port this to LPC1768 M3 where the interrupts are handled a little better than on the ARM7 chips.

Regards, Roger...