380 lines
13 KiB
Plaintext
380 lines
13 KiB
Plaintext
menu "TinyUSB Stack"
|
|
config TINYUSB_DEBUG_LEVEL
|
|
int "TinyUSB log level (0-3)"
|
|
default 1
|
|
range 0 3
|
|
help
|
|
Specify verbosity of TinyUSB log output.
|
|
|
|
choice TINYUSB_RHPORT
|
|
prompt "USB Peripheral"
|
|
default TINYUSB_RHPORT_HS if IDF_TARGET_ESP32P4
|
|
default TINYUSB_RHPORT_FS
|
|
help
|
|
Allows set the USB Peripheral Controller for TinyUSB.
|
|
|
|
- High-speed (USB OTG2.0 Peripheral for High-, Full- and Low-speed)
|
|
- Full-speed (USB OTG1.1 Peripheral for Full- and Low-speed)
|
|
|
|
config TINYUSB_RHPORT_HS
|
|
bool "OTG2.0"
|
|
depends on IDF_TARGET_ESP32P4
|
|
config TINYUSB_RHPORT_FS
|
|
bool "OTG1.1"
|
|
endchoice
|
|
|
|
menu "TinyUSB DCD"
|
|
choice TINYUSB_MODE
|
|
prompt "DCD Mode"
|
|
default TINYUSB_MODE_DMA
|
|
help
|
|
TinyUSB DCD DWC2 Driver supports two modes: Slave mode (based on IRQ) and Buffer DMA mode.
|
|
|
|
config TINYUSB_MODE_SLAVE
|
|
bool "Slave/IRQ"
|
|
config TINYUSB_MODE_DMA
|
|
bool "Buffer DMA"
|
|
endchoice
|
|
endmenu # "TinyUSB DCD"
|
|
|
|
menu "TinyUSB task configuration"
|
|
config TINYUSB_NO_DEFAULT_TASK
|
|
bool "Do not create a TinyUSB task"
|
|
default n
|
|
help
|
|
This option allows to not create the FreeRTOS task during the driver initialization.
|
|
User will have to handle TinyUSB events manually.
|
|
|
|
config TINYUSB_TASK_PRIORITY
|
|
int "TinyUSB task priority"
|
|
default 5
|
|
depends on !TINYUSB_NO_DEFAULT_TASK
|
|
help
|
|
Set the priority of the default TinyUSB main task.
|
|
|
|
config TINYUSB_TASK_STACK_SIZE
|
|
int "TinyUSB task stack size (bytes)"
|
|
default 4096
|
|
depends on !TINYUSB_NO_DEFAULT_TASK
|
|
help
|
|
Set the stack size of the default TinyUSB main task.
|
|
|
|
choice TINYUSB_TASK_AFFINITY
|
|
prompt "TinyUSB task affinity"
|
|
default TINYUSB_TASK_AFFINITY_CPU1 if !FREERTOS_UNICORE
|
|
default TINYUSB_TASK_AFFINITY_NO_AFFINITY
|
|
depends on !TINYUSB_NO_DEFAULT_TASK
|
|
help
|
|
Allows setting TinyUSB tasks affinity, i.e. whether the task is pinned to
|
|
CPU0, pinned to CPU1, or allowed to run on any CPU.
|
|
|
|
config TINYUSB_TASK_AFFINITY_NO_AFFINITY
|
|
bool "No affinity"
|
|
config TINYUSB_TASK_AFFINITY_CPU0
|
|
bool "CPU0"
|
|
config TINYUSB_TASK_AFFINITY_CPU1
|
|
bool "CPU1"
|
|
depends on !FREERTOS_UNICORE
|
|
endchoice
|
|
|
|
config TINYUSB_TASK_AFFINITY
|
|
hex
|
|
default FREERTOS_NO_AFFINITY if TINYUSB_TASK_AFFINITY_NO_AFFINITY
|
|
default 0x0 if TINYUSB_TASK_AFFINITY_CPU0
|
|
default 0x1 if TINYUSB_TASK_AFFINITY_CPU1
|
|
|
|
config TINYUSB_INIT_IN_DEFAULT_TASK
|
|
bool "Initialize TinyUSB stack within the default TinyUSB task"
|
|
default n
|
|
depends on !TINYUSB_NO_DEFAULT_TASK
|
|
help
|
|
Run TinyUSB stack initialization just after starting the default TinyUSB task.
|
|
This is especially useful in multicore scenarios, when we need to pin the task
|
|
to a specific core and, at the same time initialize TinyUSB stack
|
|
(i.e. install interrupts) on the same core.
|
|
endmenu # "TinyUSB task configuration"
|
|
|
|
menu "Descriptor configuration"
|
|
comment "You can provide your custom descriptors via tinyusb_driver_install()"
|
|
config TINYUSB_DESC_USE_ESPRESSIF_VID
|
|
bool "VID: Use Espressif's vendor ID"
|
|
default y
|
|
help
|
|
Enable this option, USB device will use Espressif's vendor ID as its VID.
|
|
This is helpful at product develop stage.
|
|
|
|
config TINYUSB_DESC_CUSTOM_VID
|
|
hex "VID: Custom vendor ID"
|
|
default 0x1234
|
|
depends on !TINYUSB_DESC_USE_ESPRESSIF_VID
|
|
help
|
|
Custom Vendor ID.
|
|
|
|
config TINYUSB_DESC_USE_DEFAULT_PID
|
|
bool "PID: Use a default PID assigned to TinyUSB"
|
|
default y
|
|
help
|
|
Default TinyUSB PID assigning uses values 0x4000...0x4007.
|
|
|
|
config TINYUSB_DESC_CUSTOM_PID
|
|
hex "PID: Custom product ID"
|
|
default 0x5678
|
|
depends on !TINYUSB_DESC_USE_DEFAULT_PID
|
|
help
|
|
Custom Product ID.
|
|
|
|
config TINYUSB_DESC_BCD_DEVICE
|
|
hex "bcdDevice"
|
|
default 0x0100
|
|
help
|
|
Version of the firmware of the USB device.
|
|
|
|
config TINYUSB_DESC_MANUFACTURER_STRING
|
|
string "Manufacturer name"
|
|
default "Espressif Systems"
|
|
help
|
|
Name of the manufacturer of the USB device.
|
|
|
|
config TINYUSB_DESC_PRODUCT_STRING
|
|
string "Product name"
|
|
default "Espressif Device"
|
|
help
|
|
Name of the USB device.
|
|
|
|
config TINYUSB_DESC_SERIAL_STRING
|
|
string "Serial string"
|
|
default "123456"
|
|
help
|
|
Serial number of the USB device.
|
|
|
|
config TINYUSB_DESC_CDC_STRING
|
|
depends on TINYUSB_CDC_ENABLED
|
|
string "CDC Device String"
|
|
default "Espressif CDC Device"
|
|
help
|
|
Name of the CDC device.
|
|
|
|
config TINYUSB_DESC_MSC_STRING
|
|
depends on TINYUSB_MSC_ENABLED
|
|
string "MSC Device String"
|
|
default "Espressif MSC Device"
|
|
help
|
|
Name of the MSC device.
|
|
endmenu # "Descriptor configuration"
|
|
|
|
menu "Massive Storage Class (MSC)"
|
|
config TINYUSB_MSC_ENABLED
|
|
bool "Enable TinyUSB MSC feature"
|
|
default n
|
|
help
|
|
Enable TinyUSB MSC feature.
|
|
|
|
config TINYUSB_MSC_BUFSIZE
|
|
depends on TINYUSB_MSC_ENABLED
|
|
int "MSC FIFO size"
|
|
default 512 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
|
|
default 8192 if IDF_TARGET_ESP32P4
|
|
range 64 8192 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
|
|
range 64 32768 if IDF_TARGET_ESP32P4
|
|
help
|
|
MSC FIFO size, in bytes.
|
|
|
|
config TINYUSB_MSC_MOUNT_PATH
|
|
depends on TINYUSB_MSC_ENABLED
|
|
string "Mount Path"
|
|
default "/data"
|
|
help
|
|
MSC Mount Path of storage.
|
|
|
|
menu "TinyUSB FAT Format Options"
|
|
choice TINYUSB_FAT_FORMAT_TYPE
|
|
prompt "FatFS Format Type"
|
|
default TINYUSB_FAT_FORMAT_ANY
|
|
help
|
|
Select the FAT filesystem type used when formatting storage.
|
|
|
|
config TINYUSB_FAT_FORMAT_ANY
|
|
bool "FM_ANY - Automatically select from FAT12/FAT16/FAT32"
|
|
|
|
config TINYUSB_FAT_FORMAT_FAT
|
|
bool "FM_FAT - Allow only FAT12/FAT16"
|
|
|
|
config TINYUSB_FAT_FORMAT_FAT32
|
|
bool "FM_FAT32 - Force FAT32 only"
|
|
|
|
config TINYUSB_FAT_FORMAT_EXFAT
|
|
bool "FM_EXFAT - Force exFAT (requires exFAT enabled)"
|
|
|
|
endchoice
|
|
|
|
config TINYUSB_FAT_FORMAT_SFD
|
|
bool "FM_SFD - Use SFD (no partition table)"
|
|
default n
|
|
help
|
|
Format as a Super Floppy Disk (no partition table).
|
|
This is typical for USB flash drives and small volumes.
|
|
endmenu
|
|
|
|
endmenu # "Massive Storage Class"
|
|
|
|
menu "Communication Device Class (CDC)"
|
|
config TINYUSB_CDC_ENABLED
|
|
bool "Enable TinyUSB CDC feature"
|
|
default n
|
|
help
|
|
Enable TinyUSB CDC feature.
|
|
|
|
config TINYUSB_CDC_COUNT
|
|
int "CDC Channel Count"
|
|
default 1
|
|
range 1 2
|
|
depends on TINYUSB_CDC_ENABLED
|
|
help
|
|
Number of independent serial ports.
|
|
|
|
config TINYUSB_CDC_RX_BUFSIZE
|
|
depends on TINYUSB_CDC_ENABLED
|
|
int "CDC FIFO size of RX channel"
|
|
default 512
|
|
range 64 10000
|
|
help
|
|
CDC FIFO size of RX channel.
|
|
|
|
config TINYUSB_CDC_TX_BUFSIZE
|
|
depends on TINYUSB_CDC_ENABLED
|
|
int "CDC FIFO size of TX channel"
|
|
default 512
|
|
help
|
|
CDC FIFO size of TX channel.
|
|
endmenu # "Communication Device Class"
|
|
|
|
menu "Musical Instrument Digital Interface (MIDI)"
|
|
config TINYUSB_MIDI_COUNT
|
|
int "TinyUSB MIDI interfaces count"
|
|
default 0
|
|
range 0 2
|
|
help
|
|
Setting value greater than 0 will enable TinyUSB MIDI feature.
|
|
endmenu # "Musical Instrument Digital Interface (MIDI)"
|
|
|
|
menu "Human Interface Device Class (HID)"
|
|
config TINYUSB_HID_COUNT
|
|
int "TinyUSB HID interfaces count"
|
|
default 0
|
|
range 0 4
|
|
help
|
|
Setting value greater than 0 will enable TinyUSB HID feature.
|
|
endmenu # "HID Device Class (HID)"
|
|
|
|
menu "Device Firmware Upgrade (DFU)"
|
|
choice TINYUSB_DFU_MODE
|
|
prompt "DFU mode"
|
|
default TINYUSB_DFU_MODE_NONE
|
|
help
|
|
Select which DFU driver you want to use.
|
|
|
|
config TINYUSB_DFU_MODE_DFU
|
|
bool "DFU"
|
|
|
|
config TINYUSB_DFU_MODE_DFU_RUNTIME
|
|
bool "DFU Runtime"
|
|
|
|
config TINYUSB_DFU_MODE_NONE
|
|
bool "None"
|
|
endchoice
|
|
config TINYUSB_DFU_BUFSIZE
|
|
depends on TINYUSB_DFU_MODE_DFU
|
|
int "DFU XFER BUFFSIZE"
|
|
default 512
|
|
help
|
|
DFU XFER BUFFSIZE.
|
|
endmenu # Device Firmware Upgrade (DFU)
|
|
|
|
menu "Bluetooth Host Class (BTH)"
|
|
config TINYUSB_BTH_ENABLED
|
|
bool "Enable TinyUSB BTH feature"
|
|
default n
|
|
help
|
|
Enable TinyUSB BTH feature.
|
|
|
|
config TINYUSB_BTH_ISO_ALT_COUNT
|
|
depends on TINYUSB_BTH_ENABLED
|
|
int "BTH ISO ALT COUNT"
|
|
default 0
|
|
help
|
|
BTH ISO ALT COUNT.
|
|
endmenu # "Bluetooth Host Device Class"
|
|
|
|
menu "Network driver (ECM/NCM/RNDIS)"
|
|
choice TINYUSB_NET_MODE
|
|
prompt "Network mode"
|
|
default TINYUSB_NET_MODE_NONE
|
|
help
|
|
Select network driver you want to use.
|
|
|
|
config TINYUSB_NET_MODE_ECM_RNDIS
|
|
bool "ECM/RNDIS"
|
|
|
|
config TINYUSB_NET_MODE_NCM
|
|
bool "NCM"
|
|
|
|
config TINYUSB_NET_MODE_NONE
|
|
bool "None"
|
|
endchoice
|
|
|
|
config TINYUSB_NCM_OUT_NTB_BUFFS_COUNT
|
|
int "Number of NCM NTB buffers for reception side"
|
|
depends on TINYUSB_NET_MODE_NCM
|
|
default 3
|
|
range 1 6
|
|
help
|
|
Number of NTB buffers for reception side.
|
|
Can be increased to improve performance and stability with the cost of additional RAM requirements.
|
|
Helps to mitigate "tud_network_can_xmit: request blocked" warning message when running NCM device.
|
|
|
|
config TINYUSB_NCM_IN_NTB_BUFFS_COUNT
|
|
int "Number of NCM NTB buffers for transmission side"
|
|
depends on TINYUSB_NET_MODE_NCM
|
|
default 3
|
|
range 1 6
|
|
help
|
|
Number of NTB buffers for transmission side.
|
|
Can be increased to improve performance and stability with the cost of additional RAM requirements.
|
|
Helps to mitigate "tud_network_can_xmit: request blocked" warning message when running NCM device.
|
|
|
|
config TINYUSB_NCM_OUT_NTB_BUFF_MAX_SIZE
|
|
int "NCM NTB Buffer size for reception size"
|
|
depends on TINYUSB_NET_MODE_NCM
|
|
default 3200
|
|
range 1600 10240
|
|
help
|
|
Size of NTB buffers on the reception side. The minimum size used by Linux is 2048 bytes.
|
|
NTB buffer size must be significantly larger than the MTU (Maximum Transmission Unit).
|
|
The typical default MTU size for Ethernet is 1500 bytes, plus an additional packet overhead.
|
|
To improve performance, the NTB buffer size should be large enough to fit multiple MTU-sized
|
|
frames in a single NTB buffer and it's length should be multiple of 4.
|
|
|
|
config TINYUSB_NCM_IN_NTB_BUFF_MAX_SIZE
|
|
int "NCM NTB Buffer size for transmission size"
|
|
depends on TINYUSB_NET_MODE_NCM
|
|
default 3200
|
|
range 1600 10240
|
|
help
|
|
Size of NTB buffers on the transmission side. The minimum size used by Linux is 2048 bytes.
|
|
NTB buffer size must be significantly larger than the MTU (Maximum Transmission Unit).
|
|
The typical default MTU size for Ethernet is 1500 bytes, plus an additional packet overhead.
|
|
To improve performance, the NTB buffer size should be large enough to fit multiple MTU-sized
|
|
frames in a single NTB buffer and it's length should be multiple of 4.
|
|
|
|
endmenu # "Network driver (ECM/NCM/RNDIS)"
|
|
|
|
menu "Vendor Specific Interface"
|
|
config TINYUSB_VENDOR_COUNT
|
|
int "TinyUSB Vendor specific interfaces count"
|
|
default 0
|
|
range 0 2
|
|
help
|
|
Setting value greater than 0 will enable TinyUSB Vendor specific feature.
|
|
endmenu # "Vendor Specific Interface"
|
|
endmenu # "TinyUSB Stack"
|