Skip to content

Commit 5217cee

Browse files
authored
Merge pull request hathach#2801 from hathach/release-0.17.0
2 parents 3ff128b + 115b1bb commit 5217cee

File tree

7 files changed

+259
-172
lines changed

7 files changed

+259
-172
lines changed

README.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Host Stack
7777
- Human Interface Device (HID): Keyboard, Mouse, Generic
7878
- Mass Storage Class (MSC)
7979
- Communication Device Class: CDC-ACM
80-
- Vendor serial over USB: FTDI, CP210x
80+
- Vendor serial over USB: FTDI, CP210x, CH34x
8181
- Hub with multiple-level support
8282

8383
Similar to the Device Stack, if you have a special requirement, `usbh_app_driver_get_cb()` can be used to write your own class driver without modifying the stack.
@@ -111,7 +111,7 @@ Following CPUs are supported, check out `Supported Devices`_ for comprehensive l
111111
+--------------+------------------------------------------------------------+
112112
| Analog | max32: 650, 666, 690. max78002 |
113113
| | |
114-
| | max3421e (host) |
114+
| | max3421e (spi host) |
115115
+--------------+------------------------------------------------------------+
116116
| Brigetek | FT90x |
117117
+--------------+------------------------------------------------------------+
@@ -143,7 +143,7 @@ Following CPUs are supported, check out `Supported Devices`_ for comprehensive l
143143
| | |
144144
| | MCX: A15, N9 |
145145
+--------------+------------------------------------------------------------+
146-
| Raspberry Pi | RP2040 |
146+
| Raspberry Pi | RP2040, RP2350 |
147147
+--------------+-----+------------------------------------------------------+
148148
| Renesas | RA: 4M1, 4M3, 6M1, 6M5 |
149149
| | |

docs/info/changelog.rst

Lines changed: 119 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,71 +2,165 @@
22
Changelog
33
*********
44

5-
0.17.0 (WIP)
6-
============
5+
0.17.0
6+
======
77

88
General
99
-------
1010

11-
- Improved continuous integration: build both cmake and make. Make use of circleci to build arm-clang
12-
11+
- Improved CI: build both cmake and make. Make use of CircleCI for part of build process to speed up CI
12+
- Add CodeQL Workflow for Code Security Analysis
13+
- Add Clang compiler support
14+
- Add default implementation for weak callbacks functions for better Keil compatibility
15+
- Upgrade hardware-in-the-loop (HIL) testing with more boards and examples: including dual stack example
1316

1417
Controller Driver (DCD & HCD)
1518
-----------------------------
1619

20+
- Chipidea
21+
22+
- Support MCXA
23+
24+
- DWC2
25+
26+
- Fix tickless issue with stm32f7: disable ULPI clock during sleep when using internal phy
27+
- Fix SOF interrupt handling
28+
- Fix fifo level half/empty issue
29+
- Add DWC2 Test Mode support.
30+
- for esp32 force disconnect/connect using USB_WRAP otg pad override
31+
32+
- FSDEV
33+
34+
- Rewrite and Generalize driver to support non-stm32 mcu such as wch
35+
- Simplify PMA, HW FIFO access and bit manipulation for different access scheme 1x16, 2x16 and 32 bit
36+
- Add support for ch32 usbd e.g ch32v203
37+
- Add support for STM32G4 and STM32U5 microcontrollers.
38+
- Fix h5 (32-bit) errata 2.15.1: Buffer description table update completes after CTR interrupt triggers
39+
- ISO EP buffer allocation improvements, implement dcd_edpt_close_all()
40+
41+
- Fix ch32v203 race condition and stability issue with
42+
43+
- fix ch32v203 seems to unconditionally accept ZLP on EP0 OUT.
44+
- fix v203 race condition between rx bufsize and RX_STAT which cause PMAOVR, occurs with WRITE10
45+
- correctly handle setup prepare at dcd_edpt0_status_complete(), which fixes the race condition with windows where we could miss setup packet (setup bit set, but count = 0)
46+
47+
- MAX3421E
48+
49+
- Add support for rp2040, esp32 (c3, c6, h2, etc..)
50+
- Add hcd_deinit() for max3421
51+
- Retry NAK handling next frame to reduce CPU and SPI bus usage
52+
- add cpuctl and pinctl to tuh_configure() option for max3421
53+
- Implement hcd abort transfer for Max3421
54+
- Properly Handle NAK Response in MAX3421E driver: correctly switch and skip writing to 2 FIFOs when NAK received. Otherwise, the driver may hang in certain conditions.
55+
56+
- MSP430: support non-bus-powered
57+
58+
- MUSB
59+
60+
- Add support for Analoog devices: max32650, max32666, max32690, max3278002
61+
62+
- nRF
63+
64+
- Fix dcd_edpt_open for iso endpoint
65+
- Handle ISOOUT CRC errors
66+
- Add compile support with old nordic sdk
67+
- Fix a few race conditions
68+
69+
- OHCI
70+
71+
- Allow more than 16 devices
72+
73+
- RP2040
74+
75+
- Correctly abort control transfer when new setup arrived. Due to RP2040-E2 only able to fix B2 or later
76+
- Implement hcd abort transfer for rp2040
77+
- Add support for rp2350
78+
79+
- RUSB2
80+
81+
- Support ra2a1 pipe number scheme
82+
1783
- WCH CH32
1884

