xn file for 3 L1's and SDK 12.2.2

Technical questions regarding the XTC tools and programming with XMOS.
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

xn file for 3 L1's and SDK 12.2.2

Post by lilltroll »

So I have a custom board with 3 L1's mounted at the moment

Code: Select all

Available XMOS Devices
----------------------

  ID    Name                    Adapter ID      Devices
  --    ----                    ----------      -------
  0     XMOS XTAG-2             lSJR3akh        L1[0..2]
Can anyone give me a hint how to write the xn file under 12.2.2 where tiles and stuff exists.

The topology looks like this:

Code: Select all

L1 {B} ---  {B} L1 {C} ----- {A} L1
           flash   {D} ----- {B}


User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

Trial and horror

Is there some HOWTO documents for this somewhere??

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<Network xmlns="http://www.xmos.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.xmos.com http://www.xmos.com">
  <Type>Custom Board</Type>
  <Name>QUAD C5 devices</Name>

  <Declarations>
    <Declaration>tileref tile[3]</Declaration>
  </Declarations>

  <Packages>
    <Package id="0" Type="XS1-LnA-64-LQ64">
      <Nodes>
        <Node Id="0" InPackageId="0" Type="XS1-L8A-64" SystemFrequency="500MHz">
          <Tile Number="0" Reference="tile[0]"/>
        </Node>
      </Nodes>
    </Package>
     <Package id="1" Type="XS1-LnA-64-TQ128">
      <Nodes>
        <Node Id="1" InPackageId="1" Type="XS1-L8A-64" SystemFrequency="500MHz">
          <Tile Number="1" Reference="tile[1]"/>
        </Node>
      </Nodes>
    </Package>
   <Package id="2" Type="XS1-LnA-64-LQ64">
      <Nodes>
        <Node Id="2" InPackageId="2" Type="XS1-L8A-64" SystemFrequency="500MHz">
          <Tile Number="2" Reference="tile[2]"/>
        </Node>
      </Nodes>
    </Package>
    </Packages>

    <Links>
        <Link Encoding="2wire" Delays="0,1">
            <LinkEndpoint NodeId="0" Link="XLB"/>
            <LinkEndpoint NodeId="1" Link="XLB"/>
        </Link>
        <Link Encoding="2wire" Delays="0,1">
            <LinkEndpoint NodeId="1" Link="XLC"/>
            <LinkEndpoint NodeId="2" Link="XLA"/>
        </Link>
        <Link Encoding="2wire" Delays="0,1">
            <LinkEndpoint NodeId="1" Link="XLD"/>
            <LinkEndpoint NodeId="2" Link="XLB"/>
        </Link>
    </Links>
  
    <ExternalDevices>
        <Device NodeId="1" Tile="1" Name="bootFlash" Class="SPIFlash" Type="M25P16">
            <Attribute Name="PORT_SPI_MISO" Value="PORT_SPI_MISO" />
            <Attribute Name="PORT_SPI_SS" Value="PORT_SPI_SS" />
            <Attribute Name="PORT_SPI_CLK" Value="PORT_SPI_CLK" />
            <Attribute Name="PORT_SPI_MOSI" Value="PORT_SPI_MOSI" />
        </Device>
    </ExternalDevices>


  <JTAGChain>
     <JTAGDevice NodeId="0"/>
     <JTAGDevice NodeId="1"/>
     <JTAGDevice NodeId="2"/>
  </JTAGChain>

</Network>

Code: Select all

C:\XMOS\xTIMEcomposer\12.2.0\configs\XS1-LnA-64-TQ128.pkg:4: Error: L00169 Package file includes unmapped node id "0".
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

