Releases: xmos/sw_usb_audio
Releases · xmos/sw_usb_audio
v9.2.0
- CHANGED: app_usb_aud_xk_316_mc, UAC2.0, MIDI enabled configurations enumerate with a a different PID (0x0020)
- CHANGED: app_usb_aud_xk_316_mc and app_usb_aud_xk_evk_xu316 now use lib_xua optional header files to add custom functionalty rather than defines such as USER_MAIN_TASKS and USER_MAIN_DECLARATIONS
- ADDED: high bandwidth ISO endpoints build configurations (2AMi20o20xxxaax_hibw, 2AMi30o30xxxxxx_hibw and 2AMi30o30xxxaax_hibw) to app_usb_aud_xk_316_mc
- Changes to dependencies:
- lib_locks: 2.3.1 -> 2.3.2
- ADDED: locks.h which includes all lock functions
- CHANGED: Minor documentation updates
- lib_logging: 3.3.1 -> 3.4.0
- CHANGED: Renamed application note "AN00239" to example "app_debug_unit", merged app-note documentation into library documentation.
- FIXED: Fixed type conversion warnings
- lib_spdif: 6.2.1 -> 7.0.0
- ADDED: Support for transmitting IEC 60958-4 professional applications channel status block
- ADDED: Support for transmitting 16, 20 or 24 bit data with the word length being configurable at run-time
- CHANGED: Pre-fill the SPDIF TX port buffers before starting actual data transfer
- CHANGED: Channel protocol when communicating with the transmitter to include audio sample word length
- lib_xua: 5.1.0 -> 5.2.0
- ADDED: Support for optional include header xua_conf_tasks.h with the same functionality as xua_conf_cores.h i.e. to allow insertion of tasks into the main() function (xua_conf_cores.h to be deprecated in a future release) ADDED: Support for define USER_MAIN_TASKS with the same functionalty as USER_MAIN_CORES i.e. to allow insertion of tasks into the main() function (USER_MAIN_CORES to be deprecated in a future release)
- ADDED: Support for high bandwidth ISO endpoints
- ADDED: Delay in AudioHub() to allow time for the audio PLL to lock and master clock stabilise
- ADDED: Change to reset Software PLL DCO setting to midpoint when there's a change in clock source
- ADDED: Where possible TILE_NUM defines are now derived from PORT defines in the application XN file
- ADDED: Check for I2S timing violation. Can be enabled by running cmake with -DENABLE_I2S_TIMING_CHECK=ON
- CHANGED: When Software PLL is enabled, report external clock as invalid when the USB sampling frequency doesn't match the digital input sampling frequency
- CHANGED: AUDIO_IO_TILE renamed to XUA_AUDIO_IO_TILE_NUM
- CHANGED: XUA_TILE renamed to XUA_XUD_TILE_NUM
- CHANGED: MIDI_TILE renamed to XUA_MIDI_TILE_NUM
- CHANGED: SPDIF_TX_TILE renamed to XUA_SPDIF_TX_TILE_NUM
- CHANGED: PDM_TILE renamed to XUA_MIC_PDM_TILE_NUM
- CHANGED: PLL_REF_TILE renamed to XUA_PLL_REF_TILE_NUM
- CHANGED: Supported optional configuration header files user_main_cores.h, user_main_declarations.h and user_main_globals.h should now be named xua_conf_cores.h, xua_conf_declarations.h and xua_conf_globals.h respectively
- CHANGED: Renamed AN00246 example to app_xua
- CHANGED: Mixer optimisation to do output volume control after mixing, instead of in GiveSamplesToDevice()
- CHANGED: Mixer optimisation to speed up sample exchange between mixer and audiohub, to fix I2S timing violation causing intermittent test failures
- CHANGED: Channel protocol between audiohub and SDFIF TX extended to communicate SPDIF audio sample length
- FIXED: Issue with master clock not present for digital receive (only) configs when using the Software PLL
- FIXED: Reset Software PLL phase/frequency detector when digital clock becomes invalid to prevent incorrect error input to sigma-delta modulator
- FIXED: Incorrect values of bLockDelayUnits and bLockDelay in async mode
- REMOVED: Application notes AN00247 and AN00248 from examples folder. Instead see https://www.xmos.com/application-notes/
- lib_xud: 3.0.1 -> 4.0.0
- ADDED: Support for high bandwidth ISO endpoints
- REMOVED: Support for legacy API XUD_Manager()
- lib_locks: 2.3.1 -> 2.3.2
v9.1.0
- ADDED: Low power build configuration (2AMi2o2xxxxxx_lp) to app_usb_aud_xk_316_mc
- ADDED: HID support to app_usb_aud_xk_316_mc
- REMOVED: Example code for using iAP EA Native Transport endpoints from app_usb_aud_xk_216_mc
- Changes to dependencies:
- lib_board_support: 1.1.1 -> 1.3.0
- ADDED: Support for PHY address being either 0x1 or 0x4 for XK-EVK-XE216
- ADDED: Power-down support for xk-audio-316-mc audio hardware
- ADDED: xcore core voltage control API for xk-audio-316-mc
- CHANGED: replaced phy_idx paramter in get_port_timings() with enum, port_timing_index_t
- ADDED: Note in documentation about XK_ETH_XU316_DUAL_100M being currently unreleased
- FIXED: Second PHY index for get_timings() in xk_eth_xu316_dual_100m
- ADDED: Support for xk_evk_xe216 board ethernet PHY setup
- ADDED: Initial support for xk_eth_xu316_dual_100m board ethernet PHY setup
- FIXED: Long delay in xk_evk_xu316_AudioHwInit() causing USB issues
- lib_i2c: 6.2.0 -> 6.4.0
- FIXED: In case of clock stretching, ensure that the required delay happens between the slave releasing SCL and the master driving data on SDA.
- FIXED: Drive data on SDA in open drain mode.
- CHANGED: Documentation updated
- REMOVED: Support for XS1 - Please design with xcore.ai for new projects
- CHANGED: Build examples and tests using XCommon CMake instead of XCommon
- lib_mic_array: 5.4.0 -> 5.5.0
- CHANGED: Documentation updated
- CHANGED: Renamed examples to app_
- CHANGED: Renamed the scripts/ directory to python/
- lib_sw_pll: 2.3.1 -> 2.4.0
- ADDED: Fixed frequency API may be passed zero to disable PLL
- lib_xcore_math: 2.3.0 -> 2.4.0
- CHANGED: Documentation updated
- CHANGED: Renamed examples to app_
- FIXED: Added missing xcore_math.h
- REMOVED: xmos_cmake_toolchain submodule
- lib_xua: 5.0.0 -> 5.1.0
- ADDED: Enumeration of vendor specific control interface as WinUSB compatible on Windows. Can be disabled by defining ENUMERATE_CONTROL_INTF_AS_WINUSB to 0
- ADDED: Optional user_main_declarations.h and user_main_cores.h headers to allow insertion of declarations and tasks for extending main()
- ADDED: XUA_LOW_POWER_NON_STREAMING define allowing low-power state when not streaming which stops I2S and provides additional user callback
- ADDED: Calls to user functions XUA_UserSuspendPowerDown() and XUA_UserResumePowerUp() to allow user code to run when the device is suspended or resumed (default implementations are empty)
- ADDED: Documentation of XUA_CHAN_BUFF_CTRL
- CHANGED: Suspend/resume notification from lib_xud (added in v3.0.0) used rather than overriding XUD_UserSuspend() and XUD_UserResume()
- CHANGED: Made p_off_mclk nullable for XUA_Buffer; this port is now only required either in configurations using Synchronous mode and using the application PLL to clock the USB buffers, or for configurations using Asynchronous mode and using the reference clock to clock the USB buffers
- CHANGED: Renamed USB_CONTROL_DESCS define to XUA_USB_CONTROL_DESCS
- CHANGED: AN00248 updated so that it uses lib_xua main() instead of custom main()
- CHANGED: UserAudioStreamStart and UserAudioStreamStop replaced by single UserAudioStreamState(in, out) API with arguments indicating whether input or output streams are active
- CHANGED: Functionality associated with AUDIO_CLASS_FALLBACK and FULL_SPEED_AUDIO_2 moved to XUA_AUDIO_CLASS_FS and XUA_AUDIO_CLASS_HS
- CHANGED: Simplification of USB string table handling
- CHANGED: lib_xud's USB_TILE define derived from lib_xua's XUD_TILE define (using xud_conf.h)
- FIXED: wMaxPacketSize for MIDI bulk IN and OUT endpoints incorrectly set when running at full-speed
- FIXED: p_mclk_in and clk_audio_bclk not correctly nullable when I2S not in use.
- FIXED: Incorrect clk_audio_mclk nullability for XUA_AudioHub; this clock block is only required for configurations with ADAT or SPDIF TX
- FIXED: Compilation error with NUM_USB_CHAN_IN=0, NUM_USB_CHAN_OUT=0 and HID_CONTROLS=1
- FIXED: HID functionality with AUDIO_CLASS = 1
- FIXED: Alignment issue with HID_Descriptor memory that was causing USB_GET_DESCRIPTOR for the HID interface to fail leading to failing USB3CV HID Descriptor test
- FIXED: Device enumeration error when both XUA_DFU_EN and XUA_USB_CONTROL_DESCS enabled
- FIXED: UAC2 descriptors during full-speed operation
- FIXED: Compiler error when PDM mics used and EXCLUDE_USB_AUDIO_MAIN is not defined.
- FIXED: Guard on epTypeTableOut[] declaration where incorrect EP type for audio out endpoint occurred if additional custom endpoints are added
- FIXED: String descriptors not updated when using runtime API (#406)
- FIXED: Strings relating to items such as Clock Selector, Clock, DFU, etc not updated when using run time API function setVendorString()
- REMOVED: Support for iAP EA Native Transport endpoints
- lib_xud: 2.4.0 -> 3.0.1
- ADDED: XUD_THREAD_MODE_FAST_EN option to enable/disable XUD thread fast mode
- ADDED: Option XUD_SUSPEND_PHY to place USB phy in low power mode during USB suspend
- ADDED: Notification system for suspend and resume bus states, this should replace the use of callbacks XUD_UserSuspend() and XUD_UserResume()
- ADDED: XUD_GetBusState() and XUD_AckBusState() API functions
- CHANGED Endpoint API functions now return XUD_RES_UPDATE on a bus state change (suspend/resume/reset). XUD_GetBusState() should then be called to ascertain the new state. XUD_AckBusState() must be used to acknowledge suspend or resume states. XUD_ResetEndpoint() should be used to handle reset states (similar to previous behaviour).
- CHANGED: Optimised port timings for XS3A to use non-inverted clock
- CHANGED: Instruction-level (speed) optimisations
- FIXED: Incorrect references to XUD_TILE replaced by USB_TILE in documentation
- lib_board_support: 1.1.1 -> 1.3.0
v9.0.0
- ADDED: app_usb_aud_xk_316_mc: 2AMi16o16xxxaax_tdm8 build config (ADAT
Rx/Tx, TDM master) - CHANGED: Extracted the board setup code from audiohw.xc to a new library:
lib_board_support - CHANGED: DFU_PID defined in the xua_conf of the example applications
- CHANGED: User Guide to have xcommon_cmake as the documented build flow
- Changes to dependencies:
- lib_adat: 1.2.0 -> 2.0.1
- CHANGED: Documentation updated
- ADDED: "adat.h" header file provided access to both transmit and
receive API - CHANGED: Receive API now uses streaming chanend (breaking change)
- CHANGED: Documentation updates
- CHANGED: Examples now build using XCommon Cmake build system
- lib_board_support: Added dependency 1.1.1
- CHANGED: Documentation improvements
- REMOVED: Dependency of examples on lib_i2s
- lib_dsp: Removed dependency
- lib_i2s: 5.1.0 -> 6.0.1
- CHANGED: Documentation updated
- REMOVED: Support for XS1 - Please design with xcore.ai for new projects
- REMOVED: I²S non "frame" API (superseded by more efficient frame
versions) - CHANGED: Use XCommon-CMake and use in examples/tests
- CHANGED: Examples ported to XK-AUDIO-316-MC board (was XK-AUDIO-216-MC)
- CHANGED: Examples use lib_board_support instead of custom hardware setup
- lib_locks: 2.2.0 -> 2.3.1
- CHANGED: Documentation updates
- CHANGED: Build using XCommon CMake instead of xcommon
- lib_logging: 3.2.0 -> 3.3.1
- CHANGED: Documentation updates
- CHANGED: Build applications using XCommon CMake instead of XCommon
- lib_mic_array: 4.6.0 -> 5.4.0
- CHANGED: All examples now build under XCommon CMake build system
- ADDED: Will build without errors for XS2 targets but no API available
- DEPRECATED: Previously used custom CMake build support. This will be
removed in future versions. Please use XCommon CMake build system as
provided in XTC 15.3.0 onwards for new projects. - FIXED: Vanilla configuration now compiles correctly under XTC 15.3.0
- ADDED: Support for XCommon CMake build system
- Added 48 kHz decimator design script
- Added documentation to cover 32 kHz and 48 kHz deciamtors
- Added 16ch de-interleave to support 16 DDR mics on a single 8b port
- Added parallel decimation use example
- Fixed documentation generation issues
- Improved default audio filter. Reduces noise floor and improves alias
attentuation - Changed DCOE filter to increase attenuation below 20 Hz
- Documentation improvements.
- Updates lib_mic_array to use lib_xcore_math (formerly lib_xs3_math)
version 2.0.2 - Updates CMake project to use CPM to obtain dependencies (when top level
project) - [issue #171] Changes behavior when mic array consumer gets backed up
from a quiet deadlock to an ECALL exception - Also adds a way to allow blocks of PDM to be quietly dropped instead
(see AssertOnDroppedBlock()) - Mic Array library redesigned from scratch to make efficient use of XMOS
XS3 architecture - Many unused features from previous versions have been dropped
- Initial v5.0 features:
- Supports 1-, 4-, and 8-bit ports
- Supports both SDR and DDR microphone configurations
- Use 1-16 PDM microphones
- Configurable PDM clock frequency
- Configurable two-stage decimating FIR
- Reference filter with total decimation factor of 192 provided
- Optional DC offset elimination filter
- Configurable frame size (down to single sample)
- Extensible C++ design
- lib_spdif: 6.1.0 -> 6.2.1
- CHANGED: Documentation updated
- CHANGED: Use XCommon CMake for examples and tests
- CHANGED: Use lib_sw_pll for configuring the application PLL in
examples - FIXED: Supressed warnings regarding taking the address of a resource
handle
- lib_sw_pll: 2.2.0 -> 2.3.1
- CHANGED: Documentation updates
- FIXED: Added missing <xs1.h> include
- CHANGED: Updated pll_calc script to separate out integer and fractional
divider values for easier user interpretation - CHANGED: Improved PLL solution selection in app_pll_model to ensure
sufficient positive and negative range from nominal frequency - CHANGED: Uses Xcommon Cmake instead of custom Cmake
- FIXED: Python models and test type error on later numpy versions
- lib_xassert: 4.2.0 -> 4.3.1
- CHANGED: Documentation updates
- CHANGED: Build examples and tests using XCommon CMake instead of XCommon
- CHANGED: Run tests using pytest
- lib_xcore_math: Added dependency 2.3.0
- Changes examples and tests to build using XCommon CMake
- lib_xua: 4.1.0 -> 5.0.0
- ADDED: Support for DFU 1.1 DFU_DETACH with bitWillDetach set to 1
- ADDED: Enumerate with the DFU interface as WINUSB compatible. This
is done by updating the bcdUSB version to 2.01 and providing the BOS and
MSOS2.0 descriptors listing WINUSB compatibility at enumeration - ADDED: Support for XMOS_DFU_REVERTFACTORY arriving as a
USB_BMREQ_H2D_VENDOR_INT request to work with the latest Thesycon DFU
driver on Windows - ADDED: Support for building the xmosdfu application on MacOS arm64
- ADDED: MIDI support with UAC1.0
- ADDED: DFU support with UAC1.0
- CHANGED: By default, enumerate with iSerialNumber set to None(0) in
the device descriptor - CHANGED: xmosdfu app to use DFU_DETACH
- CHANGED: xmosdfu app to send XMOS_DFU_REVERTFACTORY as
bmRequestType.Type = Vendor - CHANGED: xmosdfu app command line for specifying runtime and DFU mode
PIDs - CHANGED: Limit HS_STREAM_FORMAT_OUTPUT_1/2/3_MAXPACKETSIZE to 1024
bytes to fix bcdUSB version 2.01 USB device supporting a sampling rate
of 192KHz not enumerating on Windows - CHANGED: Added default value (1) for XUA_QUAD_SPI_FLASH
- CHANGED: Default value of FLASH_MAX_UPGRADE_SIZE to 512 KB
- CHANGED: Build examples using XCommon CMake instead of XCommon
- CHANGED: AN00248 now targets XK-EVK-XU316 and uses mic_array version 5
(new API) - CHANGED: Examples use lib_board_support for XK-AUDIO-316-MC-AB support
code - CHANGED: Master clock port no longer used if not required, for example
when using I2S slave with USB disabled - FIXED: Build issue when XUA_NUM_PDM_MICS > 0
- FIXED: baInterfaceNr field in MIDI Class-specific AC Interface
Descriptor to specify the correct MIDI streaming interface number - REMOVED: Support for PDM mics for xcore-200 targets
- CHANGED: lsats instruction used for saturation in the mixer
- CHANGED: Mixer task communication scheme simplified, aiding code reuse
& performance - CHANGED: Audio Class Control Interface no longer presented in
descriptors if NUM_USB_CHAN_IN and NUM_USB_CHAN_OUT are both zero - CHANGED: Buffering sub-system no longer spawns if NUM_USB_CHAN_IN and
NUM_USB_CHAN_OUT are both zero - CHANGED: Communication of commands between tasks now uniformly uses
control tokens. Potentially making mix & match of components more
tractable in the future
- lib_xud: 2.3.1 -> 2.4.0
- CHANGE: Documentation updates
- CHANGE: Examples now build using xcommon-cmake build system (was
xcommon) - CHANGE: AN00129 is now the main library usage example - renamed
app_hid_mouse - REMOVED: AN00124 - now maintained as a separate application note
- REMOVED: AN00125 - now maintained as a separate application note
- REMOVED: AN00126 - now maintained as a separate application note
- REMOVED: AN00127 - now maintained as a separate application note
- REMOVED: AN00131 - now maintained as a separate application note
- REMOVED: AN00132 - now maintained as a separate application note
- REMOVED: AN00135 - now maintained as a separate application note
- REMOVED: AN00136 - now maintained as a separate application note
- CHANGE: RX_RISE_DELAY for XS2A based devices to resolve intermittent
transmit timing issues
- lib_adat: 1.2.0 -> 2.0.1
v8.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
- lib_adat: 1.1.0 -> 1.2.0
v8.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
- FIXED: XS3A based devices not responding to IN packets in SE0_NAK
- lib_adat: 1.0.1 -> 1.1.0
v7.3.1
v7.3.0
- ADDED: Support for 12.288MHz 11.2896MHz to xcore.ai AppPLL master clock
options - CHANGED: app_usb_aud_xk_316_mc: Respect XUA_I2S_N_BITS when configuring
external audio hardware - 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
- FIXED: Reinstated graceful handling of bad sample-rate/master-clock
- 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)
- FIXED: XUD_UserSuspend() and XUD_UserResume now properly marked as
- lib_spdif: 4.2.1 -> 5.0.1
v7.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
- lib_xua: 3.3.1 -> 3.4.0
v7.2.0rc0
- 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
- lib_xua: 3.3.1 -> 3.4.0
v7.1.0alpha0
- 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: Seperated build configs into build-tested, partially-test 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: 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)
- FIXED: Control endpoint ready flag not properly cleared on receipt
- lib_adat: 1.0.0 -> 1.0.1