APPLICATION NOTES

Quick Search Results

  • Version
    Updated
    Download
    Title

xTIMEcomposer Studio examples

  • Version
    Updated
    Download
    Title
  • Getting Started with Binary Analysis in xTIMEcomposer Studio

    This application note shows how to get started with binary analysis using the xTIMEcomposer studio. It shows you how to open a binary in the binary analysis tool, browse the resource usage, modify the source code and see the change reflected in the analysis output.

    To get started, simply double click on Getting Started with binary analysis in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    None

    Prerequisites

    None

  • Getting Started with Debugging in xTIMEcomposer Studio

    This application note shows how to get started with debugging using the xTIMEcomposer studio. It shows you how to create and launch a debug configuration, set breakpoints, single step and inspect variable values during execution.

    To get started, simply double click on Getting Started with debugging in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller or the XMOS simulator.

    Prerequisites

    None

  • Getting Started with GPROF in xTIMEcomposer Studio

    This application note shows how to get started with GPROF using the xTIMEcomposer studio. It shows you how to run an application with GPROF profiling enabled. It then explains how to analyze the resulting profile using the built-in profiling view.

    To get started, simply double click on Getting Started with GPROF in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS Edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller or the XMOS simulator.

    Prerequisites

    None

  • Getting Started with Offline xSCOPE in xTIMEcomposer Studio

    This application note shows how to get started with offline xscope using the xTIMEcomposer studio. It shows you how to run an application using xscope to log information about the application. It then explains how to analyze the resulting trace file using the built-in offline xSCOPE trace viewer.

    To get started, simply double click on Getting Started with Offline xSCOPE in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS Edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller or the XMOS simulator.

    Prerequisites

    None

  • Getting Started with Real-Time xSCOPE in xTIMEcomposer Studio

    This application note shows how to get started with real-time xscope using the xTIMEcomposer studio. It shows you how to run an application with xscope logging and view the resulting information about the application as it is running. It then explains some of the features of the real-time xSCOPE view.

    To get started, simply double click on Getting Started with Real-Time xSCOPE in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS Edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller or the XMOS simulator.

    Prerequisites

    None

  • Getting Started with Simulator Tracing in xTIMEcomposer Studio

    This application note shows how to get started with simulator tracing using the xTIMEcomposer studio. It shows you how to run an application on the simulator with tracing enabled. It then explains how to analyze the resulting trace using the built-in trace view.

    To get started, simply double click on Getting Started with Simulator Tracing in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS Edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    This application note is designed to run on the XMOS simulator.

    Prerequisites

    None

  • Getting Started with the Task Viewer in xTIMEcomposer Studio

    This application note shows how to get started with the task viewer in the xTIMEcomposer studio. It shows you how to view the task graph for a given source file, modify the source code and see the change reflected in the updated task graph.

    To get started, simply double click on Getting Started with the task viewer in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    None

    Prerequisites

    None

  • Getting Started with the xTIMEcomposer Studio

    This application note shows how to get started with binary analysis using the xTIMEcomposer studio. It shows you how to open a binary in the binary analysis tool. Browse the resource usage, modify the source code and see the change reflected in the analysis output.

    To get started, simply double click on Getting Started with the xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller or the XMOS simulator.

    Prerequisites

    None

  • Getting Started with Timing Analysis in xTIMEcomposer Studio

    The XMOS architecture has predictable timing, which allows many interfaces to be performed in software. This application note shows how to get started with timing analysis using the xTIMEcomposer studio. It shows you how to add timing constraints to the parts of your program that must run within strict time limits, enabling correct real-time behavior to be validated for your target device at compile-time.

    To get started, simply double click on Getting Started with timing analysis in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    None

    Prerequisites

    None

  • Getting Started with VCD Tracing in xTIMEcomposer Studio

    This application note shows how to get started with VCD tracing using the xTIMEcomposer studio. It shows you how to run an application in simulation with VCD tracing enabled. It then explains how to analyze the resulting trace using the built-in VCD waveform viewer.

    To get started, simply double click on Getting Started with VCD tracing in xTIMEcomposer Studio in the Examples view, and click finish in the resulting import dialog. The sample project will then be imported and you will be switched to the XMOS edit perspective. The getting started pdf is then accessable from the doc/pdf folder at the top level of the imported project.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    This application note is designed to run on the XMOS simulator.

    Prerequisites

    None

