- 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
- Changes to dependencies:
- lib_adat: 1.2.0 -> 2.0.1
- lib_dsp: Removed dependency
- lib_locks: 2.2.0 -> 2.3.1
- lib_logging: 3.2.0 -> 3.3.1
- lib_mic_array: 4.6.0 -> 5.5.0
- lib_spdif: 6.1.1 -> 6.2.1
- lib_sw_pll: 2.2.0 -> 2.3.1
- lib_xassert: 4.2.0 -> 4.3.1
- lib_xcore_math: Added dependency 2.4.0
- lib_xud: 2.3.2 -> 2.4.0
- 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
- Changes to dependencies:
- lib_spdif: 6.1.0 -> 6.1.1
- lib_xud: 2.3.1 -> 2.3.2
- 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
- Changes to dependencies:
- lib_adat: 1.0.1 -> 1.2.0
- lib_locks: 2.1.0 -> 2.2.0
- lib_logging: 3.1.1 -> 3.2.0
- lib_sw_pll: 2.1.0 -> 2.2.0
- lib_xassert: 4.1.0 -> 4.2.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
- Changes to dependencies:
- lib_dsp: 6.2.1 -> 6.3.0
- lib_mic_array: 4.5.0 -> 4.6.0
- lib_spdif: 5.0.1 -> 6.1.0
- lib_sw_pll: Added dependency 2.1.0
- lib_xud: 2.2.3 -> 2.3.1
- FIXED: Respect I2S_CHANS_PER_FRAME when calculating bit-clock rates
- Changes to dependencies:
- lib_spdif: 5.0.0 -> 5.0.1
- 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)
- Changes to dependencies:
- lib_spdif: 4.2.1 -> 5.0.0
- lib_xud: 2.2.2 -> 2.2.3
- 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
- Changes to dependencies:
- lib_xud: 2.2.1 -> 2.2.2
- CHANGED: Documentation updates
- Changes to dependencies:
- lib_spdif: 4.1.0 -> 4.2.1
- 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
- Changes to dependencies:
- lib_adat: Added dependency 1.0.1
- lib_xud: 2.1.0 -> 2.2.1
- 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)
- Changes to dependencies:
- lib_dsp: 5.0.0 -> 6.2.1
- lib_locks: Added dependency 2.1.0
- lib_logging: 3.0.0 -> 3.1.1
- lib_mic_array: 4.0.0 -> 4.5.0
- lib_spdif: 4.0.0 -> 4.1.0
- lib_xassert: 4.0.0 -> 4.1.0
- lib_xud: 2.0.0 -> 2.1.0
- CHANGED: Removed logic from HID API functions allowing a Report ID of 0 to be used as "all/any" Report
- ADDED: Support for HID Report IDs
- CHANGED: Renamed the HID API file xua_hid_report_descriptor.h to xua_hid_report.h
- REMOVED: Support for HID Reports containing controls from mixed usage pages
- CHANGED: Setting of HID report items
- CHANGED: Updated clock blocks to support lib_xud v2.0.0
- Changes to dependencies:
- lib_xud: 1.2.0 -> 2.0.0
- ADDED: Function to get a Report item description
- ADDED: Support for multiple flash specs defined by DFU_FLASH_DEVICE
- ADDED: Nullable c_aud_ctl chan-end optimisation for fixed rate devices
- CHANGED: Check HID Usage Page when changing a Report item description
- CHANGED: HID event ID from list to bit and byte location in HID Report
- CHANGED: Interface to UserHIDRecordEvent()
- ADDED: Build default HID Report descriptor at boot-time
- ADDED: Function to return length of HID Report
- CHANGED: Move HID descriptors to ease maintenance
- CHANGED: Move legacy tests to separate directory
- CHANGED: Replace unused GPI-specific HID event names with generic ones
- CHANGED: HID Report to return multiple bytes
- CHANGED: NO_USB conditional compilation switch with XUA_USB_EN
- CHANGED: Clock blocks used for BCLK and MCLK
- CHANGED: Arguments no longer supported by XUD_Main
- REMOVED: Support for XS1 based devices
- ADDED: Updates for xcore.ai/XS3 compatibility
- ADDED: Makefile.Win32 for xmosdfu on Windows
- CHANGED: Use XMOS Public Licence Version 1
- FIXED: Bump default BCD device number to v1.2.0
- FIXED: xmosdfu now fails with an error when given a directory (#119)
- FIXED: Compilation errors related to HID code
- FIXED: Runtime error when using mic array interface
- FIXED: Automate HID Report Descriptor length in AC1 HID Descriptor
- CHANGED: Pin Python package versions
- FIXED: Zero length input packets generated before enumeration causing I2S timing pushout at startup
- ADDED: Ability to read or modify serial number string
- FIXED: Wrong size of vendor and product strings
- ADDED: UAC1 HID support with simulated Voice Command detection reported every 10 seconds
- ADDED: Support for USB HID Set Idle request
- ADDED: Pre-processor symbols to enable single-threaded, dual-PDM microphone operation
- ADDED: Guards to user_hid.h and xua_hid.h
- ADDED: UAC1 HID support for AC Stop (End Call), Volume Increment and Volume Decrement
- CHANGED: UAC1 HID to report function keys f21 through f24 as specified by customer
- CHANGED: HID interface for user to set and clear events from global variable to function
- CHANGE HID report descriptor to use generic events instead of GPI events, to report Key-phrase detection as AC Search, and to report end-call detection as AC Stop
- ADDED: Ability to read or modify vendor and product IDs and strings
- ADDED: Ability to read or modify bcdDevice
- ADDED: Override USB descriptor with sampling frequency and bit-resolution set at boot time.
- ADDED: Global pointer to allow external access to masterClockFreq
- FIXED: Descriptors for XUA_ADAPTIVE incorrectly defined for IN endpoint
- Changes to dependencies:
- lib_spdif: 3.1.0 -> 4.0.0
- lib_xassert: 3.0.1 -> 4.0.0
- FIXED: Fix descriptors for XUA_ADAPTIVE
- Changes to dependencies:
- lib_logging: 2.1.1 -> 3.0.0
- lib_xud: 0.1.0 -> 0.2.0
- ADDED: Initial library documentation
- ADDED: Application note AN00247: Using lib_xua with lib_spdif (transmit)
- ADDED: Separate callbacks for input/output audio stream start/stop
- CHANGED: I2S hardware resources no longer used globally and must be passed to XUA_AudioHub()
- CHANGED: XUA_AudioHub() no longer pars S/PDIF transmitter task
- CHANGED: Moved to lib_spdif (from module_spdif_tx & module_spdif_rx)
- CHANGED: Define NUM_PDM_MICS renamed to XUA_NUM_PDM_MICS
- CHANGED: Define NO_USB renamed to XUA_USB_EN
- CHANGED: Build files updated to support new "xcommon" behaviour in xwaf.
- FIXED: wChannelConfig in UAC1 descriptor set according to output channel count
- FIXED: Indexing of ADAT channel strings (#18059)
- FIXED: Rebooting device fails when PLL config "not reset" bit is set
- Changes to dependencies:
- lib_dsp: Added dependency 5.0.0
- lib_mic_array: Added dependency 4.0.0
- lib_spdif: Added dependency 3.1.0
- lib_xassert: Added dependency 3.0.1
- ADDED: Application note AN00246: Simple USB Audio Device using lib_xua
- CHANGED: xmosdfu emits warning if empty image read via upload
- CHANGED: Simplified mclk port sharing - no longer uses unsafe pointer
- FIXED: Runtime exception issues when incorrect feedback calculated (introduced in sc_usb_audio 6.13)
- FIXED: Output sample counter reset on stream start. Caused playback issues on some Linux based hosts
- FIXED: Configurations where I2S_CHANS_DAC and I2S_CHANS_ADC are both 0 now build
- FIXED: Deadlock in mixer when MAX_MIX_COUNT > 0 for larger channel counts
- Changes to dependencies:
- lib_logging: Added dependency 2.1.1
- lib_xud: Added dependency 0.1.0
- ADDED: FB_USE_REF_CLOCK to allow feedback generation from xCORE internal reference
- ADDED: Linux Makefile for xmosdfu host application
- ADDED: Raspberry Pi Makefile for xmosdfu host application
- ADDED: Documentation of PID argument to xmosdfu
- ADDED: Optional build time microphone delay line (MIC_BUFFER_DEPTH)
- CHANGED: Removal of audManage_if, users should define their own interfaces as required
- CHANGED: Vendor specific control interface in UAC1 descriptor now has a string descriptor so it shows up with a descriptive name in Windows Device Manager
- CHANGED: DFU_BCD_DEVICE removed (now uses BCD_DEVICE)
- CHANGED: Renaming in descriptors.h to avoid clashes with application
- CHANGED: Make device reboot function no-argument (was one channel end)
- FIXED: FIR gain compensation for PDM mics set incorrectly for divide of 8
- FIXED: Incorrect xmosdfu DYLD path in test script code
- FIXED: xmosdfu cannot find XMOS device on modern MacBook Pro (#17897)
- FIXED: Issue when feedback is initially incorrect when two SOF's are not yet received
- FIXED: AUDIO_TILE and PDM_TILE may now share the same value/tile
- FIXED: Cope with out of order interface numbers in xmosdfu
- FIXED: DSD playback not functional on xCORE-200 (introduced in sc_usb_audio 6.14)
- FIXED: Improvements made to clock sync code in TDM slave mode
(Note: Forked from sc_usb_audio at this point)
- FIXED: Exception due to null chanend when using NO_USB
- FIXED: PID_DFU now based on AUDIO_CLASS. This potentially caused issues with UAC1 DFU
- CHANGED: Example OSX DFU host app updated to now take PID as runtime argument. This enabled multiple XMOS devices to be attached to the host during DFU process
- ADDED: DFU to UAC1 descriptors (guarded by DFU and FORCE_UAC1_DFU)
- FIXED: Removed 'reinterpretation to type of larger alignment' warnings
- FIXED: DFU flash code run on tile[0] even if XUD_TILE and AUDIO_IO_TILE are not 0
- ADDED: UserBufferManagementInit() to reset any state required in UserBufferManagement()
- ADDED: I2S output up-sampling (enabled when AUD_TO_USB_RATIO is > 1)
- ADDED: PDM Mic decimator output rate can now be controlled independently (via AUD_TO_MICS_RATIO)
- CHANGED: Rename I2S input down-sampling (enabled when AUD_TO_USB_RATIO is > 1, rather than via I2S_DOWNSAMPLE_FACTOR)
- FIXED: Crosstalk between input channels when I2S input down-sampling is enabled
- FIXED: Mic decimation data tables properly sized when mic sample-rate < USB audio sample-rate
- FIXED: PDM microphone decimation issue at some sample rates caused by integration
- ADDED: I2S down-sampling (I2S_DOWNSAMPLE_FACTOR)
- ADDED: I2S resynchronisation when in slave mode (CODEC_MASTER=1)
- CHANGED: Various memory optimisations when MAX_FREQ = MIN_FREQ
- CHANGED: Memory optimisations in audio buffering
- CHANGED: Various memory optimisations in UAC1 mode
- CHANGED: user_pdm_process() API change
- CHANGED: PDM Mic decimator table now related to MIN_FREQ (memory optimisation)
- FIXED: Audio request interrupt handler properly eliminated
- FIXED: Number of PDM microphone channels configured now based on NUM_PDM_MICS define
(previously hard-coded) - FIXED: PDM microphone clock divide now based MCLK defines (previously hard-coded) - CHANGED: Second microphone decimation core only run if NUM_PDM_MICS > 4
- FIXED: Intra-frame sample delays of 1/2 samples on input streaming in TDM mode
- FIXED: Build issue with NUM_USB_CHAN_OUT set to 0 and MIXER enabled
- FIXED: SPDIF_TX_INDEX not defined build warning only emitted when SPDIF_TX defined
- FIXED: Failure to enter DFU mode when configured without input volume control
- FIXED: SPDIF_TX_INDEX not defined build warning only emitted when SPDIF_TX defined
- FIXED: Failure to enter DFU mode when configured without input volume control
- ADDED: Vendor Specific control interface added to UAC1 descriptors to allow control of
- XVSM params from Windows (via lib_usb)
- ADDED: Call to VendorRequests() and VendorRequests_Init() to Endpoint 0
- ADDED: VENDOR_REQUESTS_PARAMS define to allow for custom parameters to VendorRequest calls
- FIXED: FIR gain compensation set appropriately in lib_mic_array usage
- CHANGED: i_dsp interface renamed i_audManage
- ADDED: Call to UserBufferManagement()
- ADDED: PDM_MIC_INDEX in devicedefines.h and usage
- CHANGED: pdm_buffer() task now combinable
- CHANGED: Audio I/O task now takes i_dsp interface as a parameter
- CHANGED: Removed built-in support for A/U series internal ADC
- CHANGED: User PDM Microphone processing now uses an interface (previously function call)
- FIXED: interrupt.h (used in audio buffering) now compatible with xCORE-200 ABI
- FIXED: DAC data mis-alignment issue in TDM/I2S slave mode
- CHANGED: Updates to support API changes in lib_mic_array version 2.0
- FIXED: UAC 1.0 descriptors now support multi-channel volume control (previously were
- hard-coded as stereo)
- CHANGED: Removed 32kHz sample-rate support when PDM microphones enabled (lib_mic_array
- currently does not support non-integer decimation factors)
- 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
- FIXED: MIDI data not accepted after "sleep" in OSX 10.11 (El Capitan) - related to sc_xud
- issue #17092
- CHANGED: Asynchronous feedback system re-implemented to allow for the first two ADDED
- changelog items
- CHANGED: 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.
- CHANGED: module_queue no longer uses any assert module/lib
- 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
- FIXED: 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
- FIXED: DFU flag address changed to properly conform to memory address range allocated to
- apps by tools
- FIXED: Build failure when DFU disabled
- FIXED: Build issue when I2S_CHANS_ADC/DAC set to 0 and CODEC_MASTER enabled
- FIXED: Typo in MCLK_441 checking for MIN_FREQ define
- CHANGED: Mixer and non-mixer channel comms scheme (decouple <-> audio path) now identical
- CHANGED: 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
- CHANGED: module_queue (in sc_usb_audio) now uses lib_xassert rather than module_xassert
- FIXED: Build error when DFU is disabled
- FIXED: Build error when I2S_CHANS_ADC or I2S_CHANS_DAC set to 0 and CODEC_MASTER enabled
- FIXED: Stream issue when NUM_USB_CHAN_IN < I2S_CHANS_ADC
- FIXED: DFU fail when DSD enabled and USB library not running on tile[0]
- FIXED: Method for storing persistent state over a DFU reboot modified to improve resilience
- against code-base and tools changes
- FIXED: Reboot code (used for DFU) failure in tools versions > 14.0.2 (xCORE-200 only)
- FIXED: Run-time exception in mixer when MAX_MIX_COUNT > 0 (xCORE-200 only)
- FIXED: MAX_MIX_COUNT checked properly for mix strings in string table
- CHANGED: 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
- CHANGED: DFU code can now use quad-SPI flash
- CHANGED: Example xmos_dfu application now uses a list of PIDs to allow adding PIDs easier.
- --listdevices command also added.
- CHANGED: I2S_CHANS_PER_FRAME and I2S_WIRES_xxx defines tidied
- FIXED: Fixes to TDM input timing/sample-alignment when BCLK=MCLK
- FIXED: Various minor fixes to allow ADAT_RX to run on xCORE 200 MC AUDIO hardware
- CHANGED: Moved from old SPDIF define to SPDIF_TX
- ADDED: Checks for XUD_200_SERIES define where required
- FIXED: Run-time exception due to decouple interrupt not entering correct issue mode
- (affects XCORE-200 only)
- CHANGED: SPDIF Tx Core may now reside on a different tile from I2S
- CHANGED: I2C ports now in structure to match new module_i2c_singleport/shared API.
- Changes to dependencies:
- sc_util: 1.0.4rc0 -> 1.0.5alpha0
- xCORE-200 Compatiblity fixes to module_locks
- FIXED: (Major) Streaming issue when mixer not enabled (introduced in 6.11.2)
- FIXED: (Major) Enumeration issue when MAX_MIX_COUNT > 0 only. Introduced in mixer
- optimisations in 6.11.0. Only affects designs using mixer functionality.
- FIXED: (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.
- FIXED: (Minor) Potential build issue due to duplicate labels in inline asm in
- set_interrupt_handler macro
- FIXED: (Minor) BCD_DEVICE define in devicedefines.h now guarded by ifndef (caused issues
- with DFU test build configs.
- FIXED: (Minor) String descriptor for Clock Selector unit incorrectly reported
- FIXED: (Minor) BCD_DEVICE in devicedefines.h now guarded by #ifndef (Caused issues with
- default DFU test build configs.
- CHANGED: HID report descriptor defines added to shared user_hid.h
- CHANGED: Now uses module_adat_rx from sc_adat (local module_usb_audio_adat removed)
- ADDED: ADAT transmit functionality, including SMUX. See ADAT_TX and ADAT_TX_INDEX.
- FIXED: (Normal) Build issue with CODEC_MASTER (xCore is I2S slave) enabled
- FIXED: (Minor) Channel ordering issue in when TDM and CODEC_MASTER mode enabled
- FIXED: (Normal) DFU fails when SPDIF_RX enabled due to clock block being shared between SPDIF
- core and FlashLib
- ADDED: Basic TDM I2S functionality added. See I2S_CHANS_PER_FRAME and I2S_MODE_TDM
- CHANGED: Various optimisations in 'mixer' core to improve performance for higher
- channel counts including the use of XC unsafe pointers instead of inline ASM
- CHANGED: Mixer mapping disabled when MAX_MIX_COUNT is 0 since this is wasted processing.
- CHANGED: Descriptor changes to allow for channel input/output channel count up to 32
- (previous limit was 18)
- CHANGED: Endpoint management for iAP EA Native Transport now merged into buffer() core.
- Previously was separate core (as added in 6.8.0).
- CHANGED: Minor optimisation to I2S port code for inputs from ADC
- 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.
- FIXED: (Major) Reinstated ADAT input functionality, including descriptors and clock
- generation/control and stream configuration defines/tables.
- FIXED: (Major) S/PDIF/ADAT sample transfer code in audio() (from ClockGen()) moved to
- aid timing.
- CHANGED: 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).
- CHANGED: Channel c_dig_rx is no longer nullable, assists with timing due to removal of
- null checks inserted by compiler.
- CHANGED: 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.
- ADDED: Evaluation support for iAP EA Native Transport endpoints
- FIXED: (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
- FIXED: (Major) Mixer functionality re-instated, including descriptors and various required
- updates compatibility with 13 tools
- FIXED: (Major) Endpoint 0 was requesting an out of bounds channel whilst requesting level data
- FIXED: (Major) Fast mix code not operates correctly in 13 tools, assembler inserting long jmp
- instructions
- FIXED: (Minor) LED level meter code now compatible with 13 tools (shared mem access)
- FIXED: (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)
- CHANGED: Level meter buffer naming now resemble functionality
Please see changelog in sw_usb_audio for changes prior to 6.8.0 release.