Skip to content

0.7.0 - 2020.11.08

Compare
Choose a tag to compare
@hathach hathach released this 07 Nov 17:07
· 4362 commits to master since this release

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() and osal_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() and dcd_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