
Contents UM1021
2/107 Doc ID 18153 Rev 3
Contents
1 Reference information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 USB host and device library overview . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1 Main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 USB host and device library folder structure . . . . . . . . . . . . . . . . . . . . 10
4 USB OTG core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1 USB OTG full speed core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.1 OTG_FS interface main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 USB OTG high speed core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5 USB OTG low level driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1 USB OTG low level driver architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2 USB OTG low level driver files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3 USB OTG low level driver configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.4 USB OTG driver programming manual . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.4.1 Low level driver structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.4.2 Programming considerations when using internal DMA . . . . . . . . . . . . 15
5.4.3 Selecting USB physical interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4.4 Programming device drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4.5 Programming host drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6 USB device library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.1 USB device library overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2 USB device library files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3 USB device library description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3.1 USB device library flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3.2 USB device library process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.3.3 USB device data flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.3.4 USB device library configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.3.5 USB data transfer handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.3.6 Using the multi-packet feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30