Obsah

XMOS startKIT

Board contains mysterious microcontroller from XMOS. This board is not available in our lab, however few of us have it. In case you want to experiment with this board, you can try to ask us.

If you have discovered anything useful about programming tile[0] (or any other undocumented feature of startKIT) just add it to this page or contact Fosfor. (Also any English corrections are welcomed ;-) )

Features

What has been discovered

How to programme tile[0]

Basically there are (should be) two ways of uploading your own code into tile[0] - by the bootloader burned into OTP of tile[0] or by the JTAG connected to TP1 board-edge connector. The first one is working for us, the second don't.

Running code using bootloader

  1. Compile some code to run on tile[0]. Use definition for XS1-U16A-128-FB217 but use only one tile. You can use USB PHY, which is on this tile. You should get *.xe file from this step.
  2. Extract binary from your XE file. This should be done by tool xobjdump with option -s –strip. (My binary to use is named image_n0c0_2.bin.)
  3. Get run_dynamic_xe and change XMOS_XTAG2_PID from 0xf7d1 (for XTAG2) to 0xf7d3 (for StartKIT). You will also need this USB binaries.
  4. Force run_dynamic_xe to read your binary instead of int burnData[] from header file. This can be achieved by converting your bin file into array of ints or (better) by learning run_dynamic_xe to read it from file.
  5. Load your binary into tile[0]
    1. Disconnect startKIT (if connected).
    2. Connect startKIT with micro-USB cable to your PC.
    3. Run run_dynamic_xe. DO NOT run any other XMOS tool before loading your binary.
  6. Now it should be running your code. run_dynamic_xe automatically soft-reset USB after your binary is loaded, so you do not need to unplug it from your PC. When you unplug USB cable from PC, startKIT will loose its power and it will forget your code. On next reconnect the bootloader will be again active presenting itself as „XMOS startKIT“. So it seems to be unbreakable 8-)

Running code using xTAG-2

  1. Connect your xTAG-2 to the TP1 connector of your startKIT. Pins are shown in a table below.
  2. Disconnect micro-USB if connected and connect xTAG-2 to your PC.
  3. Use the startKIT with xTAG-2 as any other board. You should create your XN file derived from STARTKIT.xn and XS1-U16A-128-FB217-C10.xn.

(This should work, but it doesn't. We are able to identify two L tiles on the JTAG, we are able to query its actual PC/stack/registers state, but we are unable to run any application by this method.)

xTAG-2 XSYS startKIT TP1
pin description pin description
1 5V power 5 5V power
3 JTAG Test Reset - Active Low M MSEL (MODE[2], MODE[3])
5 JTAG Test Data (to target) I TDI
7 JTAG Test Mode Select S TMS
9 JTAG Test Clock K TCK
11 Debug D DEBUG_N
13 JTAG Test Data (from target) O TDO
15 System Reset - Active Low. R RST_N
20 Ground G Ground


Photos: startKIT with attached XSYS connector