summaryrefslogtreecommitdiff
path: root/docs/changelog/0.7.0.md
blob: cb7fc1a1326cc874336019613bddf80596edd450 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# 0.7.0

*November 7, 2020*

## 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`

### SAMG

- 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](https://github.com/hathach/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
- 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`

### 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

### 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

## Contributors

Thanks to everyone who contributed to this release: @chang196700, @CraigHutchinson, @czeslawmakarski, @duempel, @gh2o, @hathach, @HiFiPhile, @j4cbo, @jepler, @jgressmann, @k0d, @kasjer, @kaysievers, @ktemkin, @majbthrd, @me-no-dev, @mzero, @PanRe, @pigrew, @salkinium, @UweBonnes, @xobs, @zlittell.