0.7.0 - 2020.11.08
Device Controller Driver
- Added new support for Espressif ESP32-S2
- Added new support for Dialog DA1469x
- Enhance STM32 Synopsys
- Support bus events disconnection/suspend/resume/wakeup
- Improve transfer performance with optimizing xfer and fifo size
- Support Highspeed port (OTG_HS) with both internal and external PHY
- Support multiple usb ports with rhport=1 is highspeed on selected MCUs e.g H743, F23. It is possible to have OTG_HS to run on Fullspeed PHY (e.g lacking external PHY)
- Add ISO transfer, fix odd/even frame
- Fix FIFO flush during stall
- Implement dcd_edpt_close() API
- Support F105, F107
- Enhance STM32 fsdev
- Improve dcd fifo allocation
- Fix ISTR race condition
- Support remap USB IRQ on supported MCUs
- Implement dcd_edpt_close() API
- Enhance NUC 505: enhance set configure behavior
- Enhance SAMD
- Fix race condition with setup packet
- Add SAMD11 option
OPT_MCU_SAMD11
- Add SAME5x option
OPT_MCU_SAME5X
- Fix SAMG control data toggle and stall race condition
- Enhance nRF
- Fix hanged when tud_task() is called within critical section (disabled interrupt)
- Fix disconnect bus event not submitted
- Implement ISO transfer and dcd_edpt_close()
USB Device
USBD
- Add new class driver for Bluetooth HCI class driver with example can be found in mynewt-tinyusb-example since it needs mynewt OS to run with.
- Fix USBD endpoint usage racing condition with
usbd_edpt_claim()/usbd_edpt_release()
- Added
tud_task_event_ready()
andosal_queue_empty()
. This API is needed to check before enter low power mode with WFI/WFE - Rename USB IRQ Handler to
dcd_int_handler()
. Application must define IRQ handler in which it calls this API. - Add
dcd_connect()
anddcd_disconnect()
to enable/disable internal pullup on D+/D- on supported MCUs. - Add
usbd_edpt_open()
- Remove
dcd_set_config()
- Add OPT_OS_CUMSTOM as hook for application to overwrite and/or add their own OS implementation
- Support SET_INTERFACE, GET_INTERFACE request
- Add Logging for debug with optional uart/rtt/swo printf retarget or
CFG_TUSB_DEBUG_PRINTF
hook - Add IAR compiler support
- Support multiple configuration descriptors.
TUD_CONFIG_DESCRIPTOR()
template has extra config_num as 1st argument - Improve USB Highspeed support with actual link speed detection with
dcd_event_bus_reset()
- Enhance class driver management
usbd_driver_open()
add max length argument, and return length of interface (0 for not supported). Return value is used for finding appropriate driver- Add application implemented class driver via
usbd_app_driver_get_cb()
- IAD is handled to assign driver id
- Added
tud_descriptor_device_qualifier_cb()
callback - Optimize
tu_fifo
bulk write/read transfer - Forward non-std control request to class driver
- Let application handle Microsoft OS 1.0 Descriptors (the 0xEE index string)
- Fix OSAL FreeRTOS yield from ISR
Class Drivers
- USBNET: remove ACM-EEM due to lack of support from host
- USBTMC: fix descriptors when INT EP is disabled
- CDC:
- Send zero length packet for end of data when needed
- Add
tud_cdc_tx_complete_cb()
callback - Change tud_cdc_n_write_flush() return number of bytes forced to transfer, and flush when writing enough data to fifo
- MIDI:
- Add packet interface
- Add multiple jack descriptors
- Fix MIDI driver for sysex
- DFU Runtime: fix response to SET_INTERFACE and DFU_GETSTATUS request
- Rename some configure macro to make it clear that those are used directly for endpoint transfer
- CFG_TUD_HID_BUFSIZE to `CFG_TUD_HID_EP_BUFSIZE
- CFG_TUD_CDC_EPSIZE to CFG_TUD_CDC_EP_BUFSIZE
- CFG_TUD_MSC_BUFSIZE to CFG_TUD_MSC_EP_BUFSIZE
- CFG_TUD_MIDI_EPSIZE to CFG_TUD_MIDI_EP_BUFSIZE
- HID:
- Fix gamepad template descriptor
- Add multiple HID interface API
- Add extra comma to HID_REPORT_ID
USB Host
- Rework USB host stack (still work in progress)
- Fix compile error with pipehandle
- Rework usbh control and enumeration as non-blocking
- Improve Hub, MSC, HID host driver
Examples
- Add new hid_composite_freertos
- Add new dynamic_configuration to demonstrate how to switch configuration descriptors
- Add new hid_multiple_interface
- Enhance
net_lwip_webserver
example- Add multiple configuration: RNDIS for Windows, CDC-ECM for macOS (Linux will work with both)
- Update lwip to STABLE-2_1_2_RELEASE for net_lwip_webserver
- Added new Audio example: audio_test uac2_headsest
New Boards
- Espressif ESP32-S2: saola_1, kaluga_1
- STM32: F746 Nucleo, H743 Eval, H743 Nucleo, F723 discovery, stlink v3 mini, STM32L4r5 Nucleo
- Dialog DA1469x dk pro and dk usb
- Microchip: Great Scoot Gadgets' LUNA, samd11_xplained, D5035-01, atsamd21 xplained pro
- nRF: ItsyBitsy nRF52840