Use of xConnect on XCORE-200 parts

If you have a simple question and just want an answer.
Post Reply
jzw
Member++
Posts: 24
Joined: Sat Nov 14, 2015 3:53 pm

Use of xConnect on XCORE-200 parts

Post by jzw »

I am probably missing a raft of documentation but I cannot find any information on using xConnect links between xcore-200 (xs2?) parts. I can find an example for use on xs1 parts but this will not build when an xs2 part is specified in the makefile. I have spent a long time searching for some information and am very surprised that it should be so difficult. I also have not found a definitive list of extensions to c as used in xc based programmes. I have been able to go quite a long way by extrapolating from various examples, but find this difficult to procede much further.



srinie
XCore Addict
Posts: 158
Joined: Thu Mar 20, 2014 8:04 am

Post by srinie »

Hi,

For XS2, the XS2 datasheet has more information - Section `D-Node Configuration` has more details.

Can you pls specify which example or documentation you are referring to (for xCONNECT example)?
If you are referring to AN001024 for xCONNECT usage, yes it has to be adapted for the XS2 related changes.

regards,
srinie
henk
Respected Member
Posts: 347
Joined: Wed Jan 27, 2016 5:21 pm

Post by henk »

Hi jzw,

Very little has changed - and it should all work as before. Having said that, building a multi-device design takes quite some effort.

The changes between XCORE200 and XS1-L/U/A are (with references to the data sheet <http://www.xmos.com/published/XL216-512-TQ128-Datasheet>):

(a) the pins where the links appear on the outside of the package are different (Section 3/4)
(b) XCORE200 enables you to boot over multiple links (Section 8)
(c) XCORE200 devices have two processors per node/switch (Section 1)

As an example, say you want to build a system of two XL216-512-TQ128 devices. The links are shown in Sections 3 and 4. This particular devices has 4 links on the its pins, XL0 & XL3 on the left, and XL4 & XL7 on the right:

Code: Select all

+-------+
|XL0 XL7|
|       |
|XL3 XL4|
+-------+
Suppose you want two links connecting the two nodes; you can wire XL0 of the right node to XL7 of the left, and XL3 of the right to XL4 of the right (a total of 20 nets assuming you use the 5-wire interconnect):

Code: Select all

    +-------+       +-------+       
    |XL0 XL7|=======|XL0 XL7|       
    |       |       |       |       
    |XL3 XL4|=======|XL3 XL4|       
    +-------+       +-------+
Then you need to set the right chip to boot from the left chip, so select boot mode 4 (X0D06 on the right chip needs a pull-up; Section 8 of the data sheet). The left chip needs to boot from something, so either get the F part with built-in flash, or connect a flash to it.

Finally, you have to build an XN file that has that includes those links:

Code: Select all

      ...
      <Links>
        ...
        <Link Encoding="5wire" Delays="2,2">
          <LinkEndpoint NodeId="0" Link="7"/>
          <LinkEndpoint NodeId="1" Link="0"/>
        </Link>
        <Link Encoding="5wire" Delays="2,2">
          <LinkEndpoint NodeId="0" Link="4"/>
          <LinkEndpoint NodeId="1" Link="3"/>
        </Link>
      </Links>
      ...
User avatar
CousinItt
Respected Member
Posts: 360
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

Hi,

in your example you use two 5-way links between the devices, but is it necessary? The data sheets are a bit vague on this point.

I'm hoping that if you only connect a single link the device will work it out.

Thanks.
Post Reply