Fast pin switching: XC-1A

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
Posts: 1
Joined: Tue Aug 24, 2010 11:08 am

Fast pin switching: XC-1A

Post by jasona »


We want to switch 100 output pins with a timing resolution of 1us. We need to be able to switch multiple pins on and off at the same time. The calculation of which pins to control will be done beforehand and the XMOS will only need to perform the switching. For example:

at t=1us we need to switch on pins 1, 15, 40 (could be up to 20 pins)
at t=2us we need to switch on pins 16 and 87 and switch off pin 15

Currently we are using an XC-1A.

What we need to know is:

1. Can we perform these operations this quickly?
2. What is best way to control the timing?
3. Should we be addressing the pins as 1-bit, 8-bit or 16-bit ports?
4. If we need 16-bit ports, do these have to be enabled somehow?
5. We have tried toggling a single pin as quickly as possible, and have managed to achieve a rate of 10 MHz. Adding any further code (toggling another pin, or using a conditional) drastically slows this down. How can we increase the speed of this?


User avatar
XCore Addict
Posts: 165
Joined: Wed Feb 10, 2010 2:32 pm

Post by Woody »

Each XCore only has 64 pins, so you'll need to have a 2 core device and have some way of synchronising the two. For very short latencies you could synchronise the xcores with an output on 1 xcore driving an input on the other one. Once synchronised I would expect that you'd be able to use the channels to set port times to schedule the times you need the signals to change at.

You say you want 1us accuracy(1MHz), but then also imply that 10MHz is not fast enough. Could you clarify what the requirements are. We can implement interfaces at 66MHz.

If you really are just outputting signals then you're probably best off selecting the largest port widths you can.

How much time do you have between finding out that a signal must change and the change occurring?