Audio examples

  • Version
    Updated
    Download
    Title
  • A startKIT audio effects demo

    This application note shows a demo that applies audio effects to a stereo audio stream on the XMOS startKIT. It shows the use of driving audio using the I2S library, performing simple DSP in xC and accessing I/O on the startKIT using the startKIT support library.

    The application loops audio input back to audio output with a biquad filter and a modulating gain applied to the signal. The effects are controlled via the button and the sliders on the startKIT. The example also shows the xSCOPE tracing functionality of the xTIMEcomposer tools by sending internal signal values to the development PC via program instrumentation.

    Required tools and libraries

    The code in this application note is known to work on version 14.1.1 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    The application note is designed to run on the XMOS startKIT with the XMOS audio slice card (XA-SK-AUDIO) connnected to it.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS GPIO library, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The demo uses various libaries, full details of the functionality of a library can be found in its user guide [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/support/libraries

  • 2016-01-11

    ADAT - Replacing Wavefront AL1401/402 with xCORE

    This application note describes the ADAT light-pipe protocol and an XMOS-based replacement for the Wavefront AL1401 ADAT encoder and AL1402 ADAT decoder IC’s, both of which are End-of-Life products.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture [1] and the ADAT protocol [2]. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [3].
    [1]

    http://www.xmos.com/published/xcore-architecture

    [2]

    http://ackspace.nl/wiki/ADAT_project

    [3]

    http://www.xmos.com/published/glossary

  • 2016-01-08

    Adding DSP to the USB Audio 2.0 L1 Reference Design

    This application note shows how to integrate DSP processing into the XMOS USB Audio solution which enables the single tile L8 device to implement both the USB interface together with audio processing in a single chip. The DSP core utilizes the 64bit single cycle MAC instruction to provide audio processing functions such as EQ.

    The DSP is provided by the open source sc_dsp_filters module from github to supply the Biquad filters [1]. This module can generate arbitrary cascaded biquad filters with suitable coefficients across a wide dB range. These coefficients are generated at compile time into one of the header files used to build the final executable. This application note is based on the biquad_xta_appnote_1v0 tag in the above repository.

    [1]

    https://github.com/xcore/sc_dsp_filters

    The USB XUD core requires a minimum of 80 MIPS, which limits this example to 6 cores. The design has one core available so we will use all of the available performance for DSP. For simplicity, it requires the device to operate at 500MHz, and will not support MIDI or SPDIF.

    A typical use of this application would be in USB active speakers where DSP is required to compensate for physical limitations of the speaker enclosure or in a higher performance device where a digital crossover might be required.

    This application note assumes the reader is familiar with the XMOS XS1-L1 DSP Performance Application Note [2] which describes how performance of the biquad filter library can be measured.

    [2]

    http://www.xmos.com/published/an01011

  • 2016-01-08

    Enabling DSD256 in the USB Audio 2.0 Device Reference Design Software

    The XMOS USB Audio 2.0 device software reference design software supports stereo DSD64 and DSD128 streaming output as standard. This application note describes how, through a few code modifications, support can be extended to DSD256.

    Required tools and libraries

    This application note assumes a baseline firmware of the XMOS USB Audio Reference design, version 6.6.1. Later versions of the reference design are likely applicable, however it is possible that code refactoring may alter the code changes required to implement DSD256.

    A firmware build with DSD enabled is required as the starting point. A suitable firmware image is 2xoxxd (USB Audio 2.0, no input, output enabled, no midi/SPDIF and DSD enabled), which can be found in the app_usb_aud_xk_u8_2c application folder.

    xTIMEcomposer Tools Suite version 13.2 or later is required.

    Required hardware

    XMOS offers the Mulit-Function Audio platform [2] which supports DSD64 and DSD128. XMOS does not currently provide any development hardware capable of DSD256. It is assumed that the reader has access to either a modified development board connected to suitable DAC, or custom hardware with the appropriate XMOS device, DAC and associated support components.

  • High Resolution Delay and Sum

    Required tools and libraries

    The code in this application note is known to work on version 14.2.4 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    The example code provided with the application has been implemented and tested on the Microphone Array Ref Design v1.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • The lib_mic_array user guide should be thoroughly read and understood.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • High Resolution Delay Example

    This example demonstrates how to use the microphone array library with the high resolution delay lines to capture samples from the microphone array. The example is designed to show up to 8 channel array processing.

    Required tools and libraries

    The code in this application note is known to work on version 14.2.4 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    This is an example only with no hardware requirements.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • The lib_mic_array user guide should be thoroughly read and understood.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • Low Resolution Delay and Sum

    Required tools and libraries

    The code in this application note is known to work on version 14.2.4 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    The example code provided with the application has been implemented and tested on the Microphone Array Ref Design v1.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • The lib_mic_array user guide should be thoroughly read and understood.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • Microphone array phase-aligned capture example

    This example demonstrates how to use the microphone array library to capture samples from the microphone array and present them simultaneously with equal phase delay on each sample. The example is designed to show up to 8 channel array processing.

    Required tools and libraries

    The code in this application note is known to work on version 14.2.4 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    This is an example only with no hardware requirements.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • The lib_mic_array user guide should be thoroughly read and understood.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • 2016-01-08

    Optimizing USB Audio for stereo output, battery powered devices

    This application note characterizes the expected power usage of the XMOS USB Audio reference design running on the XS1-U6 device, configured for stereo out applications. The second part of this document outlines optional changes to the hardware and firmware, with the goal of reducing power consumption and extending battery life.

    The USB Audio reference design is optimized for performance, configurability and low resource usage. The standard reference design running on the XS1-U6 comfortably fits within the USB bus power envelope with plenty of power available for support components and audio CODECs.

    When powering systems from a battery, a fixed amount of energy is available. Reduction of power dissipation allows the designer to increase battery life or keep the same battery life for a smaller battery, bringing cost and form factor savings. By making different design choices and constraining the original XMOS USB Audio reference design, various power optimizations can be applied to help achieve these goals.

    This application note assumes that the reader is familiar with the XMOS architecture.and the XMOS USB Audio reference design.

  • 2016-06-07

    Porting the XMOS USB 2.0 Audio Reference Software onto XU208 custom hardware

    This application note shows you how to port the XMOS USB 2.0 audio reference software onto XU208 based custom hardware.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.1.0 or newer
    • USB Audio 2.0 Device Software - Version 6.12.6 or newer [1]

    Required hardware

    This application note describes how to to port the XMOS USB 2.0 audio device software to a board using the XU208 device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS glossary [2].
    • For an overview of XMOS USB Audio 2.0 Device Software please see the USB Audio Design Guide [3] for reference.
    [1]

    https://www.xmos.com/support/boards?product=18334&component=16275

    [2]

    http://www.xmos.com/published/glossary

    [3]

    https://www.xmos.com/support/boards?product=18334&component=14442

  • SPDIF Receive to I2S output using Asynchronous Sample Rate Conversion

    The XMOS Asynchronous Sample Rate Conversion (ASRC) library allows audio to be streamed between systems running with asynchronous sample rates while maintaining “Hi-Res” audio quality. Practical examples where ASRC can provide significant benefits include:

    • Allow systems to receive and mix multiple digital audio streams
    • Remove the cost and hardware complexity of audio clock recovery using a PLL
    • Allow systems to use the highest possible sample rate rather than the lowest common denominator
    • Addition of interfaces and processing to existing audio architctures

    In addition, the ASRC can perform major rate changes between the standard audio sample rates of 44.1, 48, 88.2, 96, 176.4 and 192KHz.

    This application note demonstrates the use of the XMOS Sample Rate Conversion library in a system that receives samples from an SPDIF input and outputs them to a DAC over I2S. The I2S subsystem uses a fixed frequency local master clock oscillator and the SPDIF clock is encoded within the received stream. This means that, even if operating at the same nominal sample rate, the clocks will not be synchronized and consequently ASRC is required to properly stream audio between these two audio interfaces.

    The sample rates supported for this demonstration are 44.1, 48, 88.2 and 96KHz. This restriction is applied by the SPDIF receiver which is only rated up to 96KHz for optical sources and the ASRC library which can currently only handle rates of 176.4/192KHz on one side. The restricted sample rates also allow significant chip resource usage optimization which is discussed later within this application note.

    Using the XMOS I2S and SPDIF libraries this application note demonstrates practical usage of the ASRC library. The software includes additional functions to handle the serial to block conversion of the audio samples and a precise rate monitoring servo task which is required to calculate the fractional frequency ratios for the ASRC processing function.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.2.0 or higher
    • XMOS I2S/TDM library - Version 2.1.0
    • XMOS GPIO library - Version 1.0.0
    • XMOS I2C library - Version 3.1.0
    • XMOS SPDIF library - Version 2.0.2
    • XMOS Logging library - Version 2.0.0
    • XMOS Assertion library - Version 2.0.0

    Required hardware

    The example code provided with the application has been implemented and tested on the xCORE-200 Multichannel Audio Platform.

    Prerequisites

    • This document assumes familiarity with I2S and SPDIF interfaces, the principles of ASRC and a basic understanding of the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • Using the I2S library

    I2S interfaces are key to many audio systems. XMOS technology is perfectly suited to these applications - supporting a wide variety of standard interfaces and also a large range of DSP functions.

    This application note demonstrates the use of the XMOS I2S library to create a digital audio loopback on an XMOS multicore microcontroller.

    The code used in the application note configures the audio codecs to simultaneously send and receive audio samples. It then uses the I2S library to loopback all 8 channels.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS I2S/TDM library - Version 2.1.0
    • XMOS GPIO library - Version 1.0.0
    • XMOS I2C library - Version 3.1.0

    Required hardware

    The example code provided with the application has been implemented and tested on the xCORE-200 Multichannel Audio Platform.

    Prerequisites

    • This document assumes familarity with I2S interfaces, the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

Chip/Device management

  • Version
    Updated
    Download
    Title
  • 2016-01-08

    Estimating Power Consumption For XS1-L Devices

    This application note discusses the methodology for estimating total average power consumption of XS1-L devices. Power estimates are based on characterization data measured over power supply voltage, xCORE tile frequency (CLK), and junction temperature (TJ).

  • 2016-01-11

    Multiple Firmware Booting

    This application note demonstrates how to use XFLASH option --loader to change the behaviour of selecting which image to boot by the flash loader.

    This application note provides an example that uses a button to select the image that gets booted. When the button is in the up position at power on, the highest even number image version will be booted. When the button is in the down position at power on, the highest odd number image version will be booted.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.0

    Required hardware

    This application note is designed to run on an XMOS startKIT.

    The example code provided with the application has been implemented and tested on the startKIT but there is no dependancy on this board and it can be modified to run on any development board.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • Programming OTP memory via SPI boot

    This application note describes how to create a binary image which can be used to program the xCORE tile OTP memory via SPI boot. This is the XMOS recommended process for a production programmer which would be used to program application data into the OTP memory in volume production.

    The code associated with this application note provides a simple example which demostrates building an application which then, using the XMOS development tools, produces a SPI flash image that can be used to boot the xCORE, program the OTP and then signal that the device has been programmed correctly via GPIO ports on the xCORE device.

    With the development flow presented here it is possible to design and manufacture a programmer that could be used to program xCORE devices with custom firmware images as required.

    Example code is provided to allow a simple example to be built into the SPI programming image for the xCORE OTP.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2

    Required hardware

    This application note is designed to run on any XMOS xCORE multicore microcontroller that is able to boot from SPI and has OTP memory available for programming.

    The example code provided with the application has been implemented and tested on an XMOS general purpose sliceKIT (XK-SK-L2-ST) but there is no dependancy on this board and it can be modified to run on any board containing an XMOS xCORE processor.

    Note that the application example can only be run once successfully on the target hardware as the OTP memory is one time programmable.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xSCOPE and how to use it via code running on an xCORE processor [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • 2016-01-08

    Random numbers on the XS1-L1

    The XMOS XS1-L8 multicore microcontroller has provisions that facilitate the construction of random numbers. This application note gives a brief introduction to those methods.

  • SPI Slave Boot Loader

    xTIMEcomposer tools support booting over JTAG or from a SPI flash, optionally with encryption and authentication using on-chip OTP. xCORE-200 devices also have a SPI slave boot mode. With a simple custom boot loader, it is possible to boot a two-tile XU216/XL216 device as SPI slave, with another device, such as applications processor, supplying the image to boot, and taking care of any extra features such as firmware upgrade.

    This document describes how to use a custom boot loader that was developed for this.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • Using flash memory for persistent storage

    This application note demonstrates how to use XFLASH option --data to store persistent data within flash memory.

    This application note provides an example that uses the boot partition in flash memory to store the application and the data partition in flash memory to store persistent application data. Once booted the application reads data from the data partition using the xCORE flash library and use it to illuminate the LED’s in various patterns.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2

    Required hardware

    This application note is designed to run on an XMOS startKIT.

    The example code provided with the application has been implemented and tested on the startKIT but there is no dependancy on this board and it can be modified to run on any development board.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • This document assumes familiarity with flash memory, the xCORE flash library and the XMOS tool XFLASH.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • 2016-01-08

    XS1-L Clock Frequency Control

    This application note explains how the clocks for the xCORE Tile, the xCONNECT switch and reference clock are generated from a low frequency external clock and the internal phase locked loop (PLL) on XS1-L devices.

Debugging how-tos

  • Version
    Updated
    Download
    Title
  • Using memory for debug message logging

    This application shows how to implement a simple debug logging system to memory which when used in conjuction with the XMOS debugger will allow you to provide a printing mechanism which can be used in systems where it is not possible to have a debugger connected permenantly, for example when debugging boot from flash or issues around a device reset.

    The example provided uses the command line xgdb debugger to provide a way of attaching to a running system and dumping the contents of the debug log to the terminal. In order to capture print messages from the application the code demonstrates how to override the functionality provided in the XMOS standard libraries for printing to provide a custom application specific implementation.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller or the XMOS simulator.

    Prerequisites

    None

Display examples

  • Version
    Updated
    Download
    Title
  • How to use the LCD library

    This application note demonstrates how to use the lib_lcd library to write to an LCD screen via a parallel bus. The LCD library is used to display on a single graphics LCD module of upto 800 * 600 pixels with a maximum pixel clock of 62.5MHz. This application note uses a 480 * 272 pixel LCD module with a pixel clock of 16.67MHz which is available on XA-SK-SCR480 sliceCARD.

    Features

    • Standard component to support different LCD displays with an RGB interface.
    • Different color depths 32 bpp, 16 bpp, etc. based on user configuration.
    • Resolution of up to 800 * 600 pixels.
    • Configurability of LCD pixel dimensions, clock rate, horizontal and vertical timing requirements.
    • The function lcd_server requires just one core. The client functions, located in lcd.h are very low overhead and are called from the application.

    Required tools and libraries

    • xTIMEcomposer Tools - Version >=14.0
    • XMOS LCD library - Version 3.0.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-Analogue sliceKIT. The application provided has been implemented and tested on the A16 sliceKIT (XP-SKC-A16 1V0) with an LCD sliceCARD(XA-SK-SCR480 1V0). This application can be modified to work on any XMOS XCORE device as long as the control signals,

    • are connected to one bit ports
    • do not overlap with any other used ports
    • are all on the same tile

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, LCD basics, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS LCD Library please see the library user guide [2].
    • For the datasheet of the LCD module attached with the LCD sliceCARD [3], KENTEC K430WQA-V4-F [4].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/support/libraries/lib_lcd

    [3]

    https://www.xmos.com/support/boards?product=15832

    [4]

    http://www.kentec.com.hk/images/UploadFile/20111115190908-6.pdf

DSP

  • Version
    Updated
    Download
    Title
  • 2016-01-08

    DSP performance on XS1-L devices

    This application note describes some of the DSP features the XMOS L-family of devices provide and how they could be used in an example application. The second part of this document describes in more detail how the L1 USB Audio reference design can be modified to include Biqaud Filters to provide equalizer functionality.

  • xCORE-200 DSP Elements Library

    The application note gives an overview of using the xCORE-200 DSP Elements Library.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.2.0 and above
    • XMOS DSP library - Version 3.0.0 and above

    Required hardware

    This application note is designed to run on any XMOS xCORE-200 multicore microcontroller or the XMOS simulator.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, xCONNECT interconnect communication, the XMOS tool chain and the xC language. Documentation related to these aspects are linked to in the appendix references_.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

External memory examples

  • Version
    Updated
    Download
    Title

Multi-feature case studies

  • Version
    Updated
    Download
    Title
  • eCos on xCORE

    Running eCos RTOS on xCORE enables you to use your existing or any third party RTOS application stack on an xCORE. You can select from a wide range of XMOS IP libraries and add additional peripherals to suit your application needs and reduce time to market dramatically.

    This application note uses a ported version of eCos RTOS running on an xCORE and demonstrates a simple eCos application that context switches between two eCos threads.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE General Purpose (L-series) device.

    The example code provided with the application has been implemented and tested on the xCORE L-series sliceKIT core board 1V2 (XP-SKC-L2) but there is no dependency on this board and it can be modified to run on any development board which uses an xCORE General Purpose (L-series), xCORE-USB series or xCORE-Analog series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation that is not specific to this application note is listed in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For information on eCos RTOS please see the eCos home page [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://ecos.sourceware.org/

    [3]

    This is an illustrative block diagram depicting eCos task communicating with other tasks; however the application example uses only the eCos task

  • Interfacing High Speed ADCs with xCORE

    The application notes shows how to interface high speed ADCs with xCORE devices. It also gives an overview about the advantages of using xCORE buffered I/O ports, clock blocks and xCONNECT communication channels.

    The code associated with this application note povide an example to interface Texas Instruments high speed ADC (ADS7863A) to xCORE devices. The application note contains simulation that shows how the data is sampled by the xCORE device.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2

    Required hardware

    This application note is designed to run using xSIM (XMOS simulator tool). No additional hardware is required to run the example.

    The example code provided with the application has been implemented and tested using the XMOS simulator tool (xSIM) and can run on any xCORE device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

Networking examples

  • Version
    Updated
    Download
    Title
  • 100Mbit Ethernet AVB endpoint example using I2S master

    This application note demonstrates an Ethernet AVB endpoint that streams uncompressed audio over an Ethernet AVB network with guaranteed Quality of Service, low latency and time synchronization. It shows how to interface with a high performance audio codec via the I2S library.

    The application is configured to provide a single Talker and Listener stream of 8 audio channels at up to 192kHz sampling rate.

    The example also shows plug-and-play multichannel recording and playback with Apple Mac hardware running OS X 10.10.5

    Required tools and libraries

    The code in this application note is known to work on version 14.1.1 of the xTIMEcomposer tools suite, it may work on other versions.

    The application depends on the following libraries:

    • lib_tsn (>=7.0.0)
    • lib_i2s (>=2.0.1)

    Required hardware

    The application note is designed to run on the following hardware :

    • XMOS xCORE-General purpose SliceKit (XP-SKC-XL216 - 1v1);
    • XMOS Ethernet Slice (XA-SK-E100 - 1V1);
    • XMOS Audio-pll Slice (XA-SK-AUDIO-PLL - 1v0).

    The described hardware setup is used for example purposes only. The firmware can be modified to run on any xCORE-200 series device with the required external hardware.

    The firmware was interoperability tested with a Early 2011 MacBook Pro running OS X version 10.10.5.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the IEEE AVB/TSN standards, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The example uses various libraries, full details of the functionality of a library can be found in its user guide [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/support/libraries

  • 2016-01-08

    Adding TCP/IP to AVB

    This application note describes how to add TCP/IP and a Webserver to the AVB Endpoint Software on a XMOS Multicore Microcontroller.

    Details of prerequisites and required software components are provided, together with instructions to build an example application that combines AVB Endpoint (Audio Listener) functionality with a simple webserver.

    For the discovery and control of AVB networks the use of the AVB standard 1722.1 protocol is always recommended. However some applications, such as Automotive SOME/IP or an audio endpoint with a built-in webserver, also require layer 3 functionality - which this note facilitates.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2.0
    • XMOS AVB Stack - Version 6.0.4
    • Ethernet/TCP Module - Version 3.2.1rc1.a

    Required hardware

    The example code provided with the application note has been implemented and tested on the XMOS AVB-LC Kit connected to a MacBook Pro 9,2.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • Basic knowledge of Ethernet Networks and the applicable Protocols (TCP/IP, AVB)
    • Reading the AVB Endpoint Quickstart Guide and AVB System Requirements Guide.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • Gigabit Ethernet AVB endpoint example using I2S master

    This application note demonstrates a Gigabit Ethernet AVB endpoint that streams uncompressed audio over an Ethernet AVB network with guaranteed Quality of Service, low latency and time synchronization. It shows how to interface with a high performance audio codec via the I2S library.

    The application is configured to provide a single Talker and Listener stream of 8 audio channels at up to 192kHz sampling rate.

    The example also shows plug-and-play multichannel recording and playback with Apple Mac hardware running OS X 10.10.

    Required tools and libraries

    The code in this application note is known to work on version 14.1.1 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    The application note is designed to run on the XMOS xCORE-200 Multichannel Audio platform version 2.

    There is no dependency on this hardware and the firmware can be modified to run on any xCORE XE/XEF series device with the required external hardware.

    The firmware was interoperability tested with a Late 2013 MacBook Pro running OS X version 10.10.3.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the IEEE AVB/TSN standards, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The example uses various libraries, full details of the functionality of a library can be found in its user guide [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/support/libraries

  • Gigabit Ethernet AVB endpoint example using TDM master

    This application note demonstrates a Gigabit Ethernet AVB endpoint that streams uncompressed audio over an Ethernet AVB network with guaranteed Quality of Service, low latency and time synchronization. It shows how to interface with a high performance audio codec via the I2S/TDM library.

    The application is configured to provide four Talker and Listener streams of 8 audio channels each, at 48 kHz sampling rate.

    The example also shows plug-and-play multichannel recording and playback with Apple Mac hardware running OS X 10.10.

    Required tools and libraries

    The code in this application note is known to work on version 14.1.1 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    The application note is designed to run on the XMOS xCORE-200 Multichannel Audio platform version 2.

    There is no dependency on this hardware and the firmware can be modified to run on any xCORE XE/XEF series device with the required external hardware.

    The firmware was interoperability tested with a Late 2013 MacBook Pro running OS X version 10.10.3.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the IEEE AVB/TSN standards, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The example uses various libraries, full details of the functionality of a library can be found in its user guide [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/support/libraries

  • 2016-01-08

    MPEG Transport Stream over Ethernet AVB

    This application note demonstrates how an MPEG Transport Stream can be streamed over an Ethernet AVB network, with guaranteed Quality of Service and time synchronization, using an AVB endpoint implemented on an XMOS multicore microcontroller.

    The firmware associated with this application note is included in an XMOS AVB Reference software release and supports a standard Synchronous Parallel Interface [1]and 61883-4 encapsulation format.

    The AVB Audio Endpoint Platform hardware (XR-AVB-LC-BRD) has been adapted to support a Synchronous Parallel Interface operating at TTL levels.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2
    • XMOS AVB Endpoint reference software - Version 6.1.1
    • Alitronika DVSStation3 application (Microsoft Windows only)

    Required hardware

    This application note is designed to run on an XMOS xCORE-L series device.

    The example firmware provided in the reference design has been implemented and tested on the existing AVB Audio Endpoint Platform hardware (XR-AVB-LC-BRD). Third-party Transport Stream source/sink hardware from Alitronika (AT40XR2USB) was connected via an LVDS to TTL interposer PCB using a standard 25 contact type D subminiature connector.

    There is no dependency on this hardware and the firmware can be modified to run on any xCORE-L series device interfaced to compliant MPEG-TS SPI hardware. LVDS to TTL buffers may be required.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the IEEE AVB/TSN standards, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS glossary [2].
    • For the full API listing of the XMOS AVB Audio Endpoint reference software please see the the AVB Endpoint Design Guide [3].
  • 2016-11-28

    Optimizing start-up time in AVB endpoints

    This application note provides background information and step-by-step instructions for minimizing the time from power on to streaming (start-up time) in AVB endpoints.

    Using static configuration along with various boot time optimisations, this application note shows how a start-up time comfortably less than 500 milliseconds can be achieved.

    The application note is based the XMOS Ethernet AVB Endpoint software. The code changes and experiments were conducted using two XMOS AVB-LC Kits connected back to back.

    Information about the AVB Endpoint software and development boards used can be found on the XMOS website. [1]

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2
    • XMOS AVB Endpoint software - Version 6.1.1
    • Start-up time optimized modified source files, to augment version 6.1.1 of the AVB Endpoint software. These are included in this application note.

    Required hardware

    The software described within this note is designed to run on an XMOS xCORE-L series devices.

    The example firmware provided in the AVB Endpoint software has been implemented and tested using the low-cost AVB Audio Endpoint Platform hardware (XR-AVB-LC-BRD). Dual XR-AVB-LC-BRD boards are available as a kit from part number XK-AVB-LC-SYS.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the IEEE AVB/TSN standards, the XMOS tool chain and the xC programming language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix at the end of this application note.
    • For descriptions of XMOS related terms found in this document please see the XMOS glossary [2].
    • For the full API listing of the XMOS AVB Audio Endpoint software please see the AVB Endpoint Design Guide [3].
  • Using the XMOS embedded webserver library

    This application note shows how to use XMOS webserver library to run an embedded webserver on an XMOS multicore microcontroller.

    The code associated with the application note provides an example of using the XMOS HTTP Webserver library and the XMOS TCP/IP library to build an embedded webserver that hosts web pages. This example application relies on an Ethernet interface for the lower layer communication.

    The HTTP Webserver library handles HTTP connections like GET and POST request methods, creates dynamic web page content and handles HTML pages as a file system stored in program memory or an external SPI flash memory device. The Webserver running on an xCORE device can be visited from a standard web browser of a computer that is connected to the same network to which the Ethernet interface of the xCORE development board is connected.

    Embedding a web server onto XMOS multicore microcontrollers adds very flexible and easy-to-use management capabilities to your embedded systems.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.1
    • XMOS Embedded Webserver Library - Version 2.0.0
    • XMOS TCP/IP Library - Version 4.0.0
    • XMOS Ethernet Library - Version 3.0.0

    Required hardware

    This application note is designed to run on any XMOS xCORE device.

    The example code provided with this application note has been implemented and tested on the SliceKIT Core Board (XP-SKC-L2) with Ethernet Slice (XA-SK-E100) and GPIO Slice (XA-SK-GPIO) but there is no dependency on these boards and it can be modified to run on any development board which has an xCORE device connected to an Ethernet PHY device through an MII (Media Independent Interface) interface.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the HTTP protocol, HTML, Webserver, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the reference appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary (http://www.xmos.com/published/glossary).
    • For the full API listing of the XMOS HTTP Webserver library please see the document Embedded Webserver Library Programming Guide.

      (https://www.xmos.com/published/embedded-webserver-library-programming-guide)

  • Using XMOS TCP/IP Library for UDP-based Networking

    This application note demonstrates the use of XMOS TCP/IP stack on an XMOS multicore micro controller to communicate on an ethernet-based network.

    The code associated with this application note provides an example of using the XMOS TCP/IP (XTCP) Library and the ethernet board support component to provide a communication framework. It demonstrates how to broadcast and receive text messages from and to the XMOS device in the network using the UDP stack of XTCP library. The XTCP library features low memory footprint but provides a complete stack of various protocols.

    On an XMOS xCORE, all the endpoint activities are implemented as concurrent real-time processes allowing the network data to be placed on the wire or received from the wire with negligible latency. Moreover, unlike conventional interrupt-driven processors, the deterministic nature of event-driven XMOS processors meets the precise timing requirements of the real-time data transmission over networks.

    Note: This application note requires an application to be run on the host machine to test the communication with the XMOS device.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS TCP/IP library - Version 4.0.0

    Required hardware

    This application note is designed to run on an XMOS xCORE General-Purpose device.

    The example code provided with the application has been implemented and tested on the xCORE General-Purpose sliceKIT (XP-SKC-L2) with an ethernet sliceCARD (XA-SK-E100) but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS glossary [1].
    • For an overview of XTCP TCP/IP stack please see the XMOS TCP/IP stack design guide [2] for reference.
    [1]

    http://www.xmos.com/published/glossary

    [2]

    https://www.xmos.com/published/xmos-tcpip-stack-design-guide

  • XMOS 100Mbit Ethernet application note

    Ethernet connectivity is an essential part of the explosion of connected devices known collectively as the Internet of Things (IoT). XMOS technology is perfectly suited to these applications - offering future proof and reliable ethernet connectivity whilst offering the flexibility to interface to a huge variety of “Things”.

    This application note shows a simple example that demonstrates the use of the XMOS Ethernet library to create a layer 2 ethernet MAC interface on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the Ethernet Library to provide a framework for the creation of an ethernet Media Independent Interface (MII) and MAC interface for 100Mbps.

    The applcation note uses XMOS libraries to provide a simple IP stack capable of responding to an ICMP ping message. The code used in the application note provides both MII communication to the PHY and a MAC transport layer for ethernet packets and enables a client to connect to it and send/receive packets.

    Required tools and libraries

    The code in this application note is known to work on version 14.2.4 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    This application note is designed to run on an XMOS xCORE-L (General Purpose family) series device. The example code provided with the application has been implemented and tested on the xCORE-L2 sliceKIT 1V2 (XP-SKC-L2) core board using ethernet sliceCARD 1V1 (XA-SK-E100). There is no dependancy on this core board - it can be modified to run on any (XMOS) development board which has the option to connect to the ethernet sliceCARD.

    Prerequisites

    • This document assumes familarity with the XMOS xCORE architecture, the Ethernet standards IEEE 802.3u (MII), the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For an overview of the Ethernet library, please see the Ethernet library user guide.
    [1]

    http://www.xmos.com/published/glossary

  • XMOS Gigabit Ethernet application note

    Ethernet connectivity is an essential part of the explosion of connected devices known collectively as the Internet of Things (IoT). XMOS technology is perfectly suited to these applications - offering future proof and reliable ethernet connectivity whilst offering the flexibility to interface to a huge variety of “Things”.

    This application note shows a simple example that demonstrates the use of the XMOS Ethernet library to create a gigabit layer 2 ethernet MAC interface on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the Ethernet Library to provide a framework for the creation of an ethernet Reduced Gigabit Media Independent Interface (RGMII) and MAC interface for gigabit data rates.

    The applcation note uses XMOS libraries to provide a simple IP stack capable of responding to an ICMP ping message. The code used in the application note provides both MII communication to the PHY and a MAC transport layer for ethernet packets and enables a client to connect to it and send/receive packets.

    Required tools and libraries

    The code in this application note is known to work on version 14.2.4 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    This application note is designed to run on an XMOS xCORE-200 series device. The example code provided with the application has been implemented and tested on the xCORE-200 Explorer development kit. There is no dependancy on this board - it can be modified to run on any xCORE-200 series device with gigabit Ethernet capability.

    Prerequisites

    • This document assumes familarity with the XMOS xCORE architecture, the Ethernet standards IEEE 802.3u (MII), the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For an overview of the Ethernet library, please see the Ethernet library user guide.
    [1]

    http://www.xmos.com/published/glossary

Programming how-tos

  • Version
    Updated
    Download
    Title
  • Using the logging library

    The logging library provides the debug_printf() function which is a lightweight implementation of printf(). It also provides a framework for compile-time control of which debug messages are enabled.

    Required tools and libraries

    The code in this application note is known to work on version 14.2.3 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    The example code provided with the application has been implemented and tested on the xCORE-200 explorerKIT.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • xCONNECT dynamic configuration demo

    xCONNECT is a proprietary interconnect technology that facilitates data communication across different xCORE to create a fully scalable system. It is possible to achieve high bandwidth communication of up to 400 Mbits/sec for each xCONNECT link making it suitable for things like light weight industrial back-plane busses. No additional hardware is required for the xCONNECT communication.

    Using xCONNECT over longer distances can introduce bit errors due to noise, xCONNECT is dependent on the application layer to recover from such communication errors. This application note demonstrates handling of transmit timeouts, receive timeouts and receive exceptions (e.g. unexpected control tokens) using software to ensure robustness of the communication.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0 and above
    • XMOS try_catch exception handling module - Version 1.0.5 and above

    Required hardware

    This application note is designed to run on an XMOS xCORE General Purpose (L-series) device.

    The example code provided with the application has been implemented and tested on the xCORE L-series sliceKIT core board 1V2 (XP-SKC-L2) but there is no dependency on this board and it can be modified to run on any development board which uses an xCORE General Purpose (L-series), xCORE-USB series or xCORE-Analog series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, xCONNECT interconnect communication, the XMOS tool chain and the xC language. Documentation that is not specific to this application note is listed in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

Serial peripheral examples

  • Version
    Updated
    Download
    Title
  • How to use the I2C master library

    Required tools and libraries

    The code in this application note is known to work on version 14.2.3 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    The example code provided with the application has been implemented and tested on the xCORE-200 eXplorerKIT.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • How to use the I2C slave library

    Required tools and libraries

    The code in this application note is known to work on version 14.2.3 of the xTIMEcomposer tools suite, it may work on other versions.

    The application does not have any dependencies (i.e. it does not rely on any libraries).

    Required hardware

    There is no hardware requirement for this application note. It has been designed to run on the simulator using the loopback plugin.

    Prerequisites

    • This document assumes familarity with I2C interfaces, the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For a description of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • How to use the SPI library as SPI master

    This application note shows how to use the SPI library to make the xCORE drive an SPI bus as SPI master. The application is the simplest example of setting up the library and performing a couple of transactions. The code can then be run in simulation to see the outputted waveforms.

    The note covers both the synchronous and asynchronous use of the SPI master components provided from the library.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0
    • XMOS SPI library - Version 3.0.0

    Required hardware

    This application note is designed to run in simulation so requires no XMOS hardware.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the SPI bus protocol, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS SPI Device Library please see the library user guide [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/support/libraries/lib_spi

  • How to use the SPI library as SPI slave

    This application note shows how to use the SPI library to make the xCORE use an SPI bus as SPI slave. The application provides a register file that can be read and written by the internal application and by the SPI master using a simple command set. The code is run in simulation with an SPI master output looped-back onto the SPI slave input to show the bus functioning.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0
    • XMOS SPI library - Version 3.0.0

    Required hardware

    This application note is designed to run in simulation so requires no XMOS hardware.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the SPI bus protocol, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS SPI Device Library please see the library user guide [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/support/libraries/lib_spi

sliceKIT examples

  • Version
    Updated
    Download
    Title
  • USB CDC Class as Virtual Serial Port - Extended on sliceKIT

    This application note shows how to create a USB device compliant to the standard USB Communications Device Class (CDC) on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library (XUD) and associated USB class descriptors to provide a framework for the creation of a USB CDC device that implements Abstract Control Model (ACM).

    This example USB CDC ACM implementation provides a Virtual Serial port running over high speed USB. The Virtual Serial port supports the standard requests associated with ACM model of the class.

    A serial terminal program from host PC connects to virtual serial port and interacts with the application. The application provides a menu to toggle on-board LEDs, read an I2C device, monitor buttons and loopback characters. This application demo code demonstrates a simple way in which USB CDC class devices can easily be deployed using an xCORE-USB device.

    Note: This application note provides a standard USB CDC class device and as a result does not require external drivers to run on Windows, Mac or Linux.

    This application note extends AN00124 to provide a virtual serial port application that interfaces to hardware demostrating how to build a system which allows a USB host to connect to custom hardware using an XMOS device.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0
    • XMOS I2C library - Version 2.0.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    The application also requires a GPIO sliceCARD (XA-SK-GPIO) as the hardware it contains is interfaced to from the virtual serial port application.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    • For information on the USB CDC class using the XMOS USB library see AN00124
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB HID Class - Extended on sliceKIT

    This application note shows how to create a USB device compliant to the standard USB Human Interface Device (HID) class on an XMOS multicore microcontroller.

    The code associated with this application note provides an enhancement to AN00129 for extending the USB HID device to interface with hardware which can provide input for a USB mouse.

    This example uses the ADC on the XMOS xCORE-USB device to interface to a mixed signal sliceCARD and provide a joystick interface which allows the USB HID to be controlled.

    The application operates as a simple mouse which when running moves the mouse pointer on the host machine. This demonstrates the simple way in which PC peripheral devices can easily be deployed using an xCORE device.

    Note: This application note provides a standard USB HID class device and as a result does not require drivers to run on Windows, Mac or Linux.

    This application note describes extending XMOS application note AN00129 for the xCORE-USB sliceKIT platform.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0
    • XMOS U series support library - Version 2.0.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references in the appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • Understanding of USB HID class implementation from application note AN00129
    • For the full API listing of the XMOS USB Device (XUD) Library please see thedocument XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

startKIT examples

  • Version
    Updated
    Download
    Title
  • A startKIT ADC demo

    This applications provides a very simple example of using the ADC module. It uses the on-chip ADC in one shot mode (a trigger is called every 200ms from a timer) and then reads the 4 values after conversion complete notification received. It also shows an example of a select (wait on multiple events) because it also listens to the button, and lights additional LEDs when that is pressed.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0
    • startKIT support library (lib_startkit_support) - Version 1.0.0

    Required hardware

    This application note is designed to run on the XMOS startKIT.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS GPIO library, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • A startKIT glowing LED demo

    This application demonstrates I/O on the startKIT by showing a glowing LED pattern on the LEDs. It uses the startKIT support library to access the I/O on the device.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0
    • startKIT support library (lib_startkit_support) - Version 1.0.0

    Required hardware

    This application note is designed to run on the XMOS startKIT.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS GPIO library, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

  • A startKIT LED demo

    This application shows a very simple program running on the XMOS startKIT development board. It displays an animated pattern on the LEDS on the board by directly writing to the port which is connected to the LEDs.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller.

    The example code provided with the application has been implemented and tested on the XMOS startKIT. It depends on the specific mapping of ports to hardware but is quite general in its nature.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS GPIO library, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xmos-gpio-lib

  • A startKIT tic-tac-toe demo

    This application demonstrates several aspects of I/O on the startKIT and programming XMOS devices by allowing the user to play a game of tic-tac-toe on the startKIT.

    The LED grid is used as the game board and the buttons and capacitive sensors are used for input.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0
    • startKIT support library (lib_startkit_support) - Version 1.0.0

    Required hardware

    This application note is designed to run on the XMOS startKIT.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS GPIO library, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    [1]

    http://www.xmos.com/published/glossary

USB examples

  • Version
    Updated
    Download
    Title
  • USB CDC Class as Virtual Serial Port

    This application note shows how to create a USB device compliant to the standard USB Communications Device Class (CDC) on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library (XUD) and associated USB class descriptors to provide a framework for the creation of a USB CDC device that implements Abstract Control Model (ACM).

    This example USB CDC ACM implementation provides a Virtual Serial port running over high speed USB. The Virtual Serial port supports the standard requests associated with ACM model of the class.

    A serial terminal program from host PC connects to virtual serial port and interacts with the application. This basic application demo implements a loopback of characters from the terminal to the XMOS device and back to the terminal. This application demo code demonstrates a simple way in which USB CDC class devices can easily be deployed using an xCORE-USB device.

    Note: This application note provides a standard USB CDC class device and as a result does not require external drivers to run on Windows, Mac or Linux.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB CDC Class as Virtual Serial Port - Extended on xCORE-200 Explorer

    This application note shows how to create a USB device compliant to the standard USB Communications Device Class (CDC) on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library (XUD) and associated USB class descriptors to provide a framework for the creation of a USB CDC device that implements Abstract Control Model (ACM).

    This example USB CDC ACM implementation provides a Virtual Serial port running over high speed USB. The Virtual Serial port supports the standard requests associated with ACM model of the class.

    A serial terminal program from host PC connects to virtual serial port and interacts with the application. The application provides a menu to toggle on-board LEDs, read an I2C device, monitor buttons and loopback characters. This application demo code demonstrates a simple way in which USB CDC class devices can easily be deployed using an xCORE-200 device.

    Note: This application note provides a standard USB CDC class device and as a result does not require external drivers to run on Windows, Mac or Linux.

    This application note extends AN00124 to provide a virtual serial port application that interfaces to hardware demostrating how to build a system which allows a USB host to connect to custom hardware using an XMOS device.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0
    • XMOS I2C library - Version 2.0.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-200 series device.

    The example code provided with the application has been implemented and tested on the xCORE-200 explorerKIT but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    • For information on the USB CDC class using the XMOS USB library see AN00124
    • For information on using the xCORE-200 explorerKIT accelerometer see AN00181
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB CDC-ECM Class for Ethernet over USB

    This application note shows how to create a USB device compliant to the standard USB Communications Device Class (CDC) and the Ethernet Control Model (ECM) Subclass on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library (XUD) and associated USB class descriptors to provide a framework for the creation of a USB device emulating Ethernet.

    This example USB CDC-ECM implementation provides an emulated Ethernet interface running over high speed USB. It supports the standard requests associated with ECM model of the USB CDC specification.

    The demo application handles the Ethernet frames received from the USB endpoitns and hosts a HTTP web server acting as another virtual network device. A standard web browser from host PC can open the web page served from the USB device. The web page provides a statistics of different packets like ICMP, TCP, UDP etc received through the Ethernet frames from the host PC. This demonstrates a simple way in which Ethernet over USB applications can easily be deployed using an xCORE-USB device.

    The demo application code can be extended to bridge an actual Ethernet interface by adding MAC and MII software layers. This enables you to create USB to Ethernet Adaptors using xCORE-USB device.

    Note: This application note provides a standard USB CDC-ECM class device and as a result does not require external drivers to run on Linux and Mac. Windows doesn’t support USB ECM model natively and thus requires third party drivers.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB HID Class

    This application note shows how to create a USB device compliant to the standard USB Human Interface Device (HID) class on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library and associated USB class descriptors to provide a framework for the creation of a USB HID.

    The HID uses XMOS libraries to provide a simple mouse example running over high speed USB. The code used in the application note creates a device which supports the standard requests associated with this class of USB devices.

    The application operates as a simple mouse which when running moves the mouse pointer on the host machine. This demonstrates the simple way in which PC peripheral devices can easily be deployed using an xCORE device.

    Note: This application note provides a standard USB HID class device and as a result does not require drivers to run on Windows, Mac or Linux.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see thedocument XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library

      please see the XMOS USB Library Device Design Guide for reference [3].

    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB HID Class - Extended on xCORE-200 Explorer

    This application note shows how to create a USB device compliant to the standard USB Human Interface Device (HID) class on an XMOS multicore microcontroller.

    The code associated with this application note provides an enhancement to AN00129 for extending the USB HID device to interface with hardware which can provide input for a USB mouse.

    This example uses the ADC on the XMOS xCORE-USB device to interface to a mixed signal sliceCARD and provide a joystick interface which allows the USB HID to be controlled.

    The application operates as a simple mouse which when running moves the mouse pointer on the host machine. This demonstrates the simple way in which PC peripheral devices can easily be deployed using an xCORE device.

    Note: This application note provides a standard USB HID class device and as a result does not require drivers to run on Windows, Mac or Linux.

    This application note describes extending XMOS application note AN00129 for the xCORE-200 explorerKIT platform. The demo application is extended using the functionality described in AN00181 for accesing the accelerometer on the xCORE-200 explorerKIT.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0
    • XMOS I2C library - Version 2.0.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-200 series device.

    The example code provided with the application has been implemented and tested on the xCORE-200 explorerKIT but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-200 series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references in the appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • Application notes AN00129 (USB HID) and AN00181 (Accelerometer)
    • For the full API listing of the XMOS USB Device (XUD) Library please see thedocument XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB Image Device Class

    This application note shows how to create a USB device compliant to the standard USB still image capture device class on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library (XUD) and associated USB class descriptors to provide a framework for image acquisition over high speed USB using an XMOS device. The code used in the application note creates a still image capture device and supports the transactions between the USB host and the device compliant to PIMA 15740 Picture Transfer Protocol.

    Commands for image capture are sent from a host application to the device. The example running on the xCORE in turn responds to these commands. It also generates the appropriate image and transfers to the host. The host application stores the received data in an image file format.

    Note: For the example in this application note, we have used the open source libusb and ImageMagick host libraries.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB Device Library - Version 3.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device. The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XP-SKC-U16 1V2) with USB AB slice (XA-SK-USB-AB 1V2) but there is no dependency on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 specification, the XMOS tool chain and the xC language. Please see the references in the appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB Mass Storage Device Class

    This application note shows how to create a USB device compliant to the standard USB mass storage device class on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS Device Library and associated USB class descriptors to provide a framework for the creation of a USB mass storage device.

    The mass storage framework uses XMOS libraries to provide a bidirectional mass storage device example over high speed USB.

    Note: This application note provides a standard USB Mass Storage Device Class which addresses Bulk-Only Transport (BOT) or Bulk/Bulk/Bulk (BBB) specification and as a result does not require drivers to run on Windows, Linux or Mac.

    The Peripheral Device Type (PDT) supported in this application note is SCSI (Small Computer System Interface) Block Command (SBC) Direct-access device (e.g., UHD (Ultra High Definition) Floppy disk). This example application uses the on-board serial flash M25P16 as its memory device.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB Device Library - Version 3.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT 1V2 (XP-SKC-U16) core board using USB AB sliceCARD 1V2 (XA-SK-USB-AB) but there is no dependency on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications), the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see thedocument XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB Printer Device Class

    This application note shows how to create a USB device compliant to the standard USB printer device class on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library (XUD) and associated USB class descriptors to provide a framework for the creation of a USB printer device.

    The printer framework uses XMOS libraries to provide a unidirectional printer device example over high speed USB. The code used in the application note creates a device which supports the receiving of data from the USB host in order to demonstrate how to build a USB printer interface on an XMOS device.

    Text files can be printed from the USB host and the text will be sent back to the host via debug output from the xCORE device demonstrating the operation of the USB printer device in this application.

    Note: This application note provides a standard USB Printer Class Device and as a result does not require drivers to run on Windows, Mac or Linux.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0
    • XMOS debug printing library - Version 2.0.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependency on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB Test and Measurement Device

    This application note shows how to create a USB Test and Measurement class device on an XMOS multicore microcontroller.

    The code associated with this application note uses the XMOS USB Device Library and associated USB class descriptors to create a standard USB test and measurement class (USBTMC) device running over high speed USB. The code supports the minimal standard requests associated with this class of USB devices.

    The application demonstrates VISA compliant USBTMC client host software (such as NI LabVIEW, NI MAX, pyUsbtmc etc.) request test and measurement data using a subset of SCPI commands implemented on xCORE device. The application also integrates an open source SCPI library and thus provides a framework to implement the needed SCPI commands easily on a USBTMC xCORE device.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB Vendor Specific Device

    This application note shows how to create a vendor specific USB device which is on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library and associated USB class descriptors to provide a framework for the creation of a USB vendor specific device.

    This example uses XMOS libraries to provide a simple USB bulk transfer device running over high speed USB. The code used in the application note creates a device which supports the standard requests associated with this class of USB devices.

    The application operates as a simple data transfer device which can transmit and receive buffers between a USB host and XMOS based USB device. This demonstrates the simple way in which custom USB devices can easily be deployed using an xCORE device.

    Note: This application note provides a custom USB class device as an example and requires a driver to run on windows. For this example we have used the open source libusb host library and windows driver to allow the demo device to be used from the host machine. On other host platforms supported by this application example a host driver is not required to interact with libusb.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

  • USB Video Class Device

    This application note shows how to create a USB device compliant to the standard USB Video Class (UVC) on an XMOS multicore microcontroller.

    The code associated with this application note provides an example of using the XMOS USB Device Library (XUD) and associated USB class descriptors to provide a framework for the creation of USB video devices like webcam, video player, camcorders etc.

    This example USB video class implementation provides a video camera device running over high speed USB. It supports standard requests associated with the class. The application doesn’t connect a camera sensor device but emulates it by creating simple video data which is streamed to the host PC. Any host software that supports viewing UVC compliant video capture devices can be used to view the video streamed out of the XMOS device. This demonstrates the simple way in which USB video devices can easily be deployed using an xCORE-USB device.

    Note: This application note provides a standard USB video class device and as a result does not require external drivers to run on Windows, Mac or Linux.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-USB series device.

    The example code provided with the application has been implemented and tested on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependency on this board and it can be modified to run on any development board which uses an xCORE-USB series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the full API listing of the XMOS USB Device (XUD) Library please see the document XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xuddg

    [3]

    http://www.xmos.com/published/xmos-usb-device-design-guide

xCORE-200 explorerKIT

  • Version
    Updated
    Download
    Title
  • Boot an xCORE-200 device from QuadSPI flash memory

    This applcation note shows how to program an application into QuadSPI flash memory and therefore boot the application from QuadSPI flash memory on an XMOS xCORE-200 device.

    Required tools and libraries

    • xTIMEcomposer Tools Suite version 14.0 or later is required.

    Required hardware

    This application note is designed to run on an XMOS xCORE-200 series device.

    The example code provided with the application has been implemented and tested on the xCORE-200 explorerKIT core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-200 series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE-200 architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • This document assumes familiarity with QuadSPI flash memory, the xCORE quadflash library and the XMOS tool XFLASH.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE devices [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • Using QuadSPI flash memory for persistent storage with xCORE-200

    This application note demonstrates how to use XFLASH option --data to store persistent data within QuadSPI flash memory.

    This application note provides an example that uses the boot partition in QuadSPI flash memory to store the application and the data partition in QuadSPI flash memory to store persistent application data. Once booted the application reads data from the data partition using the xCORE quadflash library and uses it to illuminate the LED’s in various patterns.

    Required tools and libraries

    • xTIMEcomposer Tools Suite version 14.0 or later is required.

    Required hardware

    This application note is designed to run on an XMOS xCORE-200 series device.

    The example code provided with the application has been implemented and tested on the xCORE-200 explorerKIT core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-200 series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE-200 architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • This document assumes familiarity with QuadSPI flash memory, the xCORE quadflash library and the XMOS tool XFLASH.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE devices [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • Using QuadSPI for application overlay data

    This application note demonstrates how to use overlay regions and how to use QuadPSI flash memory for storing and loading overlay data.

    This application note provides an example that will load an overlay function from QuadSPI flash memory to illuminate a colored LED depending on which, if any buttons are pressed.

    Required tools and libraries

    • xTIMEcomposer Tools Suite version 14.0 or later is required.

    Required hardware

    This application note is designed to run on an XMOS xCORE-200 series device.

    The example code provided with the application has been implemented and tested on the xCORE-200 explorerKIT core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-200 series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE-200 architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • This document assumes familiarity with QuadSPI flash memory, the xCORE quadflash library and the XMOS tool XFLASH.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE devices [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • xCORE-200 explorer - Accelerometer

    This application note show how to the accelerometer on an xCORE-200 explorer development kit. The kit itself has a Freescale FXOS8700CQ 6-Axis sensor with interated linear accelerometer and magnetometer.

    The example uses the XMOS I2C library to demonstrate how I2C devices can be accessed in an easy and efficient manner. It shows how to access the registers of an I2C device connected to the GPIO of an XMOS multicore micro controller.

    The code in the example builds a simple application which configures the FXOS8700CQ accelerometer and reports x,y and z acceleration values to the user. Data is output to the development console using xSCOPE and the accelerometer state is also reported via the RGB LED on the xCORE-200 explorer board.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0
    • XMOS I2C library - Version 2.0.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller.

    The example code provided with the application has been implemented and tested on the xCORE-200 explorer kit. The dependancy on this board is due to the FXOS8700CQ accelerometer being connected to the specific GPIO ports defined in the example. The same device could easily be added to another XMOS development platform.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS GPIO library, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the information relating to the I2C library, please see the document XMOS GPIO Library [2].
    • For the Freescale FXOS8700CQ device see the published datasheet [3].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xmos-gpio-lib

    [3]

    http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FXOS8700CQ

  • xCORE-200 explorer - Simple GPIO

    This application note show how to use simple GPIO on an xCORE-200 explorer development kit. The kit itself contains buttons and LED’s which can be accessed from application code running on the xCORE multicore microcontroller.

    The example uses the XMOS GPIO library to demonstrate how simple GPIO devices can be accessed from multibit ports in an easy and efficient manner. It also demonstrates how to respond to events from within application code.

    The code in the example builds a simple GPIO handling application which responds to button presses from the user and toggles the state of LED’s on the development board.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0
    • XMOS GPIO library - Version 1.0.0

    Required hardware

    This application note is designed to run on any XMOS multicore microcontroller.

    The example code provided with the application has been implemented and tested on the xCORE-200 explorer kit. The dependancy on this board is only due to the GPIO ports that are connected to the buttons and LED’s. These port definitions are in the source code and can be easily modified to work on another XMOS development board.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS GPIO library, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • For the information relating to the GPIO library, please see the document XMOS GPIO Library [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xmos-gpio-lib

xCORE-VOICE

xCORE-XA examples

  • Version
    Updated
    Download
    Title
  • xCORE-XA - Application Development

    This application note shows how to create a simple example which targets the XMOS xCORE-XA device and demonstrates how to build and run this application using the XMOS development tools.

    The code associated with this application note provides an example of driving a LED connected to both the ARM and xCORE GPIO.

    This simple example shows how to develop code targeting the xCORE-XA, how to use the XMOS development tools to compile and build applications and how to deploy code onto an xCORE-XA device using the supported development adapters.

    The example code in this application note does not communicate between the xCORE tile and the ARM code in order to introduce the tools support and project structure which allows xCORE-XA development.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2.0 or later

    Required hardware

    This application note is designed to run on an XMOS xCORE-XA series device.

    The example code provided with this application note has been implemented and tested on the xCORE-XA core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-XA series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE-XA devices [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • xCORE-XA - Debug printing via SWO

    This application note shows how to create a simple example which targets the XMOS xCORE-XA device and demonstrates how to build and run this application using the XMOS development tools.

    The code associated with this application note provides an example of setting up and using debug printing via the ARM core serial wire output (SWO) interface and connecting this to the debug tools running on the host PC.

    This example shows how to develop code targeting the xCORE-XA, how to use the XMOS development tools to compile and build applications and how to deploy code onto an xCORE-XA device using the supported development adapters.

    The example code in this application note does not communicate between the xCORE tile and the ARM code in order to introduce the mechanism used to provide debug print messages from applications running on the ARM core.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-XA series device.

    The example code provided with this application note has been implemented and tested on the xCORE-XA core module board but there is no dependancy on this i board and it can be modified to run on any development board which uses an xCORE-XA series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE-XA devices [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • xCORE-XA - Power Management

    This application note shows how to create a simple application which targets the XMOS xCORE-XA device and demonstrates how to implement power management of the xCORE component.

    The code associated with this application note provides an example of using GPIO on the ARM core to enable and disable the 3v3 and 1v0 power supplies of the xCORE tile contained within the xCORE-XA device. The xCORE tile application code in this application note boots from the ARM core internal flash.

    This simple example uses the XMOS tools features and tools libraries for xCORE-XA to develop this application and runtime tools to download and deploy code into the ARM flash.

    In the application note we generate code that does not communicate inside the application between the ARM core and the xCORE tile in order to simply demonstrate the ability to manage the power supplies of the xCORE tile. There is however communication within the boot process to allow the xCORE tile to boot from the ARM core internal flash and this is handled by the libraries provided with the XMOS tool chain.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2.0
    • xCORE ARM Bridge library (XAB) - Provided with tools version 13.2.0
    • xCORE ARM Boot library (XABoot) - Provided with tools version 13.2.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-XA series device.

    The example code provided with the application has been implemented and tested on the xCORE-XA core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-XA series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • This document assumes the reader has read and understood Application Note AN00141 xCORE-XA Application Development.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE-XA devices and also the API and description of the xCORE-XA bridge library and the xCORE-XA boot library, both of which are used in this example [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • xCORE-XA - USB HID Class

    This application note shows how to create a USB device compliant to the standard USB Human Interface Device (HID) class on an XMOS xCORE-XA multicore microcontroller.

    The code associated with this application note provides an example of using the Silicon Labs EFM32 USB library and associated USB class descriptors to provide a framework for the creation of a USB HID.

    The USB HID example provide a demonstration of a simple keyboard example running over full speed USB. The code used in the application note creates a device which supports the standard requests associated with this class of USB devices. The code which forms the basis of the application note is taken from an existing Silicon Labs application note for the EFM32 device family.

    The application operates as a simple keyboard which when running uses a button on the development board to generate keyboard events on the host machine. This demonstrates the simple way in which PC peripheral devices can easily be deployed using an xCORE device.

    Note: This application note provides a standard USB HID class device and as a result does not require drivers to run on Windows, Mac or Linux.

    The example code in this application note does not communicate between the xCORE tile and the ARM core. The example demonstrates how the xCORE tile can still be used whilst the ARM core is running a full speed USB device.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2.0
    • EFM32 USB library - Version 3.20.2 (supplied with application note)

    Required hardware

    This application note is designed to run on an XMOS xCORE-XA series device.

    The example code provided with this application note has been implemented and tested on the xCORE-XA core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-XA series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications), the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE-XA devices [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • xCORE-XA - xCORE ARM Boot Library

    This application note shows how to create a simple application which targets the XMOS xCORE-XA device and demonstrates how to build and run this application using the XMOS development tools.

    The code associated with this application note provides an example of using the xCORE ARM Boot (XABoot) library so that the xCORE tile can be booted by the ARM core from the internal flash on the xCORE-XA. In doing so, the application note also demonstrates how the xCORE tile binary can be stored within the ARM flash instead of having a seperate SPI device.

    This simple example shows how to develop code targeting the xCORE-XA, how to use the XMOS development tools to compile and build applications and how to deploy code onto an xCORE-XA device using the supported development adapters.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2.0 or later
    • xCORE ARM Bridge library (XAB) - Provided with tools version 13.2.0
    • xCORE ARM Boot library (XABoot) - Provided with tools version 13.2.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-XA series device.

    The example code provided with the application has been implemented and tested on the xCORE-XA core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-XA series device assuming the xCORE-XA bootloader has been written to the OTP and the mode pins are set to boot the xCORE tile from xCONNECT Link.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • This document assumes the reader has read and understood Application Note AN00141 xCORE-XA Application Development.
    • This document extends Application Note AN00142 Using the XAB Library.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE-XA devices and also the API and description of the xCORE-XA bridge library and the xCORE-XA boot library, both of which are used in this example [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • xCORE-XA - xCORE ARM Bridge Library

    This application note shows how to create a simple application which targets the XMOS xCORE-XA device and demonstrates how to build and run this application using the XMOS development tools.

    The code associated with this application note provides an example of using the xCORE ARM Bridge (XAB) library to pass data between the xCORE tile and the ARM core within an xCORE-XA device.

    This simple example shows how to develop code targeting the xCORE-XA, how to use the XMOS development tools to compile and build applications and how to deploy code onto an xCORE-XA device using the supported development adapters.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2.0
    • xCORE ARM Bridge library (XAB) - Provided with tools version 13.2.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-XA series device.

    The example code provided with this application note has been implemented and tested on the xCORE-XA core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-XA series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • This document assumes the reader has read and understood Application Note AN00141 xCORE-XA Application Development.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE-XA devices and also the API and description of the xCORE-XA bridge library which is used in this example [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • xCORE-XA - xCORE ARM Bridge Library with DMA

    This application note shows how to create a simple application which targets the XMOS xCORE-XA device and demonstrates how to build and run this application using the XMOS development tools.

    The code associated with this application note provides a simple example of using the xCORE ARM Bridge (XAB) library to pass data between the xCORE tile and ARM core. Specifically the code demonstrates how the ARM core makes use of its Direct Memory Access (DMA) controller within the XAB library.

    This simple example shows how to develop code targeting the xCORE-XA, how to use the XMOS development tools to compile and build applications and how to deploy code onto an xCORE-XA device using the supported development adapters.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2.0 or later
    • xCORE ARM Bridge library (XAB) - Provided with tools version 13.2.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-XA series device.

    The example code provided with the application has been implemented and tested on the xCORE-XA core module board but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-XA series device.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • This document assumes the reader has read and understood Application Note AN00141 xCORE-XA Application Development.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xCORE-XA devices and also the API and description of the xCORE-XA bridge library which is used in this example [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

xSCOPE examples

  • Version
    Updated
    Download
    Title
  • xSCOPE - Bi-Directional Endpoint

    This application note shows how to create a simple example which uses the XMOS xSCOPE application trace system to provide bi-directional communication with a custom application running on a host machine.

    The code associated with this application note demonstrates a simple console application running on a host PC which can communicate to the xCORE multicore microcontroller via the xSCOPE system.

    The xTIMEcomposer development tools provide an xSCOPE endpoint library which can be used to interface a custom application into the xSCOPE server provided. This allows communication to and from the xCORE processor via a simple API and socket connection which can be enabled.

    Example code for both the xCORE and host system is provided to enable an end-to-end demonstration of this capability.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2

    Required hardware

    This application note is designed to run on any XMOS xCORE multicore microcontroller

    The example code provided with the application has been implemented and tested on the XMOS startKIT but there is no dependancy on this board and it can be modified to run on any development board which has xSCOPE support available. It can also be run on the XMOS simulator if required.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xSCOPE and how to use it via code running on an xCORE processor [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide

  • xSCOPE - Custom Host Endpoint

    This application note shows how to create a simple example which uses the XMOS xSCOPE application trace system to provide instrumentation logging to a custom application running on a host machine.

    The code associated with this application note demonstrates a simple console application running on a host PC which can communicate to the xCORE multicore microcontroller via the xSCOPE system.

    The xTIMEcomposer development tools provide an xSCOPE endpoint library which can be used to interface a custom application into the xSCOPE server provided. This allows communication to and from the xCORE processor via a simple API and socket connection which can be enabled.

    Example code for both the xCORE and host system is provided to enable an end to end demonstration of this capability.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 13.2

    Required hardware

    This application note is designed to run on any XMOS xCORE multicore microcontroller.

    The example code provided with the application has been implemented and tested on the XMOS startKIT but there is no dependancy on this board and it can be modified to run on any development board which has xSCOPE support available. It can also be run on the XMOS simulator if required.

    Prerequisites

    • This document assumes familiarity with the XMOS xCORE architecture, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the References appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • The XMOS tools manual contains information regarding the use of xSCOPE and how to use it via code running on an xCORE processor [2].
    [1]

    http://www.xmos.com/published/glossary

    [2]

    http://www.xmos.com/published/xtimecomposer-user-guide