Loading...
Searching...
No Matches

TinyUSB netdev driver for CDC ECM, CDC NCM and RNDIS protocol. More...

Detailed Description

TinyUSB netdev driver for CDC ECM, CDC NCM and RNDIS protocol.

The tinyUSB netdev driver is part of the tinyUSB package and is enabled by module tinyusb_netdev. It is available for boards that provide the tinyusb_device feature.

Note
Since the tinyUSB package is distinct from (and incompatible with) the USB stack provided around USBUS in RIOT (see USB), the tinyUSB netdev driver cannot be used together with with any USBUS device class.

The tinyUSB netdev driver uses Ethernet over USB and supports the following protocols:

While Linux and macOS support all these protocols, Microsoft Windows only supports the RNDIS protocol and since Windows version 11 also the CDC NCM protocol. macOS supports the RNDIS protocol since version 10.15 (Catalina).

Which protocol is used is selected by the corresponding pseudomodules tinyusb_class_net_cdc_ecm, tinyusb_class_net_cdc_ncm and tinyusb_class_net_rndis.

The CDC ECM protocol (tinyusb_class_net_cdc_ecm) and the RNDIS protocol (tinyusb_class_net_rndis) can be used simultaneously to support all operating systems, for example :

USEMODULE='tinyusb_netdev tinyusb_class_net_rndis tinyusb_class_net_cdc_ecm' \
BOARD=... make -C ... flash

In this case, the CDC ECM protocol is the default protocol and the RNDIS protocol the alternative protocol defined as second device configuration.

The CDC NCM protocol cannot be used together with the CDC ECM or the RNDIS protocol.

Files

file  tinyusb_netdev.h
 TinyUSB netdev driver for CDC ECM, CDC NCM and RNDIS protocol.
 

Data Structures

struct  tinyusb_netdev_t
 Device descriptor for tinyUSB CDC ECM network devices. More...