Initial doc add

This commit is contained in:
xross
2018-03-08 17:39:15 +00:00
parent a7678f8916
commit 2729d9a34a
50 changed files with 11736 additions and 9 deletions

83
lib_xua/doc/rst/sw.rst Normal file
View File

@@ -0,0 +1,83 @@
.. _usb_audio_sec_architecture:
USB Audio Software Overview
---------------------------
This section describes the software architecture of a USB Audio device implemented using `lib_xua`, its dependancies and other supporting libraries.
`lib_xua` provides the fundamental building blocks for producing USB Audio products on XMOS devices.
Every system is required to have the shared components from `lib_xua` listed in :ref:`usb_audio_shared_components`.
.. _usb_audio_shared_components:
.. list-table:: Required XUA Components
:header-rows: 1
:widths: 40 60
* - Component
- Description
* - Endpoint 0
- Provides the logic for Endpoint 0 which handles
enumeration and control of the device including DFU related requests.
* - Endpoint buffer
- Buffers endpoint data packets to and from the host. Manages delivery of audio packets between the endpoint buffer
component and the audio components. It can also handle volume control processing.Note, this currently utlises two cores
* - AudioHub
- Handles audio I/O over I2S and manages audio data
to/from other digital audio I/O components.
In addition low-level USB I/0 is required and is provided by the external dependency `lib_xud`
.. list-table:: Additional Components Required
:header-rows: 1
:widths: 100 60
* - Component
- Description
* - XMOS USB Device Driver (XUD)
- Handles the low level USB I/O.
In addition :ref:`usb_audio_optional_components` shows optional components that can be added/enabled from `lib_xua`
.. _usb_audio_optional_components:
.. list-table:: Optional Components
:header-rows: 1
:widths: 40 60
* - Component
- Description
* - Mixer
- Allows digital mixing of input and output channels. It can also
handle volume control instead of the decoupler.
* - S/PDIF Transmitter
- Outputs samples of an S/PDIF digital audio interface.
* - S/PDIF Receiver
- Inputs samples of an S/PDIF digital audio interface (requires the
clockgen component).
* - ADAT Receiver
- Inputs samples of an ADAT digital audio interface (requires the
clockgen component).
* - Clockgen
- Drives an external frequency generator (PLL) and manages
changes between internal clocks and external clocks arising
from digital input.
* - MIDI
- Outputs and inputs MIDI over a serial UART interface.
* - PDM Microphones
- Receives PDM data from microphones and performs PDM to PCM conversion
.. _usb_audio_threads:
.. figure:: images/threads-crop.*
:width: 100%
USB Audio Core Diagram
:ref:`usb_audio_threads` shows how the components interact with each
other in a typical system. The green circles represent cores with arrows indicating inter-core communications.