hathach / tinyusb

An open source cross-platform USB stack for embedded system
https://www.tinyusb.org
MIT License
4.67k stars 998 forks source link

Add support for SAMD21 HCD #2573

Open ChrisDeadman opened 3 months ago

ChrisDeadman commented 3 months ago

This was written from scratch using the datasheet and tested on a SAMD21 (using SparkFun SAMD21 Mini Breakout). However, it should also work with SAMD51 boards, I don't have one for testing though.

USB Hub Issue

For some reason, when compiling the host/hid_controller example from tinyusb (modified by setting CFG_TUH_HUB to 1), GET_DESCRIPTOR times out when connecting devices via USB hub. When I use tinyusb within my platformio project (which uses framework-arduino-samd for device initialization), devices connected via HUBs work without any issues.

I've compared the runtime values of all registers that should matter for USB, but could not find any meaningful difference. Nevertheless, I must have missed one or some, because HUB connections are always working with the arduino samd framework but never with the tinyusb example.

hathach commented 2 months ago

superb !! Thank you very much, let give me a bit of time for reviewing (still need to wrap up other work first).