App notes

Gigabit Ethernet AVB endpoint example using TDM master

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://1m2n3b4v.xmos.com/published/glossary

[2]

http://1m2n3b4v.xmos.com/support/libraries

Gigabit Ethernet AVB endpoint example using TDM master Read More »

Gigabit Ethernet AVB endpoint example using I2S master

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://1m2n3b4v.xmos.com/published/glossary

[2]

http://1m2n3b4v.xmos.com/support/libraries

Gigabit Ethernet AVB endpoint example using I2S master Read More »

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

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://1m2n3b4v.xmos.com/published/glossary

[2]

http://1m2n3b4v.xmos.com/published/xuddg

[3]

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

USB CDC Class as Virtual Serial Port – Extended on xCORE-200 Explorer Read More »

Boot an xCORE-200 device from QuadSPI flash memory

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://1m2n3b4v.xmos.com/published/glossary

[2]

http://1m2n3b4v.xmos.com/published/xtimecomposer-user-guide

Boot an xCORE-200 device from QuadSPI flash memory Read More »

Using QuadSPI flash memory for persistent storage with xCORE-200

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://1m2n3b4v.xmos.com/published/glossary

[2]

http://1m2n3b4v.xmos.com/published/xtimecomposer-user-guide

Using QuadSPI flash memory for persistent storage with xCORE-200 Read More »

Using QuadSPI for application overlay data

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://1m2n3b4v.xmos.com/published/glossary

[2]

http://1m2n3b4v.xmos.com/published/xtimecomposer-user-guide

Using QuadSPI for application overlay data Read More »

Scroll to Top