Implementing a Custom USB Device Controller Driver in Zephyr
summary
Custom Xilinx USB device controller on an Enclustra FPGA is integrated with Zephyr attempting to use the Zephyr USB stack but initial debugging shows enumeration fails until controller registers are configured. Tools used include logic analyzer and USB traffic capture and peeking registers via the ARM hard core. The pragmatic move is that tiny USB is ported tiny USB into Zephyr so the CDC echo works and a CDC echo works over Windows COM port, but full native Zephyr stack integration remains to be implemented.
AI-written summary · about
chapters (20)
- 0:00Intro
- 0:20THE SPEAKER
- 2:12Agenda
- 3:20System Architecturé
- 6:57USB CDC in FreeRTOS
- 7:42TinyUSB
- 10:18Existing System
- 11:06Problem Statement
- 12:10Device Connection
- 13:02USB Transaction
- 14:44USB Packet
- 17:18USB Endpoints
- 18:17Zero Length Packets
- 20:46USB Enumeration
- 21:25Initial Strategy
- 22:29Troubleshooting
- 24:24Initial Results
- 25:12Resolution
- 26:59Retrospective
- 28:25Next Steps
related talks
36mUSB Support in Zephyr OS
45mUSB Support in Zephyr OS
38mWriting Your Own Gadget with Zephyr OS
38mWriting Your Own Gadget with Zephyr OS
45mBluetooth Low Energy Controller in Zephyr OS
42mEnabling Zephyr on Your Hardware Platform
23mA Dive into Zephyr Device Driver Model
40mHow to extract a bare metal flavor of code out of Zephyr to use in RTOS?