This one compiles at least

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<Network xmlns="http://www.xmos.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.xmos.com http://www.xmos.com">
  <Type>Custom Board</Type>
  <Name>QUAD C5 devices</Name>

  <Declarations>
    <Declaration>tileref tile[3]</Declaration>
  </Declarations>

  <Packages>
    <Package id="Package B" Type="XS1-LnA-64-LQ64">
      <Nodes>
        <Node Id="Core B" InPackageId="0" Type="XS1-L8A-64" Oscillator="25MHz" SystemFrequency="500MHz">
        <Boot>
          <Source Location="LINK"/>
        </Boot>
          <Tile Number="0" Reference="tile[0]"/>
        </Node>
      </Nodes>
    </Package>
     <Package id="Package C" Type="XS1-LnA-64-TQ128">
      <Nodes>
        <Node Id="Core C" InPackageId="0" Type="XS1-L8A-64" Oscillator="25MHz" SystemFrequency="500MHz">
          <Boot>
           <Source Location="SPI:bootFlash"/>
           <Bootee NodeId="Core B" Tile="0"/>
           <Bootee NodeId="Core D" Tile="2"/>
      </Boot>
          <Tile Number="0" Reference="tile[1]"/>
        </Node>
      </Nodes>
    </Package>
   <Package id="Package_D" Type="XS1-LnA-64-LQ64">
      <Nodes>
        <Node Id="Core D" InPackageId="0" Type="XS1-L8A-64" Oscillator="25MHz" SystemFrequency="500MHz">
        <Boot>
          <Source Location="LINK"/>
        </Boot>
          <Tile Number="0" Reference="tile[2]"/>
        </Node>
      </Nodes>
    </Package>
    </Packages>

    <Links>
        <Link Encoding="2wire" Delays="0,1">
            <LinkEndpoint NodeId="Core B" Link="XLB"/>
            <LinkEndpoint NodeId="Core C" Link="XLB"/>
        </Link>
        <Link Encoding="2wire" Delays="0,1">
            <LinkEndpoint NodeId="Core C" Link="XLC"/>
            <LinkEndpoint NodeId="Core D" Link="XLA"/>
        </Link>
        <Link Encoding="2wire" Delays="0,1">
            <LinkEndpoint NodeId="Core C" Link="XLD"/>
            <LinkEndpoint NodeId="Core D" Link="XLB"/>
        </Link>
    </Links>
  
    <ExternalDevices>
        <Device NodeId="Core C" Tile="1" Name="bootFlash" Class="SPIFlash" Type="M25P16">
            <Attribute Name="PORT_SPI_MISO" Value="PORT_SPI_MISO" />
            <Attribute Name="PORT_SPI_SS" Value="PORT_SPI_SS" />
            <Attribute Name="PORT_SPI_CLK" Value="PORT_SPI_CLK" />
            <Attribute Name="PORT_SPI_MOSI" Value="PORT_SPI_MOSI" />
        </Device>
    </ExternalDevices>


  <JTAGChain>
     <JTAGDevice NodeId="Core B"/>
     <JTAGDevice NodeId="Core C"/>
     <JTAGDevice NodeId="Core D"></JTAGDevice>
  </JTAGChain>

</Network>
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

I bypassed TDI and TDO to each chip and found out that 2 of them couldn't start due to a poor ground connection on the center pad* (I have a very large and thick ground-plane that eats heat) ; but attacking with the hot air + flux + a soldertip on the same time from behind made the solder to flow down the vias and connect to the center pad on the L1-64. I can now run hello world on each tile by it self.

*Something like "core is not enable" erro- message.

I'm soon ready to try and connect the 3 tiles again.
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

I prefer the big hole method for home assembled boards
User avatar
lilltroll
XCore Expert
Posts: 956
Joined: Fri Dec 11, 2009 3:53 am
Location: Sweden, Eskilstuna

Post by lilltroll »

Bianco wrote:I prefer the big hole method for home assembled boards
Same here, I'm used to do a larger center hole, but I'm new to Altium Designer which I used for this board. I used the integrated tool in Altium to create the footprints, but I will change the center hole size to the next revision.
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

It's very easy to modify a footprint in Altium to get a hole.
Actually my library footprints don't have a hole.
When deployed on a PCB project you can right click the center pad and modify the settings.
Make it multilayer instead of top layer and set the hole size accordingly.
If you compare your footprints with the library it will note that it is different though.