Files
3d_audio/sw_usb_audio/CHANGELOG.rst
Steven Dan d8b2974133 init
2025-12-11 09:43:42 +08:00

1829 lines
74 KiB
ReStructuredText

sw_usb_audio Change Log
=======================
1.1.0 (for Phaten)
-----
* ADDED: One HID thread handling the data to/from the host app
* REMOVED: The 2 AI DNR threads
1.0.0 (for Phaten)
-----
* ADDED: app_app_usb_aud_phaten_gs_ex3d_stereo_2k build config (spatial audio UAC1.0 stereo 2k)
* ADDED: app_app_usb_aud_phaten_gs_ex3d_stereo_8k build config (spatial audio UAC1.0 stereo 8k)
* ADDED: app_app_usb_aud_phaten_gs_ex3d_71_game build config (spatial audio UAC2.0 7.1ch game mode)
* ADDED: app_app_usb_aud_phaten_gs_ex3d_71_music build config (spatial audio UAC2.0 7.1ch music mode)
* ADDED: app_app_usb_aud_phaten_gs_ex3d_71_movie build config (spatial audio UAC2.0 7.1ch movie mode)
* ADDED: app_app_usb_aud_phaten_gs_ex3d_71_drama build config (spatial audio UAC2.0 7.1ch drama mode)
* ADDED: PHATEN_GS.xn the xn file supporting Phaten golden sample v2 hardware
* Changes to dependencies:
- lib_audio_dsp: Added dependancy 1.4.0
- lib_agc: Added dependancy 1.0.0
- lib_xcore_math: Added dependency 2.4.0
8.1.0
-----
* ADDED: 2AMi18o18mssaax build config (MIDI, SPDIF Rx/Tx & ADAT Rx/Tx)
* ADDED: 2AMi16o16xxxaax build config (ADAT Rx/Tx)
* ADDED: 2AMi8o8mxxxxx build config (MIDI)
* CHANGED: Use lib_sw_pll code for configuring the application PLL
* FIXED: Use correct number of flash pages for XK-AUDIO-316-MC
* FIXED: Links to usb.org in documentation
* Changes to dependencies:
- lib_adat: 1.1.0 -> 1.2.0
+ CHANGED: example applications now run on xcore.ai hardware
+ CHANGED: example applications build using XCommon CMake
- lib_sw_pll: 2.1.0 -> 2.2.0
+ FIXED: Enable PLL output after delay to allow it to settle
+ FIXED: Fixed frequency settings for 11,289,600Hz
- lib_xua: 4.0.0 -> 4.1.0
+ ADDED: MIDI unit and sub-system tests
+ CHANGED: Only the minimum number of ADAT input formats are enabled
based on the supported sample rates
+ CHANGED: Enabling ADAT tx enables different channel count interface
alts, based on sample rate
+ CHANGED: Input audio buffer size and the exit condition underflow
modified to to fix buffer underflow in some configurations
+ CHANGED: CT_END token based handshake in MIDI channels transactions,
reducing opportuninity for deadlock
+ FIXED: Device fails to enumerate when ADAT and S/PDIF transmit are
enabled
+ FIXED: Update software PLL at the correct rate for ADAT S/MUX
+ FIXED: Incorrect internal input EP count for input only devices
+ FIXED: Samples transferred to ADAT tx too frequently in TDM mode
+ FIXED: S/MUX not initialised to a value based on DEFAULT_FREQ in
clockgen
+ FIXED: Trap when moving to DSD mode on XS3A based devices
8.0.0
-----
* ADDED: Support for XCommon CMake build system
* CHANGED: Windows control app now take GUID via a -g option, accommodating
latest Thesycon driver packages
* CHANGED: app_usb_aud_xk_316_mc defaults to using xcore.ai AppPLL for
master clock generation when syncing to digital streams or in USB sync mode,
rather than the external CS2100 device
* CHANGED: UserBufferManagmentInit() implementations updated to match API
change in lib_xua (now takes a sample rate value)
* CHANGED: app_usb_aud_xk_316_mc: Improvements in interaction with on-board
power control circuitry
* Changes to dependencies:
- lib_adat: 1.0.1 -> 1.1.0
+ ADDED: Support for XCommon CMake build system
- lib_dsp: 6.2.1 -> 6.3.0
+ ADDED: Support for XCommon CMake build system
- lib_i2c: 6.1.1 -> 6.2.0
+ ADDED: Support for XCommon CMake build system
+ REMOVED: Unused dependency lib_logging
- lib_i2s: 5.0.0 -> 5.1.0
+ ADDED: Support for XCommon CMake build system
+ RESOLVED: Added missing shutdown feature to i2s_frame_slave
+ FIXED: Allow input and output ports in the 4-bit port implementation to
be nullable
+ FIXED: Behaviour of the restart_check() callback function in the example
applications
+ REMOVED: Unused dependency lib_logging
+ ADDED: Frame synch error field in i2s_config_t for I2S slave
- lib_locks: 2.1.0 -> 2.2.0
+ ADDED: Tests now run on xcore.ai as well as xcore-200
+ ADDED: Support for XCommon CMake build system
- lib_logging: 3.1.1 -> 3.2.0
+ ADDED: Support for XCommon CMake build system
- lib_mic_array: 4.5.0 -> 4.6.0
+ ADDED: Support for XCommon CMake build system
- lib_spdif: 5.0.1 -> 6.1.0
+ ADDED: Support for XCommon CMake build system
+ ADDED: Support for transmit at 32kHz
+ RESOLVED: Coding optimisations not properly enabled in receiver
+ RESOLVED: Receiver timing issues for sample rates greater than 96kHz
+ RESOLVED: Failure to select correct receive sample rate when the sample
rate of the incoming stream changes
+ ADDED: Shutdown function for S/PDIF transmitter
+ CHANGED: Receiver rearchitected for improved performance and jitter
tolerance
+ CHANGED: API function names updated for uniformity between rx and tx
- lib_sw_pll: Added dependency 2.1.0
+ ADDED: Support for XCommon CMake build system
+ ADDED: Reset PI controller state API
+ ADDED: Fixed frequency (non phase-locked) clock PLL API
+ FIXED: Init resets PI controller state
+ FIXED: Now compiles from XC using XCommon
+ ADDED: Guard source code with __XS3A__ to allow library inclusion in
non- xcore-ai projects
+ CHANGED: Reduce PLL initialisation stabilisation delay from 10 ms to 500
us
+ ADDED: Split SDM init function to allow separation across tiles
+ FIXED: Use non-ACK write to PLL in Sigma Delta Modulator
- lib_xassert: 4.1.0 -> 4.2.0
+ ADDED: Support for XCommon CMake build system
- lib_xua: 3.5.1 -> 4.0.0
+ ADDED: Support for XCommon CMake build system
+ FIXED: Output volume control not enabled by default when MIXER
disabled
+ FIXED: Full 32bit result of volume processing not calculated when
required
+ FIXED: Input stream sending an erroneous zero-length packet when
exiting underflow state
+ FIXED Build failures when XUA_USB_EN = 0
+ FIXED: Clock configuration issues when ADAT and S/PDIF receive are
enabled (#352)
+ FIXED: Repeated old S/PDIF and ADAT samples when entering underflow
state
+ CHANGED: QUAD_SPI_FLASH replaced by XUA_QUAD_SPI_FLASH (default: 1)
+ CHANGED: UserBufferManagementInit() now takes a sample rate parameter
+ CHANGED: xcore.ai targets use sigma-delta software PLL for clock
recovery of digital Rx streams and synchronous USB audio by default
+ CHANGED: Windows host mixer control application now requires driver
GUID option
- lib_xud: 2.2.3 -> 2.3.1
+ FIXED: XS3A based devices not responding to IN packets in SE0_NAK
test mode
+ ADDED: XMOS proprietary test mode XMOS_IN_ADDR1
+ ADDED: Support for XCommon CMake build system
+ CHANGE: Removed definition and use of REF_CLK_FREQ in favour of
PLATFORM_REFERENCE_MHZ from platform.h
+ FIXED: Do not include implementations of inline functions when
XUD_WEAK_API is set
7.3.1
-----
* CHANGE: app_usb_aud_xk_evk_xu316: Mixer disabled by default
* Changes to dependencies:
- lib_xua: 3.5.0 -> 3.5.1
+ FIXED: Respect I2S_CHANS_PER_FRAME when calculating bit-clock rates
7.3.0
-----
* CHANGE: app_usb_aud_xk_316_mc: Respect XUA_I2S_N_BITS when configuring
external audio hardware
* ADDED: Support for 12.288MHz 11.2896MHz to xcore.ai AppPLL master clock
options
* FIXED: app_usb_aud_xk_316_mc: DAC settings not configured when sample
rate is lower than 48kHz
* Changes to dependencies:
- lib_spdif: 4.2.1 -> 5.0.1
+ FIXED: Reinstated graceful handling of bad sample-rate/master-clock
pair
+ CHANGED: Updated examples for new XK-AUDIO-316-MC board
+ CHANGED: Updated transmit to simplified implementation (note, no
longer supports XS1 based devices)
+ CHANGED: Removed headers SpdifReceive.h and SpdifTransmit.h. Users
should include spdif.h
- lib_xua: 3.4.0 -> 3.5.0
+ ADDED: Configurable word-length for I2S/TDM via XUA_I2S_N_BITS
+ ADDED: Support for statically defined custom HID descriptor
+ CHANGED: Rearranged main() such that adding custom code that uses
lib_xud is possible
+ CHANGED: bNumConfigurations changed from 2 to 1, removing a
work-around to stop old Windows versions loading the composite driver
+ FIXED: Memory corruption due to erroneous initialisation of mixer
weights when not in use (#152)
+ FIXED: UserHostActive() not being called as expected (#326)
+ FIXED: Exception when entering DSD mode (#327)
- lib_xud: 2.2.2 -> 2.2.3
+ FIXED: XUD_UserSuspend() and XUD_UserResume() now properly marked as
weak symbols (#374)
+ FIXED: Incorrect time reference used during device attach process
(#367)
7.2.0
-----
* ADDED: Driver information section to documentation
* CHANGED: AppPLL settings updated to reduce jitter (#112)
* CHANGED: app_usb_aud_316_mc: Improved DAC configuration sequencing
following datasheet recommendations
* CHANGED: app_usb_aud_316_mc: Manual DAC setup rather than using
auto-config to improve output quality (internal PLL no longer used)
* FIXED: app_usb_aud_316_mc: Intermittent output from DACs due to DAC
auto-standby (#110)
* FIXED: app_usb_aud_216_mc: Define app defaults ahead of lib_xua defaults
* Changes to dependencies:
- lib_xua: 3.3.1 -> 3.4.0
+ ADDED: Unit tests for mixer functionality
+ ADDED: Host mixer control applications (for Win/macOS)
+ CHANGED: Small tidies to mixer implementation
+ CHANGED: Improved mixer control channel communication protocol to
avoid deadlock situations
+ CHANGED: By default, output volume processing occurs in mixer task, if
present. Previously occurred in decouple task
+ CHANGED: Some optimisations in sample transfer from decouple task
+ FIXED: Exception on startup when USB input disabled
+ FIXED: Full 32bit volume processing only applied when required
+ FIXED: Setting OUT_VOLUME_AFTER_MIX to zero now has the expected
effect
- lib_xud: 2.2.1 -> 2.2.2
+ FIXED: Syntax error when including xud.h from C
+ CHANGE: Various API functions optionally marked as a weak symbol
based on XUD_WEAK_API
7.1.0
-----
* ADDED: Build configs for synchronous mode (uses external CS2100 device)
* ADDED: app_usb_aud_xk_316_mc: Build configs for xCORE as I2S slave
* CHANGED: app_usb_aud_xk_316_mc: Core voltage reduced to 0.9v (was 0.922v)
* CHANGED: Separated build configs into build-tested, partially-tested and
fully-tested
* CHANGED: Documentation updates (note, "Design Guide" now "User Guide")
* Changes to dependencies:
- lib_adat: 1.0.0 -> 1.0.1
+ Removed duplicate header file
- lib_i2s: 4.3.0 -> 5.0.0
+ ADDED: Support for I2S data lengths less than 32 bit.
+ ADDED: Implementation allowing use of a 4-bit port for up to 4
simultaneous streaming inputs or outputs.
- lib_spdif: 4.1.0 -> 4.2.1
+ CHANGED: Documentation updates
+ ADDED: Shutdown function for S/PDIF receiver
+ CHANGED: spdif_tx_example updated to use XK-AUDIO-216-MC
- lib_xua: 3.2.0 -> 3.3.1
+ CHANGED: Documentation updates
+ CHANGED: Define ADAT_RX renamed to XUA_ADAT_RX_EN
+ CHANGED: Define ADAT_TX renamed to XUA_ADAT_TX_EN
+ CHANGED: Define SPDIF_RX renamed to XUA_SPDIF_RX_EN
+ CHANGED: Define SELF_POWERED changed to XUA_POWERMODE and associated
defines
+ CHANGED: Drive strength of I2S clock lines upped to 8mA on xCORE.ai
+ CHANGED: ADC datalines sampled on falling edge of clock in TDM mode
+ CHANGED: Improved startup behaviour of TDM clocks
+ FIXED: Intermittent underflow at MAX_FREQ on input stream start due
to insufficient packet buffering
+ FIXED: Decouple buffer accounting to avoid corruption of samples
- lib_xud: 2.1.0 -> 2.2.1
+ FIXED: Control endpoint ready flag not properly cleared on receipt
of SETUP transaction (#356)
+ CHANGE: Further API functions re-authored in C (were Assembly)
+ CHANGE: Endpoints marked as Disabled now reply with STALL if the host
attempts to access them, previously they would NAK (#342)
+ FIXED: Exception if host accesses an endpoint that XUD believes to
be not in use
+ FIXED: Timeout event properly cleaned up after tx handshake received
(#312)
+ FIXED: A control endpoint will respect the halt condition for OUT
transactions when marked ready to accept SETUP transactions (#339)
+ FIXED: USB Disconnect on self-powered devices intermittently causing
Iso EP's to be set to not-ready indefinitely (#351)
7.0.0
-----
* ADDED: Application for XK-AUDIO-316-MC hardware
* ADDED: Support for XTC Tools 15
* CHANGED: Removed apps for deprecated hardware
* CHANGED: HID implementation for MC audio board buttons
* CHANGED: Moved from using sc_ repos to lib_ repos (see dependency changes
below)
* FIXED: Need to drive VBUS_OUT low on xCORE-200 MC AUDIO board (#17697)
* Changes to dependencies:
- lib_adat: Added dependency 1.0.0
+ Initial release
- lib_device_control: Removed dependency
- lib_dsp: Added dependency 6.2.1
+ CHANGED: Jenkinsfile used for CI
- lib_i2c: Added dependency 6.1.1
+ RESOLVED: Fixed timing for repeated START condition
- lib_i2s: Added dependency 4.3.0
+ CHANGED: Use XMOS Public Licence Version 1
- lib_locks: Added dependency 2.1.0
+ CHANGED: Use XMOS Public Licence Version 1
- lib_logging: 2.0.1 -> 3.1.1
+ CHANGED: Jenkinsfile used for CI
+ CHANGED: Use XMOS Public Licence Version 1
+ REMOVED: not necessary cpanfile
+ CHANGED: Pin Python package versions
+ CHANGED: Build files updated to support new "xcommon" behaviour in xwaf.
+ CHANGE: Test runner script now terminates correctly on Windows
+ ADDED: Now supports the %p format specifier
+ CHANGE: Ignore the case of the format specifiers
+ CHANGE: Ignore padding and alignment characters
- lib_mic_array: 2.0.1 -> 4.5.0
+ REMOVED: Use of Brew for CI
+ CHANGED: XMOS Jenkins Shared Library version used in CI
+ CHANGED: XN files to support 15.x.x tools
+ CHANGED: Use XMOS Public Licence Version 1
+ FIXED: Compiler warnings when MIC_DUAL_ENABLED is not defined
+ CHANGED: Pin Python package versions
+ REMOVED: not necessary cpanfile
+ CHANGED: Jenkinsfile pinned to Jenkins shared library 0.10.0
+ CHANGED: Updated the minimum version of libraries this library depends
upon.
+ ADDED support for global define to set single/dual output buffer for
mic_dual
+ Added mic_dual, an optimised single core, 16kHz, two channel version
(not compatible with async interface)
+ ADDED: Support for arbitrary frame sizes
+ ADDED: #defines for mic muting
+ ADDED: Non-blocking interface to decimators for 2 mic setup
+ CHANGED: Build files updated to support new "xcommon" behaviour in xwaf.
+ Added xwaf build system support
+ Cleaned up some of the code in the FIR designer.
+ Removed fixed gain in examples
+ Update VU meter example
+ Fix port types in examples
+ Set and inherit XCC_FLAGS rather than XCC_XC_FLAGS when building library
+ Updated lib_dsp dependancy from 3.0.0 to 4.0.0
+ Modified the FIR designer to increase the first stage stopband
attenuation.
+ Cleaned up some of the code in the FIR designer.
+ Updated docs to reflect the above.
+ Update DAC settings to work for mic array base board as well.
+ Filter design script update for usability.
+ Documentation improvement.
+ Changed DEBUG_UNIT to XASSERT_UNIT to work with lib_xassert.
+ Added upgrade advisory.
+ Added dynamic range subsection to documentation.
+ Added ability to route internal channels of the output rate of the
mic_array to the mic_array so that they can benefit from the post
processing of the mic_array.
+ Enabled the metadata which delivers the frame counter.
+ Small fix to the filter generator to allow the use of fewer taps in the
final stage FIR.
+ Added significant bits collection to the metadata.
+ Added fixed gain control through define MIC_ARRAY_FIXED_GAIN.
+ Tested and enabled the debug mode for detecting frame dropping. Enabled
by adding DEBUG_MIC_ARRAY to the Makefile.
+ Moved to using types from lib_dsp.
+ Bug fix in python FIR generator script resulting in excessive output
ripple.
+ Default FIR coefficients now optimised for 16kHz output sample rate.
+ Added ability to remap port pins to channels.
+ MIC_ARRAY_NUM_MICS is now forced to a multiple of 4 with a warning if it
changed.
+ Corrected MIC_ARRAY_DC_OFFSET_LOG2 default value reporting in
documentation.
- lib_spdif: Added dependency 4.1.0
+ CHANGED: Use XMOS Public Licence Version 1
+ CHANGED: Rearrange documentation files
- lib_voice: Removed dependency
- lib_xassert: 2.0.1 -> 4.1.0
+ CHANGED: Use XMOS Public Licence Version 1
+ REMOVED: not necessary cpanfile
+ CHANGED: Pin Python package versions
+ CHANGED: Build files updated to support new "xcommon" behaviour in xwaf.
+ CHANGE: Correct dates in LICENSE.txt files
+ CHANGE: Renamed DEBUG_UNIT to XASSERT_UNIT to prevent conflict with
lib_logging
- lib_xua: Added dependency 3.2.0
+ CHANGED: Updated tests to use lib_locks (was legacy module_locks)
+ CHANGED: Exclude HID Report functions unless the HID feature is
enabled
+ CHANGED: Explicit feedback EP enabled by default (see
UAC_FORCE_FEEDBACK_EP)
+ FIXED: Incorrect conditional compilation of HID report code
+ FIXED: Input/output descriptors written when input/output not
enabled. (Audio class 1.0 mode using
XUA_USB_DESCRIPTOR_OVERWRITE_RATE_RES)
- lib_xud: Added dependency 2.1.0
+ CHANGE: Various optimisations to aid corner-case timings on XS3 based
devices
+ CHANGE: Some API functions re-authored in C (were Assembly)
+ CHANGE: Testbench now more accurately models XS3 based devices
+ CHANGE: Endpoint functions called on a halted endpoint will block
until the halt condition is cleared
- sc_adat: Removed dependency
- sc_i2c: Removed dependency
- sc_spdif: Removed dependency
- sc_usb: Removed dependency
- sc_usb_audio: Removed dependency
- sc_usb_device: Removed dependency
- sc_util: Removed dependency
- sc_xud: Removed dependency
6.18.1
------
* CHANGE: Updated PIDs in app_usb_aud_mic_array
* Changes to dependencies:
- lib_device_control: Added dependency 2.0.0
+ Added the ability to select USB interface (Allows control from Windows)
- sc_usb_audio: 6.18.0 -> 6.18.1
+ ADDED: Vendor Specific control interface added to UAC1 descriptors
to allow control of XVSM params from Windows (via lib_usb)
6.18.0
------
* ADDED: app_usb_aud_mic_array now includes control of XVSM parameters
(see lib_xvsm_support/host for host control applications)
* RESOLVED: Incorrect build configurations in Eclipse project files in
app_usb_aud_mic_array
* Changes to dependencies:
- lib_voice: 0.0.2 -> 0.0.3
+ Added DOA_NAIVE_DONT_THRESH to disable thresholding code
- sc_usb_audio: 6.16.0 -> 6.18.0
+ ADDED: Call to VendorRequests() and VendorRequests_Init() to
Endpoint 0
+ ADDED: VENDOR_REQUESTS_PARAMS define to allow for custom parameters
to VendorRequest calls
+ RESOLVED: FIR gain compensation set appropriately in lib_mic_array
usage
+ CHANGE: i_dsp interface renamed i_audManage
- sc_xud: 2.4.1 -> 2.4.2
+ CHANGE: VBUS connection to xCORE-200 no longer required when using
XUD_PWR_BUS i.e. for bus-powered devices. This removes the need to any
protection circuitry and allows for a reduced BOM. Note, VBUS should
still be present for self powered devices in order to pass USB
compliance tests.
+ RESOLVED: Device might hang during resume if host follows resume
signality with activity after a time close to specified minimum of
1.33us (#11813)
6.17.0
------
* CHANGE: app_usb_aud_mic array: Modifications to XVSM processing
integration
* CHANGE: app_usb_aud_mic_array: AEC and NS enabled by default
* CHANGE: app_usb_aud_mic_array: XVSM VAD output used when DOA enabled
* Changes to dependencies:
- lib_voice: 0.0.1 -> 0.0.2
+ Simplification/optimisation of Naive DOA
6.16.1
------
* CHANGE: Feedback endpoint forcefully enabled in UAC1 build configs of
app_usb_aud_mic array (workaround for Windows issue)
* CHANGE: XVSM processing has AEC enabled by default.
* CHANGE: Default gain increased for processed microphone data
6.16.0
------
* ADDED: XVSM enabled build config added to app_usb_mic_array. Includes
example usage of UserBufferManagement() and i_dsp interface
* CHANGE: PDM Microphone processing examples use new interface (previously
functional call)
* Changes to dependencies:
- lib_mic_array: 2.0.0 -> 2.0.1
+ Updated AN00221 to use new lib_dsp API for FFTs
+ Updates required for latest lib_mic_array_board_support API
- lib_voice: Added dependency 0.0.1
+ Initial version
- sc_usb_audio: 6.15.2 -> 6.16.0
+ ADDED: Call to UserBufferManagement()
+ ADDED: PDM_MIC_INDEX in devicedefines.h and usage
+ CHANGE: pdm_buffer() task now combinable
+ CHANGE: Audio I/O task now takes i_dsp interface as a parameter
+ CHANGE: Removed built-in support for A/U series internal ADC
+ CHANGE: User PDM Microphone processing now uses an interface
(previously function call)
- sc_usb_device: 1.3.8 -> 1.3.9
+ RESOLVED: Value from HS config descriptor used for FS GET_STATUS
request. Causes USB CV test fail.
6.15.2
------
* CHANGE: Design Guide updated for xCORE-200 MC Audio and xCORE Microphone
array boards
* Changes to dependencies:
- sc_usb_audio: 6.15.1 -> 6.15.2
+ RESOLVED: interrupt.h (used in audio buffering) now compatible with
xCORE-200 ABI
6.15.1
------
* ADDED: Added build config to use TDM slave (2i8o8xxxxx_tdm8_slave) to
app_usb_aud_xk_216_mc
* Changes to dependencies:
- lib_mic_array: 1.0.1 -> 2.0.0
+ Renamed all functions to match library structure
+ Decimator interface functions now take the array of
mic_array_decimator_config structure rather than
mic_array_decimator_config_common
+ All defines renames to match library naming policy
+ DC offset simplified
+ Added optional MIC_ARRAY_NUM_MICS define to save memory when using less
than 16 microphones
- sc_usb_audio: 6.15.0 -> 6.15.1
+ RESOLVED: DAC data mis-alignment issue in TDM/I2S slave mode
+ CHANGE: Updates to support API changes in lib_mic_array version 2.0
- sc_xud: 2.4.0 -> 2.4.1
+ RESOLVED: Initialisation failure on U-series devices
6.15.0
------
* ADDED: app_usb_aud_mic_array for xCORE Microphone Array board. Includes
example usage of PDM microphone integration.
* Changes to dependencies:
- lib_logging: Added dependency 2.0.1
+ CHANGE: Update to source code license and copyright
- lib_mic_array: Added dependency 1.0.1
+ Added dynamic DC offset removal at startup to eliminate slow convergance
+ Mute first 32 samples to allow DC offset to adapt before outputting
signal
+ Fixed XTA scripte to ensure timing is being met
+ Now use a 64-bit accumulator for DC offset removal
+ Consolidated generators into a single python generator
+ Produced output frequency response graphs
+ Added 16 bit output mode
- lib_xassert: Added dependency 2.0.1
+ CHANGE: Update to source code license and copyright
- sc_usb_audio: 6.14.0 -> 6.15.0
+ RESOLVED: UAC 1.0 descriptors now support multi-channel volume control
(previously were hard-coded as stereo)
+ CHANGE: Removed 32kHz sample-rate support when PDM microphones
enabled (lib_mic_array currently does not support non-integer decimation
factors)
- sc_util: 1.0.5 -> 1.0.6
+ xCORE-200 compatibility fixes to module_trycatch
6.14.0
------
* ADDED: UAC 1.0 build configs to app_usb_aud_xk_216_mc
* Changes to dependencies:
- sc_usb_audio: 6.13.0beta2 -> 6.14.0beta2
+ ADDED: Support for for master-clock/sample-rate divides that are
not a power of 2 (i.e. 32kHz from 24.567MHz)
+ ADDED: Extended available sample-rate/master-clock ratios. Previous
restriction was <= 512x (i.e. could not support 1024x and above e.g.
49.152MHz MCLK for Sample Rates below 96kHz) (#13893)
+ ADDED: Support for various "low" sample rates (i.e. < 44100) into
UAC 2.0 sample rate list and UAC 1.0 descriptors
+ ADDED: Support for the use and integration of PDM microphones
(including PDM to PCM conversion) via lib_mic_array
+ RESOLVED: MIDI data not accepted after "sleep" in OSX 10.11 (El
Capitan) - related to sc_xud issue #17092
+ CHANGE: Asynchronous feedback system re-implemented to allow for the
first two ADDED changelog items
+ CHANGE: Hardware divider used to generate bit-clock from master
clock (xCORE-200 only). Allows easy support for greater number of
master-clock to sample-rate ratios.
+ CHANGE: module_queue no longer uses any assert module/lib
6.13.0
------
* RESOLVED: Channel string error & ADAT tx channel offset issue in
app_usb_aud_l2 due to SPDIF define typo in customdefines.h (should have been
SPDIF_TX)
* RESOLVED: Incorrect I2C addresses of CODECs in app_usb_aud_skc_u16
* Changes to dependencies:
- sc_usb_audio: 6.12.5rc0 -> 6.13.0beta2
+ ADDED: Device now uses implicit feedback when input stream is
available (previously explicit feedback pipe always used). This saves
chanend/EP resources and means less processing burden for the host.
Previous behaviour available by enabling UAC_FORCE_FEEDBACK_EP
+ RESOLVED: Exception when SPDIF_TX and ADAT_TX both enabled due to
clock-block being configured after already started. Caused by SPDIF_TX
define check typo
+ RESOLVED: DFU flag address changed to properly conform to memory
address range allocated to apps by tools
+ RESOLVED: Build failure when DFU disabled
+ RESOLVED: Build issue when I2S_CHANS_ADC/DAC set to 0 and CODEC_MASTER
enabled
+ RESOLVED: Typo in MCLK_441 checking for MIN_FREQ define
+ CHANGE: Mixer and non-mixer channel comms scheme (decouple <-> audio
path) now identical
+ CHANGE: Input stream buffering modified such that during overflow
older samples are removed rather than ignoring most recent samples.
Removes any chance of stale input packets being sent to host
+ CHANGE: module_queue (in sc_usb_audio) now uses lib_xassert rather
than module_xassert
+ RESOLVED: Build error when DFU is disabled
+ RESOLVED: Build error when I2S_CHANS_ADC or I2S_CHANS_DAC set to 0 and
CODEC_MASTER enabled
- sc_usb_device: 1.3.7rc0 -> 1.3.8beta0
- sc_xud: 2.3.2rc0 -> 2.4.0beta0
+ RESOLVED: Intermittent initialisation issues with xCORE-200
+ RESOLVED: SETUP transaction data CRC not properly checked
+ RESOLVED: RxError line from phy handled
+ RESOLVED: Isochronous IN endpoints now send an 0-length packet if not
ready rather than an (invalid) NAK.
+ RESOLVED: Receive of short packets sometimes prematurely ended
+ RESOLVED: Data PID not reset to DATA0 in ClearStallByAddr() (used on
ClearFeature(HALT) request from host) (#17092)
6.12.6
------
* Changes to dependencies:
- sc_usb_audio: 6.12.2rc3 -> 6.12.5rc0
+ RESOLVED: Stream issue when NUM_USB_CHAN_IN < I2S_CHANS_ADC
+ RESOLVED: DFU fail when DSD enabled and USB library not running on
tile[0]
+ RESOLVED: Method for storing persistent state over a DFU reboot
modified to improve resilience against code-base and tools changes
6.12.5
------
* RESOLVED: Enabled DFU support (and quad-SPI flash) support in xCORE-200
application.
* RESOLVED: Link names updated in xCORE-200 XN file
* CHANGE: xCore-200 Role-change reboot code updated for tools versions >
14.0.2
* Changes to dependencies:
- sc_usb_audio: 6.12.1alpha0 -> 6.12.3rc0
+ RESOLVED: Method for storing persistent state over a DFU reboot
modified to improve resilience against code-base and tools changes
+ RESOLVED: Reboot code (used for DFU) failure in tools versions >
14.0.2 (xCORE-200 only)
+ RESOLVED: Run-time exception in mixer when MAX_MIX_COUNT > 0
(xCORE-200 only)
+ RESOLVED: MAX_MIX_COUNT checked properly for mix strings in string
table
+ CHANGE: DFU code re-written to use an XC interface. The flash-part
may now be connected to a separate tile to the tile running USB code
+ CHANGE: DFU code can now use quad-SPI flash
+ CHANGE: Example xmos_dfu application now uses a list of PIDs to
allow adding PIDs easier. --listdevices command also added.
+ CHANGE: I2S_CHANS_PER_FRAME and I2S_WIRES_xxx defines tidied
6.12.4
------
* RESOLVED: (Minor) Fixed build issue with iAP EA Native Transport endpoints
example code in app_usb_aud_skc_u16_audio8
* ADDED: Support for xCORE-200 MC AUDIO board version 2.0 (in
app_usb_aud_x200)
* ADDED: ADAT output/input build configuration to app_usb_aud_x200
* ADDED: SPDIF input build configuration to app_usb_aud_x200
* CHANGE: Rationalised build config naming in app_usb_aud_x200
* Changes to dependencies:
- sc_spdif: 1.3.3alpha2 -> 1.3.4alpha0
+ Changes to RX codebase to allow running on xCORE-200
- sc_usb_audio: 6.12.0alpha1 -> 6.12.1alpha0
+ RESOLVED: Fixes to TDM input timing/sample-alignment when BCLK=MCLK
+ RESOLVED: Various minor fixes to allow ADAT_RX to run on xCORE 200 MC
AUDIO hardware
+ CHANGE: Moved from old SPDIF define to SPDIF_TX
6.12.3
------
* ADDED: Added roleswitch compatible build config to app_usb_aud_x200
* CHANGE: iPod detect code upataed and USB mux set appropriately for
roleswitch (guarded by USB_SEL_A)
* CHANGE: Updated all interrupts used for role-switch to new interrupt.h
API
* Changes to dependencies:
- sc_usb_device: 1.3.6alpha0 -> 1.3.7alpha0
- sc_xud: 2.3.1alpha0 -> 2.3.2alpha0
+ CHANGE: Interrupts disabled during any access to usb_tile. Allows
greater reliability if user suspend/resume functions enabled interrupts
e.g. for role-switch
6.12.2
------
* ADDED: Example code for using iAP EA Native Transport endpoints to
app_usb_aud_x200
6.12.1
------
* ADDED: DSD enabled build configurations to app_usb_aud_x200
* CHANGE: GPIO access in app_usb_aud_x200 guarded with a lock for safety
6.12.0
------
* ADDED: app_usb_aud_x200 application for xCORE-200-MC-AUDIO board
* CHANGE: Varous I2C device addresses updated for new I2C API.
* CHANGE: Added I2C module as an explicy dependancy to various apps where
module_i2c_shared is used (previously module_i2c_shared had
module_i2c_simple as a dependancy)
* CHANGE: I2C ports now in structs as required to match new I2C module API
* Changes to dependencies:
- sc_i2c: 2.4.1rc1 -> 3.0.0alpha1
+ Read support added to module_i2c_single_port (xCORE 200 only)
+ Retry on NACK added to module_i2c_single_port (matches
module_i2c_simple)
+ module_i2c_single_port functions now takes struct for port resources
(matches module_i2c_simple)
+ module_i2c_simple removed from module_i2c_shared dependancies. Allows
use with other i2c modules. It is now the applications responsibilty to
include the desired i2c module as a depenancy.
+ Data arrays passed to write_reg functions now marked const
- sc_spdif: 1.3.2rc2 -> 1.3.3alpha2
- sc_usb_audio: 6.11.2rc2 -> 6.12.0alpha1
+ ADDED: Checks for XUD_200_SERIES define where required
+ RESOLVED: Run-time exception due to decouple interrupt not entering
correct issue mode (affects XCORE-200 only)
+ CHANGE: SPDIF Tx Core may now reside on a different tile from I2S
+ CHANGE: I2C ports now in structure to match new
module_i2c_singleport/shared API.
+ RESOLVED: (Major) Streaming issue when mixer not enabled (introduced in
6.11.2)
- sc_usb_device: 1.3.5rc2 -> 1.3.6alpha0
- sc_util: 1.0.4rc0 -> 1.0.5alpha0
+ xCORE-200 compatibility fixes to module_locks
- sc_xud: 2.2.4rc3 -> 2.3.0alpha0
+ ADDED: Support for XCORE-200 (libxud_x200.a)
+ CHANGE: Compatibility fixes for XMOS toolset version 14 (dual-issue
support etc)
6.11.2
------
* ADDED: S/PDIF & ADAT input enabled build configs to
app_usb_aud_skc_u16_audio8 including required external Cirrus fractional-N
configuration.
* CHANGE: Example HID code uses defines from module_usb_audio/user_hid.h
* CHANGE: module_usb_audio_adat replaced with module_adat from sc_adat
* Changes to dependencies:
- sc_usb_audio: 6.11.1beta2 -> 6.11.2rc2
+ RESOLVED: (Major) Enumeration issue when MAX_MIX_COUNT > 0 only.
Introduced in mixer optimisations in 6.11.0. Only affects designs using
mixer functionality.
+ RESOLVED: (Normal) Audio buffering request system modified such that
the mixer output is not silent when in underflow case (i.e. host output
stream not active) This issue was introduced with the addition of DSD
functionality and only affects designs using mixer functionality.
+ RESOLVED: (Minor) Potential build issue due to duplicate labels in
inline asm in set_interrupt_handler macro
+ RESOLVED: (Minor) BCD_DEVICE define in devicedefines.h now guarded by
ifndef (caused issues with DFU test build configs.
+ RESOLVED: (Minor) String descriptor for Clock Selector unit
incorrectly reported
+ RESOLVED: (Minor) BCD_DEVICE in devicedefines.h now guarded by #ifndef
(Caused issues with default DFU test build configs.
+ CHANGE: HID report descriptor defines added to shared user_hid.h
+ CHANGE: Now uses module_adat_rx from sc_adat (local
module_usb_audio_adat removed)
6.11.1
------
* ADDED: ADAT transmit enabled build configs to app_usb_aud_l2
* ADDED: Audio hardware configuration for XCore I2S slave mode to
app_usb_aud_skc_u16_audio8 when CODEC_MASTER enabled.
* ADDED: Build configurations in app_usb_aud_l2 for TDM
* ADDED: DAC/ADC configuration for TDM in app_usb_aud_l2 when
I2S_MODE_TDM enabled.
* Changes to dependencies:
- sc_usb_audio: 6.11.0alpha2 -> 6.11.1beta2
+ ADDED: ADAT transmit functionality, including SMUX. See ADAT_TX and
ADAT_TX_INDEX.
+ RESOLVED: (Normal) Build issue with CODEC_MASTER (xCore is I2S slave)
enabled
+ RESOLVED: (Minor) Channel ordering issue in when TDM and CODEC_MASTER
mode enabled
+ RESOLVED: (Normal) DFU fails when SPDIF_RX enabled due to clock block
being shared between SPDIF core and FlashLib
6.11.0
------
* ADDED: Build configurations in app_usb_aud_skc_u16_audio8 for TDM
* ADDED: DAC/ADC configuration for TDM in app_usb_aud_skc_u16_audio8 when
I2S_MODE_TDM enabled.
* Changes to dependencies:
- sc_usb_audio: 6.10.0alpha2 -> 6.11.0alpha2
+ ADDED: Basic TDM I2S functionality added. See I2S_CHANS_PER_FRAME
and I2S_MODE_TDM
+ CHANGE: Various optimisations in 'mixer' core to improve performance
for higher channel counts including the use of XC unsafe pointers
instead of inline ASM
+ CHANGE: Mixer mapping disabled when MAX_MIX_COUNT is 0 since this is
wasted processing.
+ CHANGE: Descriptor changes to allow for channel input/output channel
count up to 32 (previous limit was 18)
6.10.0
------
* CHANGE: Support for version 2V0 of XK-USB-AUDIO-U8-2C and XP-SKC-U16
core boards and XA-SK-USB-BLC and XA-SK-USB-ABC slices in
app_usb_aud_xk_u8_2c and app_usb_aud_skc_u16_audio8 (previous board versions
will not operate correctly without software modification)
* RESOLVED: (minor) AudioHwConfig() in app_usb_aud_l2 now writes correct
register value to CS42448 CODEC for MCLK frequencies in the range 25MHz to
51MHz.
* Changes to dependencies:
- sc_usb_audio: 6.9.0alpha0 -> 6.10.0alpha2
+ CHANGE: Endpoint management for iAP EA Native Transport now merged
into buffer() core. Previously was separate core (as added in 6.8.0).
+ CHANGE: Minor optimisation to I2S port code for inputs from ADC
- sc_usb_device: 1.3.4rc0 -> 1.3.5rc2
+ RESOLVED: (Minor) Design Guide documentation build errors
- sc_xud: 2.2.3rc0 -> 2.2.4rc3
+ RESOLVED: (Minor) Potential for lock-up when waiting for USB clock on
startup. This is is avoided by enabling port buffering on the USB clock
port. Affects L/G series only.
6.9.0
-----
* ADDED: Added ADAT Rx enabled build config in app_usb_aud_l2
* Changes to dependencies:
- sc_usb_audio: 6.8.0alpha2 -> 6.9.0alpha0
+ ADDED: ADAT S-MUX II functionality (i.e. 2 channels at 192kHz) -
Previously only S-MUX supported (4 channels at 96kHz).
+ ADDED: Explicit build warnings if sample rate/depth & channel
combination exceeds available USB bus bandwidth.
+ RESOLVED: (Major) Reinstated ADAT input functionality, including
descriptors and clock generation/control and stream configuration
defines/tables.
+ RESOLVED: (Major) S/PDIF/ADAT sample transfer code in audio() (from
ClockGen()) moved to aid timing.
+ CHANGE: Modifying mix map now only affects specified mix, previous
was applied to all mixes. CS_XU_MIXSEL control selector now takes values
0 to MAX_MIX_COUNT + 1 (with 0 affecting all mixes).
+ CHANGE: Channel c_dig_rx is no longer nullable, assists with timing
due to removal of null checks inserted by compiler.
+ CHANGE: ADAT SMUX selection now based on device sample frequency
rather than selected stream format - Endpoint 0 now configures
clockgen() on a sample-rate change rather than stream start.
- sc_usb_device: 1.3.3alpha0 -> 1.3.4rc0
- sc_xud: 2.2.2alpha0 -> 2.2.3rc0
+ RESOLVED: (Minor) XUD_ResetEpStateByAddr() could operate on
corresponding OUT endpoint instead of the desired IN endpoint address as
passed into the function (and vice versa)
6.8.0
-----
* ADDED: Mixer enabled config to app_usb_aud_l2 Makefile
* ADDED: Example code for using iAP EA Native Transport endpoints to
app_usb_aud_skc_u16_audio8
* ADDED: Example LED level metering code to app_usb_aud_l2
* Changes to dependencies:
- sc_usb: 1.0.3rc0 -> 1.0.4alpha0
+ ADDED: Structs for Audio Class 2.0 Mixer and Extension Units
- sc_usb_audio: 6.7.0alpha0 -> 6.8.0alpha2
+ ADDED: Evaluation support for iAP EA Native Transport endpoints
+ RESOLVED: (Minor) Reverted change in 6.5.1 release where sample rate
listing in Audio Class 1.0 descriptors was trimmed (previously 4 rates
were always reported). This change appears to highlight a Windows (only)
enumeration issue with the Input & Output configs
+ RESOLVED: (Major) Mixer functionality re-instated, including
descriptors and various required updates compatibility with 13 tools
+ RESOLVED: (Major) Endpoint 0 was requesting an out of bounds channel
whilst requesting level data
+ RESOLVED: (Major) Fast mix code not operates correctly in 13 tools,
assembler inserting long jmp instructions
+ RESOLVED: (Minor) LED level meter code now compatible with 13 tools
(shared mem access)
+ RESOLVED (Minor) Ordering of level data from the device now matches
channel ordering into mixer (previously the device input data and the
stream from host were swapped)
+ CHANGE: Level meter buffer naming now resemble functionality
- sc_usb_device: 1.3.2rc0 -> 1.3.3alpha0
- sc_xud: 2.2.1rc0 -> 2.2.2alpha0
+ CHANGE: Header file comment clarification only
6.7.0
-----
* CHANGE: Audio interrupt endpoint implementation simplified (use for
notifying host of clock validity changes) simplified. Decouple() no longer
involved.
* RESOLVED: Makefile issue for 2ioxx config in app_usb_aud_skc_su1
* RESOLVED: Support for S/PDIF input reinstated (includes descriptors,
clocking support etc)
* Changes to dependencies:
- sc_usb_audio: 6.6.1rc1 -> 6.7.0alpha0
6.6.1
-----
* ADDED: Documentation for DFU
* ADDED: XUD_PWR_CFG define
* CHANGE: DSD ports now only enabled once to avoid potential lock up on
DSD->PCM mode change due to un-driven line floating high.
ConfigAudioPortsWrapper() also simplified.
* Changes to dependencies:
- sc_usb_audio: 6.6.0rc2 -> 6.6.1rc1
- sc_usb_device: 1.3.0rc0 -> 1.3.2rc0
- sc_xud: 2.1.1rc0 -> 2.2.1rc0
+ RESOLVED: Slight optimisations (long jumps replaced with short) to aid
inter-packet gaps.
+ CHANGE: Timer usage optimisation - usage reduced by one.
+ CHANGE: OTG Flags register explicitly cleared at start up - useful
if previously running in host mode after a soft-reboot.
6.6.0
-----
* ADDED: Added app_usb_aud_skc_u16_audio8 application for XP-SKC-U16 with
XA-SK-AUDIO8
* CHANGE: Support for XA-SK-USB-BLC 1V2 USB slice in app_usb_aud_xk_u8_2c
and app_usb_aud_skc_u16 (1V1 slices will not operate correctly without
software modification)
* CHANGE: Removed app_usb_aud_su1
* CHANGE: Endpoint 0 code updated to support new XUD test-mode enable API
* CHANGE: Macs operation for volume processing in mixer core now retains
lower bits when device configured to use either 32bit samples or Native DSD.
* RESOLVED: (Minor) DFU_FLASH_DEVICE define corrected in
app_usb_aud_skc_u16. Previously an incorrect SPI spec was defined causing
DFU to fail for this example application.
* RESOLVED: (Minor) HID descriptor properly defined when HID_CONTROLS
enabled
* Changes to dependencies:
- sc_usb_audio: 6.5.1rc4 -> 6.6.0rc2
- sc_usb_device: 1.2.2rc4 -> 1.3.0rc0
+ CHANGE: Required updates for XUD API change relating to USB
test-mode-support
- sc_xud: 2.0.1rc3 -> 2.1.1rc0
+ ADDED: Warning emitted when number of cores is greater than 6
+ CHANGE: XUD no longer takes a additional chanend parameter for
enabling USB test-modes. Test-modes are now enabled via a
XUD_SetTestMode() function using a chanend relating to Endpoint 0. This
change was made to reduce chanend usage only.
6.5.1
-----
* ADDED: Added USB Design Guide to this repo including major update (see
/doc)
* ADDED: Added MIDI_RX_PORT_WIDTH define such that a 4-bit port can be
used for MIDI Rx
* CHANGE: I2S data to clock edge setup time improvements when BCLK = MCLK
(particularly when running at 384kHz with a 24.576MHz master-clock)
* CHANGE: String table rationalisation (now based on a structure rather
than a global array)
* CHANGE: Channel strings now set at build-time (rather than run-time)
avoiding the use of memcpy
* CHANGE: Re-added c_aud_cfg channel (guarded by AUDIO_CFG_CHAN) allowing
easy communication of audio hardware config to a remote core
* CHANGE: Channel strings now labeled "Analogue X, SPDIF Y" if S/PDIF and
Analogue channels overlap (previously Analogue naming took precedence)
* CHANGE: Stream sample resolution now passed though to audio I/O core -
previously only the buffering code was notified. AudioHwConfig() now takes
parameters for sample resolution for DAC and ADC
* CHANGE: Endpoint0 core only sends out notifications of stream format
change on stream start event if there is an actual change in format (e.g.
16bit to 24bit or PCM to DSD). This avoids unnecessary audio I/O restarts
and reconfiguration of external audio hardware (via AudioHwConfig())
* CHANGE: All occurances of historical INPUT and OUTPUT defines now
removed. NUM_USB_CHAN_IN and NUM_USB_CHAN_OUT now used throughout the
codebase.
* RESOLVED: (Minor) USB test mode requests re-enabled - previously was
guarded by TEST_MODE_SUPPORT in module_usb_device (#15385)
* RESOLVED: (Minor) Audio Class 1.0 sample frequency list now respects
MAX_FREQ (previously based on OUTPUT and INPUT defines) (#15417)
* RESOLVED: (Minor) Audio Class 1.0 mute control SET requests stalled due to
incorrect data length check (#15419)
* RESOLVED (Minor) DFU Upload request now functional (Returns current
upgrade image to host) (#151571)
* Changes to dependencies:
- sc_i2c: 2.4.0beta1 -> 2.4.1rc1
+ module_i2c_simple header-file comments updated to correctly reflect API
- sc_spdif: 1.3.1beta3 -> 1.3.2rc2
- sc_usb_audio: 6.5.0beta2 -> 6.5.1rc4
- sc_usb_device: 1.1.0beta0 -> 1.2.2rc4
+ RESOLVED: (Minor) Build issue in Windows host app for bulk demo
+ CHANGE: USB_StandardRequests() now returns XUD_Result_t instead of
int
+ CHANGE: app_hid_mouse_demo now uses XUD_Result_t
+ CHANGE: app_custom_bulk_demo now uses XUD_Result_t
+ CHANGE: USB_StandardRequests() now takes the string table as an
array of char pointers rather than a fixed size 2D array. This allows
for a more space efficient string table representation. Please note,
requires tools 13 or later for XC pointer support.
+ CHANGE: Demo applications now set LangID string at build-time
(rather than run-time)
+ CHANGE: Test mode support no longer guarded by TEST_MODE_SUPPORT
- sc_util: 1.0.3rc0 -> 1.0.4rc0
+ module_logging now compiled at -Os
+ debug_printf in module_logging uses a buffer to deliver messages
unfragmented
+ Fix thread local storage calculation bug in libtrycatch
+ Fix debug_printf itoa to work for unsigned values > 0x80000000
- sc_xud: 2.0.0beta1 -> 2.0.1rc3
+ RESOLVED: (Minor) Error when building module_xud in xTimeComposer due
to invalid project files.
6.5.0
-----
* CHANGE: USB Test mode support enabled by default (required for
compliance testing)
* CHANGE: Default full-speed behaviour is now Audio Class 2, previously
was a null device
* CHANGE: Various changes to use XUD_Result_t returned from XUD functions
* CHANGE: All remaining references to ARCH_x defines removed.
XUD_SERIES_SUPPORT should now be used (#15270)
* CHANGE: Added IAP_TILE and MIDI_TILE defines (default to AUDIO_IO_TILE)
(#15271)
* CHANGE: Multiple output stream formats now supported. See
OUTPUT_FORMAT_COUNT and various _STREAM_FORMAT_OUTPUT_ defines. This allows
dynamically selectable streaming interfaces with different formats e.g.
sub-slot size, resolution etc. 16bit and 24bit enabled by default
* CHANGE: Audio buffering code now handles different slot size for
input/output streams
* CHANGE: Endpoint 0 code now in standard C (rather than XC) to allow
better use of packed structures for descriptors
* CHANGE: Use of structures/enums/headers in module_usb_shared to give
more modular Audio Class 2.0 descriptors that can be more easily modified at
run-time
* CHANGE: 16bit audio buffer packing/unpacking optimised
* RESOLVED: (Minor) All access to port32A now guarded by locks in
app_usb_aud_xk_u8_2c
* RESOLVED: (Minor) iAP interface string index in descriptors when MIXER
enabled (#15257)
* RESOLVED: (Minor) First feedback packet could be the wrong size (3 vs 4
byte) after a bus- speed change. usb_buffer() core now explicitly re-sizes
initial feedback packet on stream-start based on bus-speed
* RESOLVED: (Minor) Preprocessor error when AUDIO_CLASS_FALLBACK enabled and
FULL_SPEED_AUDIO_2 not defined. FULL_SPEED_AUDIO_2 now only enabled by
default if AUDIO_CLASS_FALLBACK is not enabled (#15272)
* RESOLVED: (Minor) XUD_STATUS_ENABLED set for iAP IN endpoints (and
disabled for OUT endpoint) to avoid potential stale buffer being transmitted
after bus-reset.
6.4.1
-----
* RESOLVED: (Minor) MIDI on single-tile L series devices now functional.
CLKBLK_REF no longer used for MIDI when running on the same tile as
XUD_Manager()
6.4.0
-----
* ADDED: XK-USB-AUDIO-U8-2C mute output driven high when audiostream not
active (app_usb_aud_xk_u8_2c)
* CHANGE: MIDI ports no longer passed to MFi specific functions
* CHANGE: Audio delivery core no longer waits for AUDIO_PLL_LOCK_DELAY
after calling AudioHwConfig() and running audio interfaces. It should be
ensured that AudioHwConfig() implementation should handle any delays
required for stable MCLK as required by the clocking hardware.
* CHANGE: Delay to allow USB feedback to stabilise after sample-rate
change now based on USB bus speed. This allows faster rate change at
high-speed.
* CHANGE: FL_DEVICE flash spec macros (from flash.h) used for
DFU_FLASH_DEVICE define where appropriate rather than defining the spec
manually
* RESOLVED: (Major) Broken (noisy) playback in DSD native mode (introduced
in 6.3.2). Caused by 24bit (over 32bit) volume processing when DSD enabled -
DSD bits are lost. 24bit volume control now guarded by NATIVE_DSD define
(#15200)
* RESOLVED: (Minor) Default for SPDIF define set to 1 in app_usb_aud_l1
customdefines.h. Previously SPDIF not properly enabled in binaries (#15129)
* RESOLVED: (Minor) All remaining references to stdcore[] replaced with
tile[] (#15122)
* RESOLVED: (Minor) Removed hostactive.xc and audiostream.xc from
app_usb_aud_skc_u16 such that default implementations are used
(hostactive.xc was using an invalid port) (#15118)
* RESOLVED: (Minor) The next 44.1 based freq above MAX_FREQ was reported by
GetRange(SamplingFrequency) when MAX_FREQ = MIN_FREQ (and MAX_FREQ was 48k
based) (#15127)
* RESOLVED: (Minor) MIDI input events no longer intermittently dropped under
heavy output traffic (Typically SysEx) from USB host - MIDI Rx port now
buffered (#14224)
* RESOLVED: (Minor) Fixed port mapping in app_usb_aud_skc_u16 XN file
(#15124)
* RESOLVED: (Minor) DEFAULT_FREQ was assumed to be a multiple of 48k during
initial calculation of g_SampFreqMultiplier (#15141)
* RESOLVED: (Minor) SPDIF not properly enabled in any build of
app_usb_aud_l1 (SPDIF define set to 0 in customdefines.h) (#15102)
* RESOLVED: (Minor) DFU enabled by default in app_usb_aud_l2 (#15153)
* RESOLVED: (Minor) Build issue when NUM_USB_CHAN_IN or NUM_USB_CHAN_OUT set
to 0 and MIXER set to 1 (#15096)
* RESOLVED: (Minor) Build issue when CODEC_MASTER set (#15162)
* RESOLVED: (Minor) DSD mute pattern output when invalid DSD frequency
selected in Native DSD mode. Previously 0 was driven resulting in pop noises
on the analague output when switching between DSD/PCM (#14769)
* RESOLVED: (Minor) Build error when OUT_VOLUME_IN_MIXER was set to 0
(#10692)
* RESOLVED: (Minor) LR channel swap issue in CS42448 CODEC by more closely
matching recommended power up sequence (app_usb_aud_l2) (#15189)
* RESOLVED: (Minor) Improved the robustness of ADC I2S data port init when
MASTER_CODEC defined (#15203)
* RESOLVED: (Minor) Channel counts in Audio 2 descriptors now modified based
on bus-speed. Input stream format also modified (previously only output was)
(#15202)
* RESOLVED: (Minor) Full-speed Audio Class 2.0 sample-rate list properly
restricted based on if input /output are enabled (#15210)
* RESOLVED: (Minor) AUDIO_CLASS_FALLBACK no longer required to be defined
when AUDIO_CLASS set to 1 (#13302)
* Changes to dependencies:
- sc_usb: 1.0.1beta1 -> 1.0.2beta1
+ ADDED: USB_BMREQ_D2H_VENDOR_DEV and USB_BMREQ_D2H_VENDOR_DEV
defines for vendor device requests
- sc_usb_device: 1.0.3beta0 -> 1.0.4beta5
+ CHANGE: devDesc_hs and cfgDesc_hs params to USB_StandardRequests()
now nullable (useful for full-speed only devices)
+ CHANGE: Nullable descriptor array parameters to
USB_StandardRequests() changed from ?array[] to (?&array)[] due to the
compiler warning that future compilers will interpret the former as an
array of nullable items (rather than a nullable reference to an array).
Note: The NULLABLE_ARRAY_OF macro (from xccompat.h) is used retain
compatibility with older tools version (i.e. 12).
- sc_xud: 1.0.2alpha1 -> 1.0.3beta1
+ RESOLVED: (Minor) ULPI data-lines driven hard low and XMOS pull-up on
STP line disabled before taking the USB phy out of reset. Previously the
phy could clock in erroneous data before the XMOS ULPI interface was
initialised causing potential connection issues on initial startup. This
affects L/G series libraries only.
+ RESOLVED: (Minor) Fixes to improve memory usage such as adding missing
resource usage symbols/elimination blocks to assembly file and inlining
support functions where appropriate.
+ RESOLVED: (Minor) Moved to using supplied tools support for
communicating with the USB tile rather than custom implementation
(affects U-series lib only).
6.3.2
-----
* ADDED: SAMPLE_SUBSLOT_SIZE_HS/SAMPLE_SUBSLOT_SIZE_FS defines (default
4/3 bytes)
* ADDED: SAMPLE_BIT_RESOLUTION_HS/SAMPLE_BIT_RESOLUTION_FS defines
(default 24/24 bytes)
* CHANGE: PIDs in app_usb_aud_xk_2c updated (previously shared with
app_usb_aud_skc_su1). Requires Thesycon 2.15 or later
* RESOLVED: (Minor) Fixed maxPacketSize for audio input endpoint (was
hard-coded to 1024)
* Changes to dependencies:
- sc_usb_device: 1.0.2beta0 -> 1.0.3beta0
- sc_xud: 1.0.1beta3 -> 1.0.2alpha1
+ ADDED: Re-instated support for G devices (xud_g library)
6.3.1
-----
* ADDED: Reinstated application for XR-USB-AUDIO-2.0-MC board
(app_usb_aud_l2)
* ADDED: Support for operation with Apple devices (MFI licensees only -
please contact XMOS)
* ADDED: USER_MAIN_DECLARATIONS and USER_MAIN_CORES defines in main for
easy addition of custom cores
* CHANGE: Access to shared GPIO port (typically 32A) in app code now
guarded with a lock for safety
* CHANGE: Re-organised main() to call two functions with the aim to
improve readability
* CHANGE: Event queue logic in MIDI now in XC module-queue such that it
can be inlined (code-size saving)
* CHANGE: Various functions now marked static to encourage inlining,
saving around 200 bytes of code-size
* CHANGE: Removed redundant MIDI buffering code from previous buffering
scheme
* CHANGE: Some tidy of String descriptors table and related defines
* Changes to dependencies:
- sc_i2c: 2.2.1rc0 -> 2.3.0beta1
+ module_i2c_simple fixed to ACK correctly during multi-byte reads (all
but the final byte will be now be ACKd)
+ module_i2c_simple can now be built with support to send repeated starts
and retry reads and writes NACKd by slave
+ module_i2c_shared added to allow multiple logical cores to safely share
a single I2C bus
+ Removed readreg() function from single_port module since it was not safe
- sc_spdif: 1.3.0rc4 -> 1.3.1beta2
+ Added .type and .size directives to SpdifReceive. This is required for
the function to show up in xTIMEcomposer binary viewer
6.3.0
-----
* ADDED: Application for XP-SKC-U16 board with XA-SK-AUDIO slice
(app_usb_aud_xkc_u16)
* CHANGE: Moved to XMOS toolchain version 13
6.2.1
-----
* ADDED: DEFAULT_MCLK_FREQ define added
* RESOLVED: Native DSD now easily disabled whilst keeping DoP mode enabled
(setting NATIVE_DSD to 0 with DSD_CHANS_DAC > 0)
* RESOLVED: Device could become unresponsive if the host outputs a stream
with an invalid DoP frequency (#14938)
6.2.0
-----
* ADDED: Application for XK-USB-AUDIO-U8-2C board
* ADDED: PRODUCT_STR define for Product Strings
* ADDED: Added DSD over PCM (DoP) mode
* ADDED: Added Native DSD (Driver support required)
* ADDED: Added optional channel for audio buffing control, this can
reduce power consumption
* ADDED: The device can run in Audio Class 2.0 when connected to a
full-speed hub using the FULL_SPEED_AUDIO_2 define
* ADDED: MIN_FREQ configuration define for setting minimum sample rate of
device (previously assumed 44.1)
* CHANGE: Endpoint0 code migrated to use new module_usb_device shared
module
* CHANGE: Device reboot code (for DFU) made more generic for multi-tile
systems
* CHANGE: DFU code now erases all upgrade images found, rather than just
the first one
* CHANGE: ports.h file no longer required. Please declare custom ports in
your own files
* CHANGE: Define based warnings in devicedefines.h moved to warnings.xc to
avoid multiple warnings being issued
* RESOLVED: (Major) ADC port initialization did not operate as expected at
384kHz
* RESOLVED: (Major) Resolved a compatibility issue with streaming on Intel
USB 3.0 xHCI host controller
* RESOLVED: (Major) Added defence against malformed Audio Class 1.0 packets
as experienced on some Win 8.0 hosts. Previously this would cause an
exception (Issue fixed in Win 8.1)
* RESOLVED: (Minor) maxPacketSize now reported based on device's read
bandwidth requirements. This allows the driver to reserve the proper
bandwidth amount (previously bandwidth would have been wasted)
* RESOLVED: (Minor) Input channel strings used for output in one instance
* RESOLVED: (Minor) Volume multiplication now compatible with 32bit samples.
Previously assumed 24bit samples and would truncate bottom 3 bits
* RESOLVED: (Minor) Fixed issue with SE0_NAK test mode (as required for
device receiver sensitivity USB-IF compliance test
* RESOLVED: (Minor) Fixed issue with packet parameters compliance test
* RESOLVED: (Minor) Added bounds checking to string requests. Previously an
exception was raised if an invalid String was requested
6.1.0
-----
* RESOLVED: Resolved issue with DFU caused by SU1 ADC usage causing issues
with soft reboot
* ADDED: Added ability for channel count changes between UAC1 and UAC2
modes
* ADDED: Support for iOS authentication (MFI licencees only - please
contact XMOS)
6.0.1
-----
* CHANGE: Removed support for early engineering sample U-series devices
6.0.0
-----
* ADDED: Support for SU1 (Via SU1 Core Board and Audio Slice) - see
app_usb_aud_skc_su1
* ADDED: Design moved to new build system
* ADDED: Optional support for USB test modes
* ADDED: Optional HID endpoint for audio controls and example usages
* ADDED: Multiple build configurations for supported device
configurations
* CHANGE: Now uses latest XUD API
* CHANGE: MIDI buffering simplified (using new XUD API) - no longer goes
through decouple thread
* CHANGE: Now uses sc_i2c from www.github.com/xcore/sc_i2c
* CHANGE: Previous default serial string of "0000" removed. No serial
string now reported.
* CHANGE: Master volume update optimised slightly (updateMasterVol in
audiorequests.xc)
* CHANGE: Master volume control disabled in Audio Class 1.0 mode to solve
various issues in Windows
* CHANGE: Audio Class 2.0 Status/Interrupt endpoint disabled by default
(enabled when SPDIF/ADAT receive enabled)
* CHANGE: DFU/Flash code simplified
* RESOLVED: (Minor) Fixed issue where buffering can lock up on sample
frequency change if in overflow (#10897)
* RESOLVED: (Minor) XN files updated to avoid deprecation warnings from
tools
* RESOLVED: (Major) Fixed issue where installation of the first upgrade
image is successful but subsequent upgrades fail (Design Advisory X2035A)
* Changes to dependencies:
- sc_adat: Added dependency 1.0.0
+ Initial release
- sc_i2c: Added dependency 1.0.0
- sc_spdif: Added dependency 1.0.0
- sc_usb: Added dependency 1.0.0
+ Initial release
- sc_usb_audio: Added dependency 1.0.0
- sc_xud: Added dependency 1.0.0
+ Initial stand-alone release
Legacy release history
----------------------
(Note: USB Audio version numbers unified across all products at this point)
Previous L1 Firmware Releases
+++++++++++++++++++++++++++++
3.3.0
-----
- ADDED: Added support for protocol Stall for un-recognised requests to Endpoint 0.
BOS Descriptor test in latest version of USB CV test now passes.
- RESOLVED: (Major) Removed redundant delays in DFU image download. This aids Windows DFU reliability.
- RESOLVED: (Minor) DFU Run-time descriptors updated from DFU 1.0 to DFU 1.1 spec. This allows USB CV test pass.
- RESOLVED: (Minor) MIDI string descriptors added to string table.
- RESOLVED: (Minor) bInterval value for feedback endpoint modified to be more compatible with Microsoft OSs
(support for iso endpoints with bInterval > 8 microframes). This aids compatibility with 3rd party
drivers for USB 3.0 controllers.
- RESOLVED: (Minor) Fixed build failure when NUM_USB_CHAN_IN/NUM_USB_CHAN_OUT defined as 0. Previous INPUT/OUTPUT
defines now based on NUM_USB_CHAN_XXX defines.
- RESOLVED: (Minor) Removed redundant calls to assert() to free memory.
3.2.0
-----
- RESOLVED: (Major) Fixed reset reliability for self-powered devices. This was due to an issue with
XUD/Endpoint synchronisation during communication of RESET bus state over channels.
Bus powered devices should not be effected due to power up on every plug event.
Note: Changes limited to XUD library only.
3.1.1
-----
- RESOLVED (Major) Removed size in re-interpret cast of DFU data buffer (unsigned to unsigned char). This
was due to a new optimisation in the 11.2 compiler which removes part of the DFU buffer (dfu.xc)
as it considers it un-used. This causes the DFU download request to fail due to stack corruption.
3.1.0
-----
- ADDED: Re-added LEDA "Valid Host" functionality using VendorHostActive() call. This functionality
missing since 3v00. Note LED now indicated "Valid Host" rather than "Suspend" condition
- RESOLVED: (Major) Fixed issue when sharing bus with other devices especially high throughput bulk devices
(e.g. hard disk drive). This is issue typically caused SOFs to missed by the device
resulting in incorrect feedback calculation and ultimately audio glitching. Note: this effects
XUD library only.
- RESOLVED: (Major) Intermittent issues with device chirp could lead to a bad packet on bus and device not
being properly detected as high-speed. This was due to opmode of transceiver sometimes
not being set before chirp. Note: this effects XUD library only.
- RESOLVED: (Minor) Intermittent USB CV Test fails with some hub models. Caused by test issuing suspend
during resume signalling. Note: this effects XUD library only
- RESOLVED: (Minor) bMaxPower now set to 10mA (was 500mA) since this is a self-powered design (see
SELF_POWERED define)
- RESOLVED: (Minor) Added code to deal with malformed audio packets from a misbehaving driver.
Previously this could result in the device audio buffering raising an exception.
- RESOLVED: (Minor) First packet of audio IN stream now correct to current sample-rate.
Previously first packet was of length relating to previous sample rate.
- RESOLVED: (Minor) MIDI OUT buffering code simplified. Now a single buffer used instead
of previous circular buffer.
- RESOLVED: (Minor) Audio OUT stream buffer pre-fill level increased.
- RESOLVED: (Minor) Under stressed conditions the Windows built in Audio Class 1.0 driver (usbaudio.sys)
may issue invalid sample frequencies (e.g. 48001Hz) leading to an unresponsive device.
Additional checks added to cope with this.
3.0.2
-----
- RESOLVED: Windows build issue (#9681)
3.0.1
-----
- RESOLVED: Version number reported as 0x0200, not 0x0300 (#9676)
3.0.0
-----
- ADDED: Added support to allow easy addition of custom audio requests
- ADDED: Optional "Host Active" function calls
- RESOLVED: Single sample delay between ADC L/R channels resolved (#8783)
- RESOLVED: Use of MIDI cable numbers now compliant to specification (#8892)
- RESOLVED: Improved USB interoperability and device performance when connected through chained hubs
- RESOLVED: S/PDIF Tx channel status bits (32-41) added for improved compliance
- RESOLVED: Increased robustness of high-speed reset recovery
2.0.0
-----
- ADDED: MIDI functionality
- CHANGE: Buffering re-factored
1.7.0
-----
- RESOLVED: Buffering fixes for non-intel USB chipsets
1.7.0
-----
- Modifications for XMOS 10.4 tools release
- Added USB Compliance Test Mode support
- Added 88.2kHz sample frequency support for Audio Class 1.0
- Various fixes for USB Compliance Command Verifier
1.6.4
-----
- Thesycon Windows Driver DFU support added
- LSB inprecision at 0dB volume fixed
- DFU now supports custom flash parts
1.5.0
-----
- Audio Class 1.0 available using build option, runs at full-speed
- Device falls back to Audio Class 1.0 when connected via a full-speed hub
- DFU functionality added
1.4.5
-----
- Suspend/Resume supported. LED A indicates suspend condition
- LED B now indicates presence of audio stream
- Code refactor for easy user customisation
1.3.0
-----
- Fixed feedback issue in 1v2 release of USB library xud.a (used 3-byte feedback)
1.2.0
-----
- Device now enumerates correctly on Windows
1.1.0
-----
- Device enumerates as 24bit (previously 32bit)
- Bit errors at 96kHz and 192kHz resolved
- S/PDIF output functionality added
- 88.2KHz analog in/out and S/PDIF output added
- 176.4KHz analog in/out added. S/PDIF not supported at this frequency because it requires 2xMCLK.
Board has 11.2896Mhz, and would require 22.579Mhz.
1.0.0
-----
- Initial release
L1 Hardware
+++++++++++
1.2.0
-----
- Explicit power supply sequencing
- Power-on reset modified to include TRST_N
1.1.0
-----
- Master clock re-routed to reduce cross-talk
1.0.0
-----
- Initial Version
Previous L2 Firmware Releases
+++++++++++++++++++++++++++++
5.3.0
-----
- ADDED: Added support for protocol Stall for un-recognised requests to Endpoint 0.
BOS Descriptor test in latest version of USB CV test now passes.
- RESOLVED: (Major) Removed redundant delays in DFU image download. This aids Windows DFU reliability.
- RESOLVED: (Minor) DFU Run-time descriptors updated from DFU 1.0 to DFU 1.1 spec. This allows USB CV test pass.
- RESOLVED: (Minor) MIDI string descriptors added to string table.
- RESOLVED: (Minor) bInterval value for feedback endpoint modified to be more compatible with Microsoft OSs
(support for iso endpoints with bInterval > 8 microframes). This aids compatibility with 3rd party
drivers for USB 3.0 controllers.
- RESOLVED: (Minor) Fixed build failure when NUM_USB_CHAN_IN/NUM_USB_CHAN_OUT defined as 0. Previous INPUT/OUTPUT
defines now based on NUM_USB_CHAN_XXX defines.
- RESOLVED: (Minor) Fixed build failure when MIXER defined as 0.
- RESOLVED: (Minor) MAX_MIX_OUTPUTS define now effects device descriptors. Previously only effected mixer
processing.
- RESOLVED: (Minor) Removed redundant calls to assert() to free memory.
5.2.0
-----
- RESOLVED: (Major) Fixed reset reliability for self-powered devices. This was due to an issue with
XUD/Endpoint synchronisation during communication of RESET bus state over channels.
Bus powered devices should not be effected due to power up on every plug event.
Note: Changes limited to XUD library only.
5.1.1
-----
- RESOLVED: (Major) Removed size in re-interpret cast of DFU data buffer (unsigned to unsigned char). This
was due to a new optimisation in the 11.2 compiler which removes part of the DFU buffer (dfu.xc)
as it considers it un-used. This causes the DFU download request to fail due to stack corruption.
5.1.0
-----
- RESOLVED: (Major) Fixed issue when sharing bus with other devices especially high throughput bulk devices
(e.g. hard disk drive). This is issue typically caused SOFs to missed by the device
resulting in incorrect feedback calculation and ultimately audio glitching. Note: Changes
limited to XUD library only.
- RESOLVED: (Major) Intermittent issues with device chirp could lead to a bad packet on bus and device not
being properly detected as high-speed. This was due to opmode of transceiver sometimes
not being set before chirp. Note: Changes limited to XUD library only.
- RESOLVED: (Minor) Intermittent USB CV Test fails with some hub models. Caused by test issuing suspend
during resume signalling. Note: Changes limited to XUD library only.
- RESOLVED: (Minor) bMaxPower now set to 10mA (was 500mA) since this is a self-powered design (see
SELF_POWERED define)
- RESOLVED: (Minor) Added code to deal with malformed audio packets from a misbehaving driver.
Previously this could result in the device audio buffering raising an exception.
- RESOLVED: (Minor) First packet of audio IN stream now correct to current samplerate.
Previously first packet was of length relating to previous sample rate.
- RESOLVED: (Minor) MIDI OUT buffering code simplified. Now a single buffer used instead of
previous circular buffer.
- RESOLVED: (Minor) Audio OUT stream buffer pre-fill level increased.
5.0.0
-----
- ADDED: Added support to allow easy addition of custom audio requests
- ADDED: Optional level meter processing added to mixer
- ADDED: Volume control locations customisable (before/after mix etc)
- ADDED: Mixer inputs are now runtime configurable (includes an "off" setting)
- ADDED: Mixer/routing topology now compliant to Audio Class 2.0 specification
- ADDED: Host mixer application updated for new topology and routing (and re-ported to Windows/Thesycon)
- ADDED: Saturation added to mixer arithmetic
- ADDED: Optional "Host Active" function calls (Example usage included)
- ADDED: Optional "Clock Validity" function calls (Example usage included)
- RESOLVED: Single sample delay between ADC L/R channels resolved (#8783)
- RESOLVED: Issue where external PLL could sometimes be unlocked due to cable unplug (#9179)
- RESOLVED: Use of MIDI cable numbers now compliant to specification (#8892)
- RESOLVED: Improved USB interoperability and device performance when connected through chained hubs
- RESOLVED: S/PDIF Tx channel status bits (32-41) added for improved compliance
- RESOLVED: Various performance optimisations added to mixer code
- RESOLVED: Increased robustness of high-speed reset recovery
4.0.0
-----
- ADDED: Addition of ADAT RX
- ADDED: Design can now cope with variable channel numbers set by the host (via Alternate Interfaces)
- ADDED: Fix to mixer volume range (range and resolution now definable in customdefines.h) (#9051)
3.0.0
-----
- ADDED: Addition of mixer
- ADDED: Example host mixer application to package. Uses Lib USB for OSX/Linux, Thesycon for Windows
- RESOLVED: Fixed internal clock mode jitter on reference to fractional-n
2.0.0
-----
- ADDED: Addition of S/PDIF Rx functionality and associated clocking functionality
- ADDED: Addition of Interrupt endpoint (interrupts on clock sources)
- RESOLVED: String descriptors added for input channels
- RESOLVED: Full-speed fall-back descriptors corrected for compliance
1.0.0
-----
- ADDED: Addition of MIDI input/output functionality
- ADDED: Addition of DFU functionality
- RESOLVED: Descriptor fixes for Windows (Thesycon) driver
0.5.2
-----
- ADDED: Addition of support for CODEC in master mode (see CODEC_SLAVE define)
0.5.1
-----
- ADDED: BCLK == MCLK now supported (i..e 192kHz from 12.288MHz)
- ADDED: MCLK defines now propagate to feedback calculation and CODEC configuration
- RESOLVED: XN file update for proper xflash operation
0.5.0
-----
(Port buffers enabled on USB clock port) - Initial Alpha release
- 10 channel input/output (8 chan DAC, 6 chan ADC, 2 chan S/PDIF tx)
- Master/channel volume/mute controls
L2 Hardware
+++++++++++
1.2.0
-----
- Update for coax in, coax out cap & minor tidyup
1.1.0
-----
- Initial production
1.0.0
-----
- Pre-production