87 lines
2.4 KiB
ReStructuredText
87 lines
2.4 KiB
ReStructuredText
.. zephyr:code-sample:: usb-shell
|
|
:name: USB shell
|
|
:relevant-api: usbd_api
|
|
|
|
Use shell commands to interact with USB device stack.
|
|
|
|
Overview
|
|
********
|
|
|
|
The sample enables new experimental USB device support and the shell function.
|
|
It is primarily intended to aid in the development and testing of USB controller
|
|
drivers and new USB support.
|
|
|
|
Building and flashing
|
|
*********************
|
|
|
|
Assuming the board has a supported USB device controller, the example can be
|
|
built like:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/subsys/usb/shell
|
|
:board: reel_board
|
|
:goals: flash
|
|
:compact:
|
|
|
|
For the USB host functionality a supported host controller is required,
|
|
currently it is only MAX3421E. The example can be built as follows:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/subsys/usb/shell
|
|
:board: nrf52840dk/nrf52840
|
|
:shield: sparkfun_max3421e
|
|
:gen-args: -DCONFIG_UHC_DRIVER=y -DCONFIG_USB_HOST_STACK=y
|
|
:goals: flash
|
|
:compact:
|
|
|
|
It is theoretically possible to build USB support using virtual USB controllers
|
|
for all platforms, eventually the devicetree overlay has to be adjusted slightly if
|
|
the platform has already defined or not `zephyr_uhc0` or `zephyr_udc0` nodelabels.
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/subsys/usb/shell
|
|
:board: nrf52840dk/nrf52840
|
|
:gen-args: -DEXTRA_CONF_FILE=virtual.conf -DDTC_OVERLAY_FILE=virtual.overlay
|
|
:goals: flash
|
|
:compact:
|
|
|
|
Sample shell interaction
|
|
========================
|
|
|
|
.. code-block:: console
|
|
|
|
uart:~$ usbd defaults
|
|
dev: USB descriptors initialized
|
|
uart:~$ usbd config add 1
|
|
uart:~$ usbd class add foobaz 1
|
|
dev: added USB class foobaz to configuration 1
|
|
uart:~$ usbd init
|
|
dev: USB initialized
|
|
uart:~$ usbh init
|
|
host: USB host initialized
|
|
uart:~$ usbh enable
|
|
host: USB host enabled
|
|
[611:00:28.620,000] <wrn> usbd_core: VBUS detected event
|
|
uart:~$ usbh bus resume
|
|
host: USB bus resumed
|
|
uart:~$ usbd enable
|
|
host: USB device connected
|
|
dev: USB enabled
|
|
uart:~$ usbh device descriptor device 0
|
|
host: transfer finished 0x20006250, err 0
|
|
00000000: 80 06 00 01 00 00 12 00 |........ |
|
|
bLength 18
|
|
bDescriptorType 1
|
|
bcdUSB 200
|
|
bDeviceClass 239
|
|
bDeviceSubClass 2
|
|
bDeviceProtocol 1
|
|
bMaxPacketSize0 64
|
|
idVendor 2fe3
|
|
idProduct ffff
|
|
bcdDevice 301
|
|
iManufacturer 1
|
|
iProduct 2
|
|
iSerial 3
|
|
bNumConfigurations 1
|