The Embedded Experts
Release notes for emUSB-Device V3.72.0
Version 3.72.0 [15. Jul 2026]
New Features
- Add support for Microchip SAM9X75 devices.
- Add support for ST STM32MP1xx devices.
- Add support for ST STM32N6xx devices.
- Add support for ST STM32H5(E/F)x (FS/HS) devices.
- Add support for Infineon PSC3M6 devices.
- Add support for NXP MCXA (KHCI) and MCXN (EHCI) devices.
Improvements
- Added new function USBD_SetOnRxEP0Hook(). Internal function USBD_SetOnRxEP0() removed: If required, replace by USBD_SetOnRxEP0Hook().
- EHCI driver: Implement USB disconnect detection.
Version 3.70.1 [2. Feb 2026]
New Features
- Add DMA full-speed driver for STM32H7xx devices.
Program corrections
- USBVAPI: Fix a problem with a mutex on Windows.
Version 3.70.0 [24. Nov 2025]
New Features
- Fake endpoints can now be used in USB descriptors.
- PSOCE84 driver: Added function USB_DRIVER_Infineon_PSOCE84_DMA_SetPLLRefClock().
- BULK class: New function USBD_BULK_ReadRecord().
Improvements
- MTP: For transfers >4GB no longer try to read away the full file when a file system error occurs, this is no longer necessary with new Windows versions.
Program corrections
- Read or write requests issued from a callback function were ignored after a Clear Feature Halt from the host. Fixed.
Version 3.68.0 [28. Aug 2025]
New Features
- Synopsys DWC2 drivers: Unidirectional EPs can be configured now.
- Synopsys DWC2 drivers: Detect USB disconnect (if supported by the hardware).
Improvements
- NCM/ECM: Multiple instances (interfaces) can be created, on the USB host multiple ethernet interfaces on one USB device is shown.
- Improved emNet's driver so that the RNDIS/ECM/NCM interface will be detected properly even with multiple installed emNet drivers.
Version 3.66.6 [6. Jun 2025]
New Features
- Added support for LPC55S28 devices.
Program corrections
- EHCI driver: Control requests sometimes failed due to a race condition. Fixed.
- XHCI driver: ClearFeatureHalt on a BULK/Interrupt endpoint without a stall condition before did not reset data toggle. Fixed.
Version 3.66.5 [22. Apr 2025]
Program corrections
- RNDIS/CDC-ECM/CDC-NCM: Updated internal emNet driver to handle IP_DeInit() properly.
Version 3.66.4 [31. Mar 2025]
New Features
- Added support for STM32H7A/B devices.
- Added support for STM32C071 devices.
Program corrections
- STM32NG (STM32H/U5) driver: When CPU was running slow or many concurrent memory transfer occurring: Handling of the EPStatus esp. EP0 register was not handled properly. Fixed.
Version 3.66.3 [24. Mar 2025]
New Features
- Added support for LPC55(S)16 devices.
- Added support for STM32H7RSxx devices.
- MTP: Add callback function for file access control (USBD_MTP_SetWriteProtectionCb()).
Version 3.66.2 [22. Jan 2025]
New Features
- Support for MAX32690 added.
- Support for Renesas RA8M1 added.
Program corrections
- Renesas USB driver: Under some circumstances the FIFO was not read or written properly. Fixed.
Version 3.66.1 [16. Dec 2024]
New Features
- Driver: New driver for Renesas RA4M2 series.
Program corrections
- ATSAMV7x driver: USB driver may hang after a USB disconnect during a data transfer. Fixed.
Version 3.66.0 [16. Oct 2024]
Improvements
- PSOCE84 driver: Controller FIFO configuration is now left at reset defaults.
- Microchip SAM3X Driver: Under some circumstances the compiler may optimize the CopyData function which now has been divided into different functions depending on the direction of the copying the data.
Version 3.64.5 [11. Sep 2024]
New Features
- MTP: Storage can be configured now to be write protected.
Improvements
- Synopsys DWC2 DMA driver: Detection of DMA errors improved.
Program corrections
- USBVAPI for Windows: Notification for new connected USB devices didn't work. Fixed.
Version 3.64.4 [22. Jul 2024]
Improvements
- iMX1180 driver: Allow mapping from virtual to physical memory using USBD_DRIVER_iMXRT118x_SetV2PHandler().
- USBVAPI: New function cancelTransfer() (Linux only).
- Renesas USB HS driver: Added support for all FIFO access port, adjusted the FIFO access wait-state for certain devices. Increased time for waiting the FIFO to be ready.
Program corrections
- PSOCE84 driver: Fix 'turnaround' setting of the USB controller.
Version 3.64.3 [7. Jun 2024]
Improvements
- Synopsys DWC2 DMA driver: Speed up ISO IN transfers on systems with data cache.
Program corrections
- Synopsys DWC2 driver: Remote wake-up from LPM L1 state sometime did not work properly. Fixed.
Version 3.64.2 [17. May 2024]
Improvements
- nRF5340 driver: Implemented hack to cancel IN transfers.
- AT91SAM3X driver: Single buffer mode can be configured now to reduce USB RAM usage and allow use of more endpoints.
Program corrections
- LPC55xxx driver: Canceling USB writes sometimes did not set the endpoint into NAK mode. Fixed.
Version 3.64.1 [10. Apr 2024]
New Features
- PSoC6 driver now supports DMA.
Improvements
- MTP: Error codes improved and warning messages added.
Version 3.64.0 [13. Feb 2024]
New Features
- New C++ host API to access vendor USB devices (USBVAPI).
- Support a user callback for the 'Get Interface' control request.
Improvements
- MTP: When using BigFat and transferring files larger than 4GB it was possible that the PC will run into a timeout because since we do not know the actual file size in this case we would wait for the complete USB_MTP_READ_TIMEOUT to be over. With the default 10s timeout some PC operating systems would assume an error occurred. The issue has been resolved by reading single packets once the 4GB limit has been exceeded.
Program corrections
- STM32U545/STM32H5xx driver: Due to a race condition in the USB controller hardware received packets may be corrupt. Workaround implemented.
- USB BULK API: Calling USBBULK_Exit while inserting a new USB device could cause a NULL pointer exception. Fixed.
Version 3.62.0 [21. Nov 2023]
New Features
- Added new audio 2.0 class.
- Added support for NXP iMX RT118x devices.
Improvements
- LPC55xxx/iMXRT5xx driver: Set default for VBUS sensing to off.
Version 3.60.5 [30. Oct 2023]
New Features
- Added support for Alif Semiconductor E1 devices.
Version 3.60.4 [18. Oct 2023]
New Features
- Synopsys DWC2 driver: Added support for USBD_SetLPMResponse().
Program corrections
- UVC: Enumeration of the video class may hang in some cases caused by not correctly initialized static variables. Fixed.
Version 3.60.3 [26. Sep 2023]
New Features
- Added support for ST STM32G0xx, STM32G4xx and STM32U54x devices.
Improvements
- NCM: NCM module has been reworked to be compatible with the Windows 10/11 CDC-NCM implementation.
- MSD: New function MSD_PollEx().
Version 3.60.2 [10. Jul 2023]
New Features
- Added support for ST STM32WB55 devices.
Improvements
- USB NI driver for emNet: added a special "USB_IP_NI_STATS_CLEAR_ALL_STATS" type for USB_IP_NI_GET_STATS which allows to reset all statistical counters.
Version 3.60.1 [30. Jun 2023]
New Features
- Added support for NXP iMX RT685 devices.
- XHCI driver: Support for USB test mode added.
- XHCI driver: Support for SOF callback added.
Improvements
- USB NI driver for emNet (RNDIS): added counter for "no buffer" errors.
Program corrections
- Synopsys DWC2 driver: Remote wakeup did not work correctly. Fixed.
Version 3.60.0 [13. Apr 2023]
New Features
- Added support for STM32H5xx devices.
- Add new function USBD_SetLPMResponse().
- LPC54xxx, LPC55xxx driver can now detect USB disconnect via VBUS pin.
- ATSAMV7x driver now supports USB test mode.
Program corrections
- MTP: It was possible for USBD_MTP_Poll() to block indefinitely in the rare case were we stalled a request and the PC did not clear the stall condition. Fixed.
- IP-over-USB: Unplug and re-plug the device from a Windows computer could result that after re-plugging the USB device is not recognize properly. Fixed.
Version 3.58.0 [28. Feb 2023]
New Features
- MTP: Added USBD_MTP_SetOperationCb() function which allows to set a callback which is called when objects are created/removed/renamed by the host.
Program corrections
- USB configurations with more than 16 endpoints did not work. Fixed.
- PSoC6 driver: Data toggle bit was reset on suspend: Fixed.
- PSoC6 driver: OUT packets with wrong PID are now handled correctly (ignored).
- MTP: Storage was not re-mounted after a format operation. Fixed.
- MTP: NULL pointer access was possible when a storage has been removed during "SendObject" operation handling. Fixed.
Version 3.56.1 [16. Jan 2023]
Program corrections
- MTP: An FS_VERSION check for the usage of a new FS function FS_BIGFAT_SetTime() was missing which caused linking issues with older emFile versions. Fixed.
Version 3.56.0 [12. Jan 2023]
New Features
- PSoC6 driver: Add remote wakeup functionality.
- Added new functions for LPM: USBD_SetBESLValues(), USBD_SetOnLPMChange().
- Added new function USBD_GetDeviceState() which allows to retrieve the state of the USB device, set by the host.
- Synopsys DWC2 driver: Support LPM change callbacks.
- MTP: Added new storage layer for emFile's BigFAT.
- MTP: Added USBD_MTP_RemoveStorage() function.
Improvements
- MTP: There have been a few minor changes to the MTP storage layer API, if you have written your own storage layer you may need to update it.
- The type of the "Off" parameter in the USB_MTP_STORAGE_READ_FROM_FILE function has been changed from U32 to U64.
- The type of the "Off" parameter in the USB_MTP_STORAGE_WRITE_TO_FILE function has been changed from U32 to U64.
- The type of the "pFileSize" parameter in the USB_MTP_STORAGE_GET_FILE_SIZE function has been changed from U32* to U64*.
- An optional function was added - USB_MTP_STORAGE_GET_FILE_INFO, the pointer to this function can be set to NULL if you do not plan to implement it.
- MTP: Changed behavior of storage layer: it will no longer automatically mount the added volumes (old behavior can be restored by setting USB_MTP_OLD_MOUNTING_BEHAVIOR define).
Program corrections
- MTP: Errors during GetObject and SendObject on the filesystem side (e.g. user pulls the SD card) are now reported back to the PC correctly.
- MTP: The format storage command would delete all objects from the object list, which caused problems for applications using multiple storage volumes. Fixed.
Version 3.54.0 [7. Dec 2022]
New Features
- Added support for Microsemi Smartfusion2 devices.
Improvements
- VirtualMSD: It's now possible to report write errors to the USB host.
Program corrections
- XMC45xx DMA driver: USB controller FIFO sizes were not set correctly. Fixed.
- Synopsys DWC2 (no DMA) driver: When sending data to the host, bytes may be fetched from memory beyond the user buffer. Fixed.
- MTP: Objects added to subfolders via events were added twice to the object list and would appear twice in windows explorer. Fixed.
- MTP: The "Cancel Request" command was not handled correctly and could cause the MTP session to "hang". Fixed.
Version 3.52.2 [25. Oct 2022]
New Features
- PSoC6 driver: Added suspend and resume handling.
Program corrections
- HID class: Input reports via control requests may be send with wrong length. Fixed.
- HID: Report descriptor in USB_HID_MMControl.c sample was not fully compliant. Fixed.
- PSoC6 driver: Update endpoints did not work after re-configuration. Fixed.
- XHCI driver: Number of available endpoints were not counted correctly. Fixed.
Version 3.52.1 [25. Aug 2022]
New Features
- PSoC6 driver: Added support for Isochronous transfers.
- PSoC6 driver: Added support for LPM.
Version 3.52.0 [18. Aug 2022]
New Features
- HID class: New functions USBD_HID_Receive() and USBD_HID_ReceivePoll().
- Cypress PSoC62 driver: Added support USBD_SetOnSOF().
- Cypress PSoC62 driver: New macro to configure interrupt level.
- DWC2 driver: Add support for LPM.
Improvements
- embOS layer: Improved accuracy of function USB_OS_GetTickCnt() for system tick rates less 1 ms.
- FreeRTOS layer: Improved accuracy of function USB_OS_GetTickCnt() for system tick rates less 1 ms.
- Support for experimental feature "MSD/MTP combination" was removed.
Version 3.50.4 [21. Jul 2022]
No public changes
Version 3.50.3 [11. Jul 2022]
New Features
- Added support for Ambiq Micro Apollo 4 devices.
Program corrections
- DWC2 DMA driver: In rare cases setup OUT transaction may have failed. Fixed.
- MTP: Sending a remove directory event did not work properly. Fixed.
- MTP: Cleaning the object list and deleting the MTP session now happens only when OpenSession or CloseSession is executed. This helps prevent issues which can occur with Windows suspend. Fixed.
- MTP: When an MTP device entered suspend mode it was possible for a STALL condition to be erroneously set. Fixed.
Version 3.50.2 [24. Jun 2022]
Improvements
- DFU class: Changed GUID for Windows to distinguish from BULK class.
Program corrections
- MTP: The "seconds" field of the file timestamp was saved incorrectly. Fixed.
- MTP: When receiving a new file it was not checked whether the volume has enough space for it. Fixed.
- Renesas driver: USB test mode command was not acknowledged to the host. Fixed.
Version 3.50.1 [1. Jun 2022]
New Features
- Renesas driver: Added support for USB test mode
- Added support for GD32F407 devices
Improvements
- MTP: Added mutex locking between USBD_MTP_SendEvent() and USBD_MTP_Task()/USBD_MTP_Poll(). Customers no longer need to do this manually.
Program corrections
- MTP: The USB_MTP_EVENT_STOREREMOVED event sent via USBD_MTP_SendEvent() erroneously deleted the object list. Fixed.
Version 3.50.0 [13. May 2022]
New Features
- Added support for Cypress PSoC62 devices, supporting Control, Bulk, Interrupt transfers.
- Synopsys DWC2 DMA driver: Added address mapping for mirrored memory areas.
- Synopsys DWC2 DMA driver: Support high bandwidth ISO transfers.
Improvements
- Atmel HS driver: Add attach/detach functionality.
Program corrections
- Entering USB test mode may fail due to a race condition. Fixed.
- Audio: Chapter 9 Device Descriptor Test would fail if IAD was not enabled. Fixed.
- VirtualMSD: Multiple volumes (Luns) now get different volume IDs in the boot sector.
- Bulk: Host API for Linux: When adding a new device it was possible for a previously open device handle to be overwritten Fixed.
Version 3.46.4 [17. Mar 2022]
New Features
- Added support for DialogSemi DA148xx devices.
- Added support for RaspberryPi 2040 devices.
- Added new function USBD_SetOnSOF().
Program corrections
- RNDIS, CDC-ECM, CDC-NCM: When deinitializing emUSB-Device stack the OnStateChangeHook was not removed by the USB NI Driver for emNet. Fixed.
In order to apply this fix, emNet V3.42.3 is necessary.
Version 3.46.3 [22. Feb 2022]
New Features
- MTP: Added the USBD_MTP_SetObjectAllocFailCb() function which allows to set a callback which will be called when the MTP object list runs full.
Improvements
- Audio: Added functionality to pass user context to the OnIn/OnOut callbacks.
- Synopsys DWC2 driver: Added support for remote wakeup and test mode.
- USB_DRIVER_STM32L4xx_DetectChargingPort: Added delay after enabling DCD because on some STM32L4xxx variants for a short time after enabling the charger detection unit would report false positives.
Program corrections
- Audio: Audio did not work on Windows when it was a part of a composite device. Fixed.
Version 3.46.2 [11. Nov 2021]
New Features
- Added support for Renesas RA6M3 devices.
Improvements
- Kinetis KHCI driver: Cleanup and save some RAM.
Program corrections
- NCM, ECM: In rare cases multiple USB writes were merged to a single USB packet which could break the IP protocol. Fixed.
- MSD: When we received a StartStopUnit command from the host with Start = 0 we would inadvertently prevent the StartStopUnit command from being executed again. Fixed.
Version 3.46.1 [20. Oct 2021]
Program corrections
- MSD: If the host requested more than the standard 18 bytes during the "RequestSense" command the device would return garbage for the remaining bytes. Fixed.
Version 3.46.0 [18. Oct 2021]
New Features
- Added support for Renesas RX72N devices.
Improvements
- LPC55xxx, iMXRT595 driver: Increase transfer speed with advanced buffer usage.
Program corrections
- NCM class: Communication didn't work correctly with new Linux NCM driver. Fixed.
- RNDIS class: Return from suspend state wasn't handled correctly. Fixed.
- LPC54xxx, LPC55xxx, iMXRT595 driver: 'Clear Feature Halt' was not handled correctly on OUT endpoints. Fixed.
Version 3.44.0 [17. Sep 2021]
New Features
- Added support for Renesas RA6M4 devices.
Improvements
- FreeRTOS layer: Improvement for easy use on non Cortex-M devices.
Program corrections
- MSD: Ejecting an MSD volume from the PC would cause the volume to remain in "ejected" state even after detach. Fixed.
- Bulk: Host API for Linux did not re-scan for devices after calling USBBULK_AddAllowedDeviceItem(). Fixed.
Version 3.42.1 [30. Jul 2021]
New Features
- Added support for Giga Device GD32F450.
Version 3.42.0 [12. Jul 2021]
New Features
- HID: Added function USBD_HID_AddEx(). The name of the HID interface can now be set.
- Added support for Renesas RA4M3 devices.
Improvements
- embOS layer: Support system tick rates different from 1 ms.
- FreeRTOS layer: Support system tick rates different from 1 ms.
- STM32 driver: Clean up initialization sequence to avoid USB reset interrupt before attach
Program corrections
- MTP: Fixed potential NULL pointer access when MTP_SAVE_FILE_INFO is 1.
- MTP: USBD_MTP_Poll() returned 0 for success instead of 1. Fixed.
- Synopsys DWC2 driver: Avoid potential problems caused by code optimization of some compilers.
Version 3.40.0 [31. Mar 2021]
New Features
- New vendor class VSC
- Added support for iMXRT1170 devices.
- Added support for iMXRT595 devices.
- Added support for MAX32570 devices.
- Added support for nRF5340 devices.
- XHCI driver: Added isochronous endpoint support.
Improvements
- Isochronous endpoints do not need a buffer any more.
Program corrections
- XHCI driver: Successful enumeration sometimes only happened with a second retry by the host. Fixed.
- UVC: Class could access a NULL pointer if the host sent a request for an unsupported control command. Fixed.
Version 3.38.0 [29. Jan 2021]
New Features
- DFU: Support alternate interfaces.
- General: Allow SuperSpeed, high bandwidth endpoints (if supported by the driver).
- Printer: Added USB_PRINTER_SetClass() function.
Improvements
- MUSB driver refactored (TI OMAP-L138, TI TM4Cxxx).
- UVC: Corrected a couple of issues reported by the USB.org UVC test suite.
Program corrections
- SAM3S driver: EP0 size was erroneously limited to 8 bytes. Fixed.
- SAM3S driver: Canceling write transfers was not implemented. Fixed.
Version 3.36.3 [18. Dec 2020]
Program corrections
- Bulk: USB_BULK_FLAG_USE_CUSTOM_CLASS_IDS caused a panic check. Fixed.
Version 3.36.2 [15. Dec 2020]
New Features
- Bulk: Added function USBD_BULK_PollForTX().
- Bulk: Added ability to set a custom Class/Subclass/Protocol (via USB_BULK_FLAG_USE_CUSTOM_CLASS_IDS).
- CDC: Added function USBD_CDC_PollForRX().
- CDC: Added function USBD_CDC_PollForTX().
- CDC: Added function USBD_CDC_ReceivePoll().
Improvements
- General: USBD_SetMaxPower() now accepts values up to 900mA for SuperSpeed.
- General: Added missing replacement macros for stdlib functions (strlen, strcat, strrchr, strncpy, strcmp can now also be overwritten via USB_STRLEN, USB_STRCAT, etc.).
Version 3.36.1 [30. Oct 2020]
New Features
- MTP: Added function USBD_MTP_Poll() which allows the MTP module to be used without blocking the calling task.
- Added support for RZ/A2M devices.
Improvements
- USBD_MSD_Poll() was extended with additional return values.
Version 3.36.0 [12. Oct 2020]
New Features
- Added support for STM32L5x2 devices.
- STM32 FS driver: Added isochronous endpoint support.
Improvements
- Audio: Channels can now be assigned to spatial locations.
- Audio: Multiple formats with different bit-depths are now supported.
Program corrections
- UVC: Bulk mode caused high CPU load. Fixed.
Version 3.34.3 [25. Aug 2020]
New Features
- Added support for LPC51xxx devices.
Improvements
- Audio: Added support for additional controls for the microphone interface.
- Audio: Added support for the SAMPLING_FREQ_CONTROL command, setting multiple sampling frequencies is supported now, for this purpose USBD_AUDIO_SPEAKER_CONF/USBD_AUDIO_MIC_CONF was extended with an array of frequencies (paSamFreq) and the number of elements in the array (NumFreq).
Program corrections
- Bulk: Host API for Linux did not free udev and udev_enumerate objects. Fixed.
Version 3.34.2 [23. Jul 2020]
Improvements
- General: Classes which used a OnSetInterface callback (Audio, Video, IP-over-USB, Bulk with USBD_BULK_AddAlternateInterface()) can now be used together in a composite device without any issues.
- EHCI: Driver refactored. Smaller code size on cache-less systems, greatly improved performance of unaligned transfers on systems with cache.
Program corrections
- MSD: USBD_MSD_RequestRefresh() would not disconnect unless the USB_MSD_RE_ATTACH flag was set. Fixed.
- MSD: When using USBD_MSD_RequestRefresh() with USB_MSD_TRY_DISCONNECT and a second Lun and the host acknowledged the disconnect the second Lun would be erroneously disconnected. Fixed.
- General: The USB SetInterface command would cause all transfers on all endpoints to be aborted. This could cause problems for composite devices which use classes which use the SetInterface command. Fixed.
Version 3.34.1 [15. Jun 2020]
Improvements
- IP over USB: Can now also be used with CDC-NCM instead of CDC-ECM.
- USBBULK.net: Read methods return with an error code rather raising an exception when a timeout/cancel occurred.
- USBBULK/SEGGER driver: String descriptors are cached internally rather than retrieving them from USB device.
Program corrections
- CDC-NCM: Wrong protocol value was used for the CDC-NCM data class. Fixed.
- IP over USB/CDC-ECM/CDC-NCM/RNDIS: Resuming from suspend did not work properly. Fixed.
- HID: SET_PROTOCOL did not work properly. Fixed.
- USB_DRIVER_STM32F7xxHS_ConfigPHY() did not work correctly. Fixed.
- USB 3.0 BOS descriptor did not contain correct 'ExitLatency' fields. Fixed.
- CCID: Value for USB_CCID_FEATURE* defines fixed.
- AT91SAM3X driver: Aborting transfers did not work correctly. Fixed.
Version 3.34.0 [20. Mar 2020]
New Features
- Added support for iMXRT1020 devices.
Improvements
- BULK interface: Added new function USBD_BULK_AddAlternateInterface().
- EHCI: Disabled unused code.
Program corrections
- Synopsys DWC2 FS driver: Transfer of data blocks >= 64KB did not work correctly. Fixed.
- Windows USB BULK API: On Windows under some circumstances, detection of device attach or remove events did not function properly. Fixed.
Version 3.32.0 [28. Feb 2020]
New Features
- Added Smart Card reader Interface (CCID) class support.
Program corrections
- EHCI: Under some circumstances control IN transfers with multiple packets did not work correctly. This problem affects versions 3.28.0 to 3.30.0. Fixed.
- USBBULK.dll: Under some circumstances removal or arrival of USB BULK devices was not recognized. Fixed.
Version 3.30.0 [27. Jan 2020]
New Features
- Added Musical Instrument Digital Interface (MIDI) class support.
Program corrections
- Printer class: It was possible for the requested length of a class request on the EP0 to be parsed incorrectly. Fixed.
- BULK.net API: On Windows under some circumstances, detection of device attach or remove events did not function properly. Fixed.
Version 3.28.1 [13. Dec 2019]
Program corrections
- OS layer:The FreeRTOS_s OS layer failed to compile due to some missing macros. Fixed.
Version 3.28.0 [29. Nov 2019]
New Features
- Printer class: Added new function USB_PRINTER_SetOnVendorRequest() which allows to register a callback for proprietary printer commands.
- DWC2 driver (STM32L4): Added new function: USB_DRIVER_STM32L4xx_DetectChargingPort which allows to differentiate between different types of charging ports using the integrated battery charging detector.
Improvements
- EHCI: The force full-speed bit is no longer reset by the EHCI initialization routine.
- BULK API: Detection of BULK devices has been improved.
Program corrections
- UVC: Device was not accessible from camera viewer programs running on Windows when the processing unit descriptor was used. Fixed.
Version 3.26 [30. Aug 2019]
New Features
- Added Communication Device Class Network Control Model (CDC-NCM) support.
- Add support for NXP RT106x controllers.
- Atmel SAMA5D2x, SAMA5D3x driver: DMA support added.
- UVC: Added USBD_UVC_WriteEx() which is optimized for usage with DMA capable targets. Added support for multiple video controls (zoom, focus, etc.).
Improvements
- Enumeration: Support Exit Latency in USB descriptors (USB 3.0)
- USB Renesas driver: Added support for keeping RX interrupts enabled: USB_RX_KEEP_BRDYENB
Program corrections
- General: Zero length packets that should be send to the host may have been suppressed if followed by data packets immediately. Fixed.
- RX100: Device controller is capable of clearing the FIFO buffer automatically -> USB_READ_NEEDS_BUFFERCLR set to 0.
- Windows BULK API: USBBULK_CancelRead() and USBBULK_CancelWrite() for devices using SEGGER USB BULK driver (USBBULK.sys) did not work properly when called from another thread. Fixed.
Version 3.24a [23. Jul 2019]
New Features
- Added support for Xilinx Zynq.
Improvements
- DFU class: Added MSOS descriptors to select WinUSB driver on Windows.
Program corrections
- Synopsys DWC2 driver: ISO did not work with controllers which need the DWC2_RX_FIFO_ON_CTRL_WORKAROUND flag (STM32L4x2, STM32L4x3, STM32F412). Fixed.
Version 3.24 [1. Jul 2019]
New Features
- Added USB Device Firmware Upgrade (DFU) support.
Improvements
- Added support for USB 3.2 setup commands.
Program corrections
- EHCI driver: Data corruption may occur on OUT endpoints on systems using cached memory. Fixed.
Version 3.22 [17. Jun 2019]
New Features
- Added USB 3.0 support.
- Added support for Xilinx Zynq Ultrascale.
- Added support for STM32L4x2 devices.
- Added USB Video device Class (UVC) support.
- Support for WebUSB specific descriptors and setup requests.
- MSD: Added function USBD_MSD_Poll() which allows the MSD module to be used without blocking the calling task.
Improvements
- BULK interface: Added new functions USBD_BULK_ReceivePoll() and USBD_BULK_PollForRX().
Program corrections
- ATSAMV7x driver: Only 7 endpoints (out of 10) could be used. Fixed.
Version 3.20 [15. May 2019]
New Features
- Added support for NXP LPC55xxx controllers.
- Support USB descriptors required for USB 3.0 devices.
- HID: Added USBD_HID_ReadReport function.
- Added embOS v5 RTOS layer (the old layer also still works, this one only uses the new function names).
Improvements
- LPC54xxx FS driver: Reduce interrupt load. NAK interrupt handling was introduced by a workaround in V3.18a (Stall/ClearFaetureHalt problem). NAK interrupts are now enabled on demand only.
- SmartMSD was renamed into VirtualMSD.
Program corrections
- HID: Set Feature control command did not work if the HID device has an OUT EP. Fixed.
- LPC54xxx driver (HS+FS): Control OUT transfers may fail under some circumstances. Fixed.
Version 3.18c [29. Mar 2019]
Program corrections
- Renesas R8A66597: Receiving EPs are using now the continuous mode rather than the conventional mode.
- RNDIS: Changed USB Class field value in Device descriptor to CDC which allows Windows to enumerate RNDIS properly.
Version 3.18b [04. Mar 2019]
Program corrections
- MSD: When operating in idle (only TestUnitReady commands are sent from the host to the MSD device) it was sometimes possible for the MSD module to loose an incoming command which would cause the host to mark the MSD device as not responding and re-enumerate it. Fixed.
Version 3.18a [28. Feb 2019]
New Features
- Add support for NXP RT105x controllers.
- Add support for ST STM32L0538 controllers.
- Enumeration: Allow a device to have no serial number.
- Enumeration: Allow to set ISO transfers types in the endpoint descriptor.
Improvements
- Synopsys DWC2 driver: Allow to configure endpoint memory buffer.
- General: Moved USB_OS_Panic() from the respective RTOS layers into USB_ConfigIO.c.
- Bulk host API: Function USBBULK_ResetPipe was removed. Functions USBBULK_ResetINPipe() and USBBULK_ResetOUTPipe() were added.
Program corrections
- LPC546 FS driver: It was possible for a ClearFeatureHalt request to not clear the data toggle value. This could cause issues for protocols which use the STALL request on non-control EPs (e.g. MSD). Fixed.
- MSD: When an MSD command was completed with an error and the error was not immediately cleared by the host it was possible for the module to enter a busy-loop until the error condition was resolved by the other side. Fixed.
Version 3.18 [27. Nov 2018]
Improvements
- Renesas USB: All HS and FS have been merged to one driver including the external USB controller Renesas R8A66597.
- Renesas USB: Timeout value for a FIFO stuck has been set to minimum value to reduce interrupt execution.
Program corrections
- Synopsys DWC2 driver: Under some circumstances ISO OUT transfers did not work. Fixed
Version 3.16a [08. Oct 2018]
Program corrections
- STM32L4xx driver: Workaround for the setup transfer issue of the hardware improved.
Version 3.16 [05. Oct 2018]
New Features
- TZ1200: Added support for Toshiba TZ1200 series devices.
Improvements
- MTP: USBD_MTP_SendEvent now has a return value indicating success or failure.
Program corrections
- STM32L4xx driver: Setup OUT packets are sometimes get corrupted due to a hardware issue of the MCU. Workaround implemented.
- MTP: USBD_MTP_SendEvent no longer sends data via an asynchronous write. This could result in events being lost if many events were sent at once. Fixed.
Version 3.14 [20. Jul 2018]
New Features
- LPC54: Added support for the NXP LPC54xxx devices.
- nRF52: Added support for the Nordic Semiconductor nRF52840 devices.
- BULK interface: Added new functions USBD_BULK_ReadAsync() and USBD_BULK_WriteAsync().
- CDC class: Added new functions USBD_CDC_ReadAsync() and USBD_CDC_WriteAsync().
- Renesas FS driver: Added support for ISO transfers.
Improvements
- EHCI driver: Allow to configure endpoint memory buffer.
Program corrections
- BULK interface: Request for MS extended compatible id was not answered correctly if size >= maximum packet size of EP0. Fixed.
- Atmel SAMD21 driver: USB_Read could not be retriggered in event callback function. Fixed.
- Atmel SAMD21 driver: Read timeouts were not handled correctly on multi-packet reads. Fixed.
- Renesas HS driver: It was possible for the BaseAddress variable to be set to 0, which would break communication. Fixed.
Version 3.12a [07. May 2018]
Program corrections
- SAM3U: Added missing source file to driver package.
Version 3.12 [04. May 2018]
New Features
- MTP: Added support for the GetPartialObject command.
Improvements
- Core stack: Added new function USBD_RemoveOnEvent().
- Logging: Functions USBD_SetLogFunc() and USBD_SetWarnFunc() are now obsolete. USB_X_Log() and USB_X_Warn() are now always called for log output.
- ECM / RNDIS / IP-over-USB: Added de-initialization handlers.
- Audio: Added tasks for read/write handling. Allows the read/write callbacks to notify the application of timeouts.
Program corrections
- USBBULK API: USBBULK_CancelRead() did cancel all pending reads independent of the instance. Fixed.
- Enumeration: Other speed descriptor may contain incorrect packet sizes. Fixed.
Version 3.10 [22. Mar 2018]
New Features
- Added Audio class.
- BULK interface: Added new function USBD_BULK_Add_Ex().
Improvements
- Atmel SAMA5D2x, SAMA5D3x driver: Transfer speed improved.
- Synopsys DWC2 driver: Support ISO transfers.
- EHCI driver: Allow ISO transfers.
- Atmel High speed driver: Allow ISO transfers.
- VirtualMSD: Changed USB_VMSD_FILE_INFO to access the short dir entry directly, removed long dir entry from the documentation as it is only used internally.
Program corrections
- USBBULK API: In case starting the device failed, the memory was not cleaned up and the failed instance was still in memory. Fixed.
- USBBULK API: Removed fixed DLL binding to CancelIoEx() which only be used when Windows version > Windows XP -> dynamically used. Removed some minor errors.
- Renesas FS driver: Big Endian was not handled properly. Fixed.
- Renesas FS driver: When aborting a write transfer, remaining FIFO contents was not flushed. Fixed.
- RNDIS: EP0 send-data have been modified after the USBD_WriteEP0FromISR() was called. Fixed.
- Atmel High speed driver (SAM3U, SAMA5D2/3/4x, SAM9x25): Write timeout was not handled correctly. Fixed.
Version 3.08a [14. Feb 2018]
Improvements
- MTP: Changed USB Class/Subclass/Protocol to PTP in order to allow to be enumerated as PTP in case MTP is not recognized.
Version 3.08 [13. Feb 2018]
New Features
- Cypress MB9BFxxx support: Added support for MB9BFxxx devices.
- New function USBD_AddEPEx which allows to configure the maximum packet size of an endpoint.
Improvements
- EHCI driver: Dynamic endpoint buffer configuration allows reduced RAM usage, if not all endpoints are used.
- Synopsys DWC2 driver: Dynamic endpoint buffer configuration allows reduced RAM usage, if not all endpoints are used.
- RNDIS: Changed USB Class/Subclass/Protocol to USB.org assigned IDs (0xE0/0x01/0x03).
Program corrections
- Synopsys DWC2 driver: High speed controller did not work correctly when enumerated in full speed. Fixed.
- Renasas FS driver (RX, Synergy): Under some circumstances a GET control request (EP0) was not handled properly after a SET control request (EP0) was executed. Fixed.
Double-buffering has been disabled on RX targets for safety reasons (data loss). - USBBULK API: CancelOperation was pending even though the handle was closed and a new open was initiated. Fixed.
Reference counter was not locked in release version which can have undefined behavior. Fixed. - IP-over-USB: IP_Config_IP_over_USB.c did not initialize the Init structure for USBD_IP_Add() which could cause an exception. Fixed.
Version 3.06e [12. Jan 2018]
New Features
- ST STM32H7 support: Added support for STM32H7xx devices.
- SliliconLabs EFM32GG11 support: Added support for EFM32GG11 devices.
Version 3.06d [19. Dec 2017]
New Features
- USBBULK.net: Added new methods WriteTimed and ReadTimed.
Program corrections
- Kinetis KHCI driver: Abort of an endpoint did not work correctly. Fixed.
- MSD: LUN serial numbers longer than 32 bytes would cause a memcpy with a negative array offset, potentially leading to undefined behaviour. Fixed.
Version 3.06c [04. Dec 2017]
Improvements
- USB BULK API: The Windows host API can now detect devices which have been enumerated by a third party USB 3.0 host controller driver. These drivers do not handle MS OS descriptors properly, which could cause enumeration to fail.
Program corrections
- Renesas USB FS driver: Stalling a setup request sometimes did not work. Fixed.
- MSD: USBD_MSD_Disconnect() became ineffective after new enumeration. Fixed.
- Synopsys DWC2 driver: Driver for HS controller in FS mode separated.
- Synopsys DWC2 driver: HS controller in FS mode reported high-speed state wrongly. Fixed.
- Renesas Synergy FS driver: Sometimes NULL packets were not sent to the host. Fixed.
Version 3.06b [13. Oct 2017]
Improvements
- USB BULK API: New functionality added to allow to send SETUP requests to target devices. For USBBULK.dll and USBBULK.net a new function was introduced. On target side new callbacks can be registered to retrieve SETUP vendor requests or any other SETUP request.
Program corrections
- IP-over-USB: Under certain circumstances switching between ECM mode and RNDIS may not work properly. Fixed.
Version 3.06a [28. Sep 2017]
Improvements
- XMC4500, STM32L4xx driver: Improved write transfer speed using dynamic FIFO allocation and double buffering.
Program corrections
- ATSAMV7x driver: On a write timeout the endpoint was not reset correctly and gets blocked. Fixed.
- XMC4500 driver: Setup responses with multiple packet size length did not work correctly. Fixed.
Version 3.06 [19. Sep 2017]
New Features
- IP-over-USB, CDC-ECM, RNDIS: This release makes the requirement for tasks obsolete. USBD_IP_Task(), USBD_ECM_Task() or USBD_RNDIS_Task() are no longer necessary as everything is handled through callbacks (thereby reducing overhead). To use this feature embOS/IP V3.22b or newer is required.
Improvements
- Printer class: Taskless operation is possible now, if all printer data can be processed in an interrupt.
- STM32 driver (STM32F0/F3): Enhanced overall read speed in the driver.
- ATSAMV7x driver: Optimize DPRAM usage to have more endpoints.
- EHCI driver: Reduce RAM usage.
Program corrections
- TI OMAP-L138 driver: Under some circumstances the RX buffer can overflow, resulting in data loss. Fixed.
- Renesas USB HS driver: Stalling a setup request sometimes did not work. Fixed.
- Renesas USB FS driver: With a self-powered device it was possible upon a second enumeration for the first two packets to be sent in the wrong order. Fixed.
- Interrupt endpoints: Interval settings < 1ms were not handled correctly, if the device was enumerated in full speed. Fixed.
Version 3.04b [29. Aug 2017]
New Features
- Drivers: Migrated STR91x driver to emUSB 3 API.
Version 3.04a [17. Aug 2017]
New Features
- Drivers: Migrated Toshiba TMPA900 driver to emUSB 3 API.
Version 3.04 [24. Jun 2017]
New Features
- IP-over-USB: Added new component emUSB-Device-IP to easily run any IP-based protocol over USB.
Version 3.02q [17. Jun 2017]
New Features
- Synopsys DWC2 driver: Added BSP and configuration files for the STM32F769 Discovery evaluation board.
Version 3.02p [14. Jun 2017]
Program corrections
- Printer class: USB_PRINTER_Task did not work correctly on USB disconnect. Fixed.
Version 3.02o [13. Jun 2017]
New Features
- MTP: Support for Read/Write callbacks added.
- MSD / MTP: Added MSD and MTP combination feature.
- SystemView: SystemView support added.
Program corrections
- EHCI driver: Receiving non-setup OUT data on endpoint 0 could lead to controller fatal error. Fixed.
- Synopsys DWC2 driver on STM32: High speed controller did not work when enumerated in full speed. Fixed.
- Renesas USB HS driver: Enumeration or setup requests may fail due to wrong interrupt handling. Fixed.
- HID: On some devices the setup request SET_REPORT was not handled correctly. Fixed.
- MTP: A missing interface name string descriptor prevented emUSB-Device-MTP from being recognized as MTP by Android. Fixed.
Version 3.02n [12. Jun 2017]
New Features
- AT91SAM9X25: Added Support for Atmel AT91SAM9X25 devices.
Version 3.02m [08. Jun 2017]
Program corrections
- Synopsys DWC2 driver on STM32: Under some circumstances the FIFO size registers could not be written. Workaround implemented.
Version 3.02l [02. Jun 2017]
New Features
- IP: Preliminary version of component emUSB-Device-IP to easily run any IP-based protocol over USB.
- STM32F7: Added Support for STM32F7 devices -> more endpoints available.
Improvements
- USBBULK .net component: Updated new version that contains USBBULK.net V1.20.
- Renesas Synergy HS driver: Enhanced overall read/write speeds in the driver.
Program corrections
- MSD: Under some circumstances the MSD task could hang when the device is removed from host. Fixed.
- MSD: After re-plugging a MSD device to host the device may not work. Fixed.
- MTP: The IAR ARM compiler generates wrong code for the function ExecGetObjectPropList when using high optimization level. Fixed.
Version 3.02k [26. Apr 2017]
Improvements
- KHCI driver: Enhanced read speed in KHCI driver.
Program corrections
- LPC43xx driver: Maximum number of endpoints for full speed corrected.
- Synopsys DWC2 driver: Controller may receive an extra packet after an endpoint is disabled. Handling of extra packets implemented.
- Renesas RX driver: Driver did not properly function with RX231 and RX113. Fixed.
- MSD: When user assigned a value to pInstData->DriverData.NumSectors the value was ignored. Fixed.
- MSD: Sending the CSW did not return when device is disconnected from host. Fixed.
- MSD: Internal variables were not reset after leaving the MSD Task loop. Fixed.
- Enumeration: Endpoint descriptors for interrupt endpoints did not always contain the correct value for 'bInterval'. Fixed.
- Enumeration: Unit of the 'Interval' parameter of the function USBD_AddEP() was changed to 125us.
- Enumeration: It was possible for the callback set by USBD_SetGetStringFunc to not be called because the internal handler incorrectly reduced the received string index. Fixed.
Version 3.02j [01. Mar 2017]
New Features
- SAMA5D2x: Added Support for Atmel SAMA5D2x devices.
Program corrections
- RX driver: Handling of Zero-Length-Packets was not handled correctly. Fixed. Waiting for the FIFO setting until the setting are set was not done. Fixed.
Version 3.02i [10. Feb 2017]
New Features
- Renesas Synergy devices: Added Support for Highspeed Controller in Synergy S3,S7 devices.
Version 3.02h [26. Jan 2017]
New Features
- ST STM32L4 support: Added support for STM32L4x6 devices.
Version 3.02g [23. Jan 2017]
New Features
- Renesas Synergy devices: Added support for FullSpeed Controller in Synergy S1,S3,S7 devices.
Version 3.02f [04. Jan 2017]
New Features
- Renesas SH7269: Added support for SH7269.
Version 3.02e [15. Dec 2016]
New Features
- Atmel SAMA5D4: Added support for SAMA5D4.
- Renesas R7FS7G2: Added support for R7FS7G2.
Improvements
- ST STM32F4x, EnergyMicro EFM32GG: Improved write transfer speed using dynamic FIFO allocation and double buffering.
Program corrections
- EHCI driver: Correct handling of multiple TX packets on systems using cache.
Version 3.02d [18. Nov 2016]
Improvements
- BULK interface: Improve write speed when using SEGGER Windows driver on the host.
- BULK interface: Removed FriendlyName entry from MS_ExtendedProperties table. This entry causes a lot of Windows versions to crash (BSOD) when the device is disconnected.
- Debug Logging: Replace USBD_PrintSafe with SEGGER equivalent.
- Synopsys DWC2 driver: Added a USB core reset at init, this alleviates issues with multiple re-enumerations on certain MCUs which use this USB controller.
Program corrections
- Atmel UDP driver, Synopsys DWC2 driver, Freescale KHCI driver: Re-Initialization (after USBD_DeInit) is done correctly now.
- MTP: Add timeout for reading zero packet.
Version 3.02c [03. Nov 2016]
Program corrections
- Initialization: Not all static variables were initialized correctly after low-power mode. Fixed.
Version 3.02b [31. Oct 2016]
Improvements
- MSD: Handle timeouts during communication with host.
- DA1468x driver: Handling of endpoint table changed to allow re-initialization.
Program corrections
- SMSD: API functions renamed (Old API function names still work).
- Deinitialization: USBD_DeInit() did not always deinitialize all interfaces correctly. Fixed.
Version 3.02a [18. Oct 2016]
New Features
- Atmel AT91SAM3X: Added support for AT91SAM3X.
Version 3.02 [10. Oct 2016]
New Features
- BULK: Support WinUSB driver for BULK communication.
Improvements
- CDC: CDC devices can now be used on Windows 10 without installing a driver.
- RNDIS, ECM: Added handling (self generated MAC addresses) when user did not assign a MAC address.
- BULK: Support Windows/Linux/MacOSX hosts with the same target application.
Program corrections
- CDC: Under some circumstances a serial state packet was not send to the host. Fixed.
- BSP.c/BSP_USB.c: It was possible for two interrupt handler routines (one for emUSB-Device and one for emUSB-Host) to be registered for one controller. This caused issues for OTG. Fixed.
Version 3.00g [23. Aug 2016]
New Features
- MTP: Added support for the GetNumObjects MTP command.
- MSD: Added new function USBD_MSD_RequestRefresh() to force reread of the storage by the host.
- BULK: Added host API for Linux and Mac OSX.
Improvements
- VirtualMSD: Improvements for using with Mac OSX.
- DA1468x support: Update OS layer.
Program corrections
- MTP: MTP_SUPPORT_EVENTS configuration define did not completely disable event handling when set to zero. Fixed.
- STM32 driver: Check for overflow of buffer memory corrected.
Version 3.00f [01. Aug 2016]
New Features
- DA1468x support: Add support for Dialog Semiconductor DA1468x.
Improvements
- VirtualMSD: API improved.
- RNDIS, CDC_ECM: Updated IP driver with new embOS/IP function which allow us to access need information without accessing internal embOS/IP structures directly.
- FreeRTOS layer: Allow static allocation of objects with FreeRTOS 9.0.0.
Program corrections
- CDC API: Definition of function USB_CDC_WriteTimedEx in migration layer corrected.
- BULK interface: USBD_BULK_WriteEx(NumBytes=0, Timeout>=0) didn't wait for completion of pending write transfers: Fixed.
- STM32 driver: Buffer sizes were not set properly which could lead to all sorts of strange effects.
- STM32 driver: Added a panic check for endpoint allocations which makes sure users do not allocate more endpoints than there is RAM for them.
- STM32 driver: Added handling for unaligned access when using access width of 16.
- STM32F0 driver: Merged with STM32 driver.
Version 3.00e [08. Jul 2016]
New Features
- TI AM335: Driver using DMA implemented.
- STM32F7xx support: Added USB config files for the popular STM32F746 DISCO evalboard.
Improvements
- OS Layer: New operating system layer interface implemented (Can be activated with '#define USBD_OS_LAYER_EX 1' in USB_Conf.h).
- BULK: Added new configuration macro: USB_EXACT_DATASIZE_ON_CANCEL to speed up BULK reads on particular USB controllers (disables exact behaviour on cancelled read operations).
- STM32F107: Merged the STM32F107 driver into the DWC2 driver.
- TI AM335: Added Detach function.
Program corrections
- USB enumeration: A ZLP was sent for getdescriptor requests when the size of the descriptor matched the ep0 size. Fixed.
- MSD: The device had to stall bulk ep IN when it sent less data than requested to the host. Fixed.
- MSD: Fixed MSD_Task so that it correctly considers all return values of USBD_Receive.
- MSD: Fixes for USB_V2_V3_MIGRATION_MSD_LUN_INFO
- MSD: StorageRAM: Fixed GetBuffer* functions, previously they did not check buffer limits at all.
- MTP: Updated NULL Packet handling in _ReceiveBytes function (MTP transfer could have hang up on particular file sizes).
- MTP: Fixes for USB_V2_V3_MIGRATION_MTP_INFO
- STM32F1/2/4xx, EFM32GG, XMC45xx: Fix an issue in the driver if using Keil/ARM compiler with optimization (HardFault).
- Sample configurations: emPower board: Bus muster priorities corrected. STM3210C-EVAL: config file updated.
Version 3.00d [08. Jun 2016]
Improvements
- Freescale KHCI: Added optimized SendEP routine.
Program corrections
- Atmel SAMD21 driver: NVM values for USB D+ and D- pads have been read in the wrong byte order. Fixed.
- Atmel SAMD21 driver: Control request with a DATA OUT phase (CDC: SetLineCoding) did not work properly. Fixed.
- Atmel SAMD21 driver: Setting an OUT Endpoint to NAK was done before the endpoint was properly initialized. Fixed.
- TI AM335x driver: Start of frame interrupt removed as it is not necessary for the driver functionality.
- TI AM335x driver: FIFO addresses were set incorrectly which could cause undefined behaviour when using multiple classes (composite device). Fixed.
- MTP class: Certain return values during retrival of the object property list were ignored. Fixed.
- Printer class: The receive data callback wrongly received the return values of the lower-level receive function. The callback is only to be called when at least one bytes is received. Fixed.
Version 3.00c [23. May 2016]
New Features
- BULK: Added new configuration macro: USBD_BULK_REGULAR_2048_XFER to remove the optimization which is used with the SEGGER Windows Bulk driver. By default this macro is not set, it is only necessary when you are writing your own host driver, in that case it can be added to the USB_Conf.h file.
Improvements
- OS-Layer: Free-RTOS layer improved once more.
Program corrections
- Atmel SAMD21 driver: Coming out of the USB suspend state did not work. Fixed.
- uC/OS-II RTOS layer: Read functions would return with the busy flag (-4) under certain circumstances. Fixed.
Version 3.00b [28. Apr 2016]
New Features
- MTP: Added new configuration macro: USB_MTP_NAME_CASE_SENSITIVE to ignore case sensitivity.
Program corrections
- MTP:When MTP_SAVE_FILE_INFO was enabled function _AddObject did not compile due to wrong function call. Fixed.
- MTP:_SetObjectPropObjectFileName: Wrong function was called to remove the object from the object store, resulted that a rename was not shown on the host. Fixed.
- MTP:USBD_MTP_SendEvent: Calling the function with USB_MTP_EVENT_OBJECTADDED resulted in an undefined behaviour when searching for the object. Fixed.
- MTP:USBD_MTP_SendEvent: USB_MTP_EVENT_OBJECTREMOVED used the file name instead of the file path to notify the host that the object was removed which resulted in showing the host the wrong file or that no file was removed.
Version 3.00a [15. Apr 2016]
New Features
- HID: A callback can be set to be notified when a SET_REPORT or GET_REPORT is sent from the host.
Improvements
- OS-Layer: The OS-Layer for Free-RTOS and uC/OS-II have been improved.
- Renesas RX driver: Renesas RX62N driver has been renamed to Renesas RX, driver file name and its name has been renamed. Compatibility macros has been added.
Program corrections
- CDC-ECM: When disconnecting the CDC-ECM device from host, the disconnect was not properly handled. Fixed.
- Atmel SAMD21: USB Resume interrupt did not work. Fixed.
- Atmel SAMD21: Read and write operation did not check for proper data alignment. Fixed.
Version 3.00 [18. Mar 2016]
New Features
- Initial version. Customers coming from emUSB-Device V2 should read the emUSB-Device V3 migration guide. (Doc\AN09001_emUSB_V3_MigrationGuide.pdf).