SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
When device ROM Code enumerates through USB, one may want to use his/her own vendor and product IDs rather than TI defaults. Product and Vendor IDs are transmitted as part of the USB Standard Device Descriptor during the USB device enumeration process (resp. idProduct and idVendor 16 bits fields).
Product IDs (PIDs) and vendor IDs (VIDs) are stored as part of device chip eFuses and readable from control module. The built-in USB ROM driver behaves differently whether the VID value is either left unfused, or fused with a customer-specific VID. Thus, two main cases are distinguished:
Table 34-35 lists standard USB ROM device descriptors. Table 34-36 lists USB ROM descriptor strings.
| Device Descriptor Field | Size (Bytes) | VID≠0x0000(1) (fused) | VID=0x0000 (unfused)(2) |
|---|---|---|---|
| bLength | 1 | 0x12 | |
| bDescriptorType | 1 | 0x1 | |
| bcdUSB | 2 | 0x0200 (if enumerated in USB2.0 HS or FS) | |
| bDeviceClass | 1 | 0xFF | |
| bDeviceSubClass | 1 | 0xFF | |
| bDeviceProtocol | 1 | 0xFF | |
| bMaxPacketSize0 | 1 | 0x40 (64 bytes if enumerated in USB2.0 HS or FS) | |
| idVendor | 2 | (VID value from control module) | 0x0451 |
| idProduct | 2 | (PID value from control module) | 0xD013 |
| bcdDevice | 2 | 0x0000 | |
| iManufacturer | 1 | 0x20 | 0x21 |
| iProduct | 1 | 0x24 | 0x25 |
| iSerialNumber | 1 | 0 | |
| bNumConfigurations | 1 | 1 | |
| String Descriptor | Size (bytes) | VID ≠ 0x0000 | VID=0x0000(unfused)(1) |
|---|---|---|---|
| Serial Number | N/A | ||
| Configuration | 8 | "pbc" | |
| Interface | 8 | "pbi" | |
| Product | 8/18 | N/A | <string> |
| Manufacturer | 8/36 | N/A | "Texas Instruments" |
The ROM code transmits additional descriptors as part of the enumeration procedure: configuration descriptor, device qualifier, language ID string, configuration string, interface string, and function string descriptors. Those do not depend on the VID or PID value.