Can I connect two startKITs via XMOS Links?

If you have a simple question and just want an answer.
User avatar
mio
Member
Posts: 13
Joined: Fri Dec 11, 2009 6:14 am
Location: Japan

Can I connect two startKITs via XMOS Links?

Post by mio »

Hi,

I have used to connect *TWO* XK-1 boards, and they worked well.

Now, I got a second startkit from Digikey.
I want to connect two boards through XMOS Links like two XK-1s.

However, I do not know how to write suitable XN file for two start kits,
and I do not know how to program each core separately.
(XK-1's connector has JTAG chain, so programming to two XK-1 was same as single core)

Is there any document or sample?

Please let me know.

mio

 

 



mio / a.k.a. yu-pi-te-ru at http://moxi.jp/
User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

It is possible to connect two startkits together via links and boot them from SPI. The steps should be as follows:

1. Compile a two tile application with the attached .xn file. You can only use one of the ADC tiles (it isn't possible to include both in the network since they would have the same routing ID). For example:

xcc app.xc 2_STARTKITS.xn -o app.xe

2. Next generate two flash binary images:

xflash app.xe --noinq --boot-partition-size 0x20000 -o flash_image

This will create two images (flash_image_0 and flash_image_1).

3. Finally write the flash images over jtag:

xflash --id <board_0_id> --write-all flash_image_0 --target STARTKIT
xflash --id <board_1_id> --write-all flash_image_1 --target STARTKIT

4. If you power cycle both boards at the same time they should boot into the two tile application you've written to the flash.

ExampleXN file is attached.
You do not have the required permissions to view the files attached to this post.
User avatar
mio
Member
Posts: 13
Joined: Fri Dec 11, 2009 6:14 am
Location: Japan

Post by mio »

Hi, Sethu,

Attached My test program - LED blink program - was not worked.

My Test Procedure is ....

1)compile the code app.xc and xflash with the method which you tell me.
   Attached Progarm app.xc is LED Blink program, so

Code: Select all

 tile[1] counter send -- XMOS Link C --> tile[0] recieve -> out to tile[0] LED0,1 (XS1_PORT_1A.1D)
2)I connected each board of linkC.

J8 connection is

Code: Select all

Board 0 J8  ---- Board 1 J8Pin3 (1OUT) ---- Pin6 (1IN)Pin4 (0OUT) ---- Pin5 (0IN)Pin5 (0IN)  ---- Pin4 (0OUT)Pin6 (1IN)  ---- Pin3 (1OUT)Pin11(GND)  ---- Pin11(GND)Pin13(+5V)  ---- Pin13(+5V)
3)I connect USB only board0 for power supply via J8-Pin13.

4)Boot each core (probably), but LED is not flashed.

5)xrun --dump-state is below. It seems to be stopped.

---- tile(board) 0 side---

Code: Select all

xrun --dump-state-with-no-xe***** Active Cores ****** 1  tile[0] core[0]  0x000102a4 in ?? ()Thread 1 (tile[0] core[0]):***** Call Stack *****#0  0x000102a4 in ?? ()***** Disassembly *****0x102a4:        in (2r)         r0, res[r1] *0x102a6:        chkct (rus)     res[r1], 0x1 *0x102a8:        ldc (ru6)       r5, 0x00x102aa:        out (r2r)       res[r1], r5 *0x102ac:        outct (rus)     res[r1], 0x1 ****** Registers *****r0             0x80012002       -2147409918r1             0x80010002       -2147418110r2             0x80020002       -2147352574r3             0x104c4  66756r4             0x1      1r5             0x10450  66640r6             0x0      0r7             0x0      0r8             0x0      0r9             0x0      0r10            0x0      0r11            0x104c4  66756cp             0x10440  66624dp             0x10460  66656sp             0x1ff74  130932lr             0x101b2  65970pc             0x102a4  66212sr             0x40     64spc            0x0      0ssr            0x0      0et             0x0      0ed             0x0      0sed            0x0      0kep            0x10080  65664ksp            0x0      0
---- tile(board) 1 side---

Code: Select all

***** Active Cores ****** 1  tile[0] core[0]  0x0001016e in ?? ()Thread 1 (tile[0] core[0]):***** Call Stack *****#0  0x0001016e in ?? ()***** Disassembly *****0x1016e:        in (2r)         r4, res[r0] *0x10170:        setd (r2r)      res[r0], r40x10172:        in (2r)         r6, res[r0] *0x10174:        ldw (3r)        r4, r11[r6]0x10176:        in (2r)         r5, res[r0] ****** Registers *****r0             0x80020002       -2147352574r1             0x1      1r2             0x1      1r3             0x0      0r4             0x0      0r5             0x80020102       -2147352318r6             0x0      0r7             0xff00   65280r8             0x0      0r9             0x0      0r10            0x0      0r11            0x10364  66404cp             0x10320  66336dp             0x10330  66352sp             0x1ff74  130932lr             0x1006c  65644pc             0x1016e  65902sr             0x40     64spc            0x0      0ssr            0x0      0et             0x0      0ed             0x0      0sed            0x0      0kep            0x10080  65664ksp            0x0      0
You do not have the required permissions to view the files attached to this post.
User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

Workspace of working example attached.
You do not have the required permissions to view the files attached to this post.