1985
- Added support for USB OTG/FS and FSDev Driver. Update CH32V307 to allow manual select FS or HS driver.
2086
- Fixed various bugs in CH32v307 usbhs driver: endpoint handling and data transfer management.
2187

22-
- Fixed race conditions and other bugs in dcd_nrf5x and other drivers.
23-
- Implemented hcd abort transfer for Max3421 and rp2040
24-
- Added DWC2 Test Mode support.
25-
- stm32 fsdev: ISO EP buffer allocation improvements, implement dcd_edpt_close_all()
26-
- Added support for STM32G4 and STM32U5 microcontrollers.
27-
2888
Device Stack
2989
------------
3090

31-
- Added tud_deinit() to deinitialize TinyUSB device stack.
32-
- Added support for generic SOF callback.
91+
- Add tud_deinit() and class driver deinit() to deinitialize TinyUSB device stack.
92+
- Add support for generic SOF callback.
93+
- Add set address recovery time 2ms per USB spec.
3394

3495
- Audio
3596

3697
- Add audio_test_freertos & audio_4_channel_mic_freertos
3798
- Improved support for Audio Class 2.0 (UAC2) with various bug fixes.
99+
- Add feedback by fifo counting.
100+
101+
- Bluetooth HCI
102+
103+
- Issue ZLP on ACL IN ep when transfer is multiple of endpoint max packet size
104+
105+
- CDC
106+
107+
- Add tud_cdc_configure_fifo() to make RX/TX buffer persistent (not clear when disconnected)
108+
- Add missing capability bit for CDC ACM serial break support
109+
- Enhanced CDC class with better handling of large data transmissions.
110+
- Add missing capability bit for CDC ACM serial break support
38111

39112
- HID
40113

41114
- Added missing key codes for keypad
42115
- Added HID Lighting and Illumination functionality
116+
- Fixed issues in the HID class for more reliable device enumeration.
117+
- Support HID Mouse with absolute positioning
118+
- Use separate buffer for control SET_REPORT, fix conflict with interrupt endpoint out
43119

44-
- Vendor: Added empty transfers for tud_vendor_n_write()
45120
- MSC: Added support for SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL
46121

47-
- CDC
48-
49-
- Add option to make CDC TX buffer persistent
50-
- Add missing capability bit for CDC ACM serial break support
51-
52122
- Net
53123

54-
- Rewrite of NCM device driver
124+
- Rewrite of NCM device driver to improve throughput
55125
- removed obsolete tud_network_link_state_cb()
56126

57-
- Enhanced CDC class with better handling of large data transmissions.
58-
- Fixed issues in the HID class for more reliable device enumeration.
59-
- Video Added support for USB Video Class (UVC) with MJPEG.
60127
- USBTMC Added notification support
61128

129+
- Vendor
130+
131+
- Migrate to new endpoint stream API, support non-buffered TX/RX
132+
- Add ZLP for write() when needed
133+
134+
- Video
135+
136+
- Enhance UVC descriptors and example
137+
- Video Added support for USB Video Class (UVC) with MJPEG.
138+
- Fix multiple interfaces, add an example of 2ch video capture.
139+
- Fix race for tud_video_n_streaming check
140+
62141
Host Stack
63142
----------
64143

65-
- Added tuh_deinit() to deinitialize TinyUSB host stack.
144+
- Added tuh_deinit() to de-initialize TinyUSB host stack.
66145
- Added support for new USB mass storage class APIs.
67-
- Enhanced stability of CDC-ACM devices during enumeration.
68146
- Improved error handling and retry mechanisms for unstable devices.
69-
- Added support for multiple interfaces in UVC.
147+
148+
- CDC Serial
149+
150+
- Add support for ch34x
151+
- Allow to overwrite CFG_TUH_CDC_FTDI/CP210X/CH32X_VID_PID_LIST
152+
- Enhanced stability of CDC-ACM devices during enumeration.
153+
154+
- HID
155+
156+
- Add tuh_hid_receive_abort()
157+
- Add tuh_hid_get_report()
158+
159+
- Hub
160+
161+
- Prevent status request to invalid ep_num
162+
- Fix double status xfer
163+
- unroll hub removal
70164

71165
0.16.0
72166
======

docs/reference/dependencies.rst

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ MCU low-level peripheral driver and external libraries for building TinyUSB exam
88
Local Path Repo Commit Required by
99
======================================== ============================================================== ======================================== ==========================================================================================================================================================================================================================================================================================================================
1010
hw/mcu/allwinner https://github.com/hathach/allwinner_driver.git 8e5e89e8e132c0fd90e72d5422e5d3d68232b756 fc100s
11+
hw/mcu/analog/max32 https://github.com/analogdevicesinc/msdk.git b20b398d3e5e2007594e54a74ba3d2a2e50ddd75 max32650 max32666 max32690 max78002
1112
hw/mcu/bridgetek/ft9xx/ft90x-sdk https://github.com/BRTSG-FOSS/ft90x-sdk.git 91060164afe239fcb394122e8bf9eb24d3194eb1 brtmm90x
1213
hw/mcu/broadcom https://github.com/adafruit/broadcom-peripherals.git 08370086080759ed54ac1136d62d2ad24c6fa267 broadcom_32bit broadcom_64bit
1314
hw/mcu/gd/nuclei-sdk https://github.com/Nuclei-Software/nuclei-sdk.git 7eb7bfa9ea4fbeacfafe1d5f77d5a0e6ed3922e7 gd32vf103
@@ -16,9 +17,9 @@ hw/mcu/microchip https://github.com/hathach/microchip_d
1617
hw/mcu/mindmotion/mm32sdk https://github.com/hathach/mm32sdk.git b93e856211060ae825216c6a1d6aa347ec758843 mm32
1718
hw/mcu/nordic/nrfx https://github.com/NordicSemiconductor/nrfx.git 7c47cc0a56ce44658e6da2458e86cd8783ccc4a2 nrf
1819
hw/mcu/nuvoton https://github.com/majbthrd/nuc_driver.git 2204191ec76283371419fbcec207da02e1bc22fa nuc
19-
hw/mcu/nxp/lpcopen https://github.com/hathach/nxp_lpcopen.git 04bfe7a5f6ee74a89a28ad618d3367dcfcfb7d83 lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43
20+
hw/mcu/nxp/lpcopen https://github.com/hathach/nxp_lpcopen.git b41cf930e65c734d8ec6de04f1d57d46787c76ae lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43
2021
hw/mcu/nxp/mcux-sdk https://github.com/hathach/mcux-sdk.git 144f1eb7ea8c06512e12f12b27383601c0272410 kinetis_k kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx imxrt
21-
hw/mcu/raspberry_pi/Pico-PIO-USB https://github.com/sekigon-gonnoc/Pico-PIO-USB.git 0f747aaa0c16f750bdfa2ba37ec25d6c8e1bc117 rp2040
22+
hw/mcu/raspberry_pi/Pico-PIO-USB https://github.com/sekigon-gonnoc/Pico-PIO-USB.git fe9133fc513b82cc3dc62c67cb51f2339cf29ef7 rp2040
2223
hw/mcu/renesas/fsp https://github.com/renesas/fsp.git d52e5a6a59b7c638da860c2bb309b6e78e752ff8 ra
2324
hw/mcu/renesas/rx https://github.com/kkitayam/rx_device.git 706b4e0cf485605c32351e2f90f5698267996023 rx
2425
hw/mcu/silabs/cmsis-dfp-efm32gg12b https://github.com/cmsis-packs/cmsis-dfp-efm32gg12b.git f1c31b7887669cb230b3ea63f9b56769078960bc efm32
@@ -57,11 +58,12 @@ hw/mcu/st/stm32u5xx_hal_driver https://github.com/STMicroelectronics/
5758
hw/mcu/st/stm32wbxx_hal_driver https://github.com/STMicroelectronics/stm32wbxx_hal_driver.git 2c5f06638be516c1b772f768456ba637f077bac8 stm32wb
5859
hw/mcu/ti https://github.com/hathach/ti_driver.git 143ed6cc20a7615d042b03b21e070197d473e6e5 msp430 msp432e4 tm4c
5960
hw/mcu/wch/ch32f20x https://github.com/openwch/ch32f20x.git 77c4095087e5ed2c548ec9058e655d0b8757663b ch32f20x
60-
hw/mcu/wch/ch32v20x https://github.com/openwch/ch32v20x.git de6d68c654340d7f27b00cebbfc9aa2740a1abc2 ch32v20x
61-
hw/mcu/wch/ch32v307 https://github.com/openwch/ch32v307.git 17761f5cf9dbbf2dcf665b7c04934188add20082 ch32v307
61+
hw/mcu/wch/ch32v103 https://github.com/openwch/ch32v103.git 7578cae0b21f86dd053a1f781b2fc6ab99d0ec17 ch32v10x
62+
hw/mcu/wch/ch32v20x https://github.com/openwch/ch32v20x.git c4c38f507e258a4e69b059ccc2dc27dde33cea1b ch32v20x
63+
hw/mcu/wch/ch32v307 https://github.com/openwch/ch32v307.git 184f21b852cb95eed58e86e901837bc9fff68775 ch32v307
6264
lib/CMSIS_5 https://github.com/ARM-software/CMSIS_5.git 20285262657d1b482d132d20d755c8c330d55c1f imxrt kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx mm32 msp432e4 nrf ra saml2xlpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 stm32h5stm32h7 stm32l0 stm32l1 stm32l4 stm32l5 stm32u5 stm32wbsam3x samd11 samd21 samd51 samd5x_e5x same5x same7x saml2x samgtm4c
6365
lib/FreeRTOS-Kernel https://github.com/FreeRTOS/FreeRTOS-Kernel.git cc0e0707c0c748713485b870bb980852b210877f all
6466
lib/lwip https://github.com/lwip-tcpip/lwip.git 159e31b689577dbf69cf0683bbaffbd71fa5ee10 all
6567
lib/sct_neopixel https://github.com/gsteiert/sct_neopixel.git e73e04ca63495672d955f9268e003cffe168fcd8 lpc55
66-
tools/uf2 https://github.com/microsoft/uf2.git 19615407727073e36d81bf239c52108ba92e7660 all
68+
tools/uf2 https://github.com/microsoft/uf2.git c594542b2faa01cc33a2b97c9fbebc38549df80a all
6769
======================================== ============================================================== ======================================== ==========================================================================================================================================================================================================================================================================================================================

0 commit comments

Comments
 (0)