Pico Core
Loading...
Searching...
No Matches
usb_descriptors.c File Reference
#include "tusb.h"
#include "pico/unique_id.h"
Include dependency graph for usb_descriptors.c:

Macros

#define PICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE   0
 
#define USBD_MANUFACTURER   "Allen Institute"
 
#define USBD_PRODUCT   "Harp Device"
 
#define USBD_DESC_STR_MAX   (64)
 
#define USBD_VID   (0x2E8A)
 
#define USBD_PID   (0x000a)
 
#define TUD_RPI_RESET_DESC_LEN   9
 
#define USBD_DESC_LEN   (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN)
 
#define USBD_CONFIGURATION_DESCRIPTOR_ATTRIBUTE   (0)
 
#define USBD_MAX_POWER_MA   (250)
 
#define USBD_ITF_CDC   (0)
 
#define USBD_ITF_MAX   (2)
 
#define USBD_CDC_EP_CMD   (0x81)
 
#define USBD_CDC_EP_OUT   (0x02)
 
#define USBD_CDC_EP_IN   (0x82)
 
#define USBD_CDC_CMD_MAX_SIZE   (8)
 
#define USBD_CDC_IN_OUT_MAX_SIZE   (64)
 
#define USBD_STR_0   (0x00)
 
#define USBD_STR_MANUF   (0x01)
 
#define USBD_STR_PRODUCT   (0x02)
 
#define USBD_STR_SERIAL   (0x03)
 
#define USBD_STR_CDC   (0x04)
 
#define USBD_STR_RPI_RESET   (0x05)
 
#define TUD_RPI_RESET_DESCRIPTOR(_itfnum, _stridx)
 

Functions

const uint8_t * tud_descriptor_device_cb (void)
 
const uint8_t * tud_descriptor_configuration_cb (__unused uint8_t index)
 
const uint16_t * tud_descriptor_string_cb (uint8_t index, __unused uint16_t langid)
 

Variables

static const tusb_desc_device_t usbd_desc_device
 
static const uint8_t usbd_desc_cfg [USBD_DESC_LEN]
 
static char usbd_serial_str [PICO_UNIQUE_BOARD_ID_SIZE_BYTES *2+1]
 
static const char *const usbd_desc_str []
 

Macro Definition Documentation

◆ PICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE

#define PICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE   0

◆ TUD_RPI_RESET_DESC_LEN

#define TUD_RPI_RESET_DESC_LEN   9

◆ TUD_RPI_RESET_DESCRIPTOR

#define TUD_RPI_RESET_DESCRIPTOR ( _itfnum,
_stridx )
Value:
/* Interface */\
9, TUSB_DESC_INTERFACE, _itfnum, 0, 0, TUSB_CLASS_VENDOR_SPECIFIC, RESET_INTERFACE_SUBCLASS, RESET_INTERFACE_PROTOCOL, _stridx,

◆ USBD_CDC_CMD_MAX_SIZE

#define USBD_CDC_CMD_MAX_SIZE   (8)

◆ USBD_CDC_EP_CMD

#define USBD_CDC_EP_CMD   (0x81)

◆ USBD_CDC_EP_IN

#define USBD_CDC_EP_IN   (0x82)

◆ USBD_CDC_EP_OUT

#define USBD_CDC_EP_OUT   (0x02)

◆ USBD_CDC_IN_OUT_MAX_SIZE

#define USBD_CDC_IN_OUT_MAX_SIZE   (64)

◆ USBD_CONFIGURATION_DESCRIPTOR_ATTRIBUTE

#define USBD_CONFIGURATION_DESCRIPTOR_ATTRIBUTE   (0)

◆ USBD_DESC_LEN

#define USBD_DESC_LEN   (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN)

◆ USBD_DESC_STR_MAX

#define USBD_DESC_STR_MAX   (64)

◆ USBD_ITF_CDC

#define USBD_ITF_CDC   (0)

◆ USBD_ITF_MAX

#define USBD_ITF_MAX   (2)

◆ USBD_MANUFACTURER

#define USBD_MANUFACTURER   "Allen Institute"

◆ USBD_MAX_POWER_MA

#define USBD_MAX_POWER_MA   (250)

◆ USBD_PID

#define USBD_PID   (0x000a)

◆ USBD_PRODUCT

#define USBD_PRODUCT   "Harp Device"

◆ USBD_STR_0

#define USBD_STR_0   (0x00)

◆ USBD_STR_CDC

#define USBD_STR_CDC   (0x04)

◆ USBD_STR_MANUF

#define USBD_STR_MANUF   (0x01)

◆ USBD_STR_PRODUCT

#define USBD_STR_PRODUCT   (0x02)

◆ USBD_STR_RPI_RESET

#define USBD_STR_RPI_RESET   (0x05)

◆ USBD_STR_SERIAL

#define USBD_STR_SERIAL   (0x03)

◆ USBD_VID

#define USBD_VID   (0x2E8A)

Function Documentation

◆ tud_descriptor_configuration_cb()

const uint8_t * tud_descriptor_configuration_cb ( __unused uint8_t index)

◆ tud_descriptor_device_cb()

const uint8_t * tud_descriptor_device_cb ( void )

◆ tud_descriptor_string_cb()

const uint16_t * tud_descriptor_string_cb ( uint8_t index,
__unused uint16_t langid )

Variable Documentation

◆ usbd_desc_cfg

const uint8_t usbd_desc_cfg[USBD_DESC_LEN]
static
Initial value:
= {
TUD_CONFIG_DESCRIPTOR(1, USBD_ITF_MAX, USBD_STR_0, USBD_DESC_LEN,
}
#define USBD_ITF_MAX
Definition usb_descriptors.c:76
#define USBD_CDC_EP_CMD
Definition usb_descriptors.c:82
#define USBD_MAX_POWER_MA
Definition usb_descriptors.c:68
#define USBD_CDC_EP_IN
Definition usb_descriptors.c:84
#define USBD_CDC_IN_OUT_MAX_SIZE
Definition usb_descriptors.c:86
#define USBD_STR_0
Definition usb_descriptors.c:88
#define USBD_CDC_EP_OUT
Definition usb_descriptors.c:83
#define USBD_CONFIGURATION_DESCRIPTOR_ATTRIBUTE
Definition usb_descriptors.c:67
#define USBD_STR_CDC
Definition usb_descriptors.c:92
#define USBD_ITF_CDC
Definition usb_descriptors.c:74
#define USBD_CDC_CMD_MAX_SIZE
Definition usb_descriptors.c:85
#define USBD_DESC_LEN
Definition usb_descriptors.c:62

◆ usbd_desc_device

const tusb_desc_device_t usbd_desc_device
static
Initial value:
= {
.bLength = sizeof(tusb_desc_device_t),
.bDescriptorType = TUSB_DESC_DEVICE,
.bcdUSB = 0x0200,
.bDeviceClass = TUSB_CLASS_MISC,
.bDeviceSubClass = MISC_SUBCLASS_COMMON,
.bDeviceProtocol = MISC_PROTOCOL_IAD,
.bMaxPacketSize0 = CFG_TUD_ENDPOINT0_SIZE,
.idVendor = USBD_VID,
.idProduct = USBD_PID,
.bcdDevice = 0x0100,
.iManufacturer = USBD_STR_MANUF,
.iProduct = USBD_STR_PRODUCT,
.iSerialNumber = USBD_STR_SERIAL,
.bNumConfigurations = 1,
}
#define USBD_PID
Definition usb_descriptors.c:56
#define USBD_STR_PRODUCT
Definition usb_descriptors.c:90
#define USBD_STR_MANUF
Definition usb_descriptors.c:89
#define USBD_STR_SERIAL
Definition usb_descriptors.c:91
#define USBD_VID
Definition usb_descriptors.c:52

◆ usbd_desc_str

const char* const usbd_desc_str[]
static
Initial value:
= {
[USBD_STR_CDC] = "Board CDC",
}
#define USBD_MANUFACTURER
Definition usb_descriptors.c:36
static char usbd_serial_str[PICO_UNIQUE_BOARD_ID_SIZE_BYTES *2+1]
Definition usb_descriptors.c:130
#define USBD_PRODUCT
Definition usb_descriptors.c:42

◆ usbd_serial_str

char usbd_serial_str[PICO_UNIQUE_BOARD_ID_SIZE_BYTES *2+1]
static