; ; The example below places device and string descriptors, as well as ; application firmware, into the header of an EEPROM to be used with TUSB3410. ; Unlike with TUSB2136, TUSB3210, and TUSB5052, the firmware should NOT modify ; these descriptors programmatically, or it will overwrite the values below. ; Assuming they are not overwritten, these descriptors will be reported to the ; USB host. ; ; For 3410 virtual COM port applications (USB/serial bridge), use this template and do the ; following: ; ; 1) Customize the VID/PID in the device descriptor ; 2) Customize the strings ; 3) Prepare the serial number string for customization with an EEPROM ; programmer ; ;------------------------------------------------------------------------------ ; ; Commands: ; Header Generator uses these commands to generate an EEPROM header that is ; readable by the bootcode. Check the bootcode listings for more information about ; how each descriptor block is handled. ; ; USB_DEVICE_DESCRIPTOR, ; USB_CONFIGURATION_DESCRIPTOR ; USB_STRING_DESCRIPTOR ; AUTOEXEC_BINARY_FIRMWARE, ; END ; ; For string descriptors, '@' is used to generate SPACE character. ; Therefore it is not possible to include an '@' symbol in the descriptor ; string. ; ; ; Rules: ; ; 1. Before any descriptor blocks, create the device signature using DEVICE_NAME. ; This is the part number for the USB controller device (i.e., "TUSB3410") ; ; 2. The last descriptor block for any config file should always be END. ; ; 3. The header should contain, at a minimum, a device descriptor and string ; descriptors for manufacturer, product, and serial number. Firmware can ; also be included with AUTOEXEC_BINARY_FIRMWARE. ; ; 4. USB_STRING_DESCRIPTOR type only supports one language ID. ; ;------------------------------------------------------------------------------ ; ; Step 1 - Create device signature ; DEVICE_NAME = TUSB3410 ; Tells the bootcode there's a valid EEPROM header ; ; Do not change if this script is being used with ; ; TUSB3410. ; ;------------------------------------------------------------------------------ ; ; Step 2 - Create descriptor blocks ; DESCRIPTOR_BLOCK USB_DEVICE_DESCRIPTOR ; 0x12, ; size of this descriptor in bytes 0x01, ; device descriptor type 0x10, 0x01 ; USB spec 1.10 0xff, ; device class is vendor-specific 0x00 ; no sub-classes 0x00 ; no protocol 0x08 ; 8 bytes in endpoint 0 0x51, 0x04 ; vendor ID: 0x0451 (TI's VID) <-- ** ENTER CUSTOM VID ** 0x1A, 0x34 ; product ID: 0x341A <-- ** ENTER CUSTOM PID ** 0x01, 0x01 ; device release number = 1.01 0x01, ; index of string descriptor describing manufacturer 0x02, ; index of string descriptor describing product 0x03, ; index of string descriptor 0x01, ; number of possible configuration ; ; DESCRIPTOR_BLOCK USB_STRING_DESCRIPTOR ; ; string descriptors ; ; ; string index 0, language ID ; 0x04, ; length: 4 bytes 0x03, ; DESC_TYPE_STRING 0x09,0x04, ; english 0x0409 ; ;------------------------------------------------------ ; string index 1, Manufacturer ;------------------------------------------------------ ; 0x24, ; length: 36 bytes 0x03, ; DESC_TYPE_STRING 'T',0x00,'e',0x00,'x',0x00,'a',0x00, 's',0x00,'@',0x00,'I',0x00,'n',0x00, 's',0x00,'t',0x00,'r',0x00,'u',0x00, 'm',0x00,'e',0x00,'n',0x00,'t',0x00, 's',0x00, ; ; = "Texas Instruments" ; ;------------------------------------------------------ ; string index 2, Product ;------------------------------------------------------ ; 0x2A, ; length: 42 bytes 0x03, ; DESC_TYPE_STRING 'T',0x00,'U',0x00,'S',0x00,'B',0x00, '3',0x00,'4',0x00,'1',0x00,'0',0x00, '@',0x00,'E',0x00,'E',0x00,'C',0x00, 'o',0x00,'d',0x00,'e',0x00,'@',0x00, 'S',0x00,'e',0x00,'r',0x00,'@',0x00, ; ; = "TUSB3410 EECode Ser " ; ;------------------------------------------------------ ; string index 3, Serial # ;------------------------------------------------------ ; ; ** INCREMENT THIS NUMBER WITH EEPROM PROGRAMMER ** ; 0x12, ; length :18 bytes 0x03, ; DESC_TYPE_STRING '0',0x00,'0',0x00,'0',0x00,'0',0x00, '0',0x00,'0',0x00,'0',0x00,'1',0x00, ; ; = "00000001" ; ;------------------------------------------------------ ; string index Block Terminates ;------------------------------------------------------ ; 0x00,0x00 ; 0 bytes, end of block ;------------------------------------------------------------------------------ ; ; ;DESCRIPTOR_BLOCK AUTOEXEC_BINARY_FIRMWARE ; ;LOAD_BINARY_FILE = umpe3410.i51 ; ;------------------------------------------------------------------------------ ; Step 3 - Terminate the header ; DESCRIPTOR_BLOCK END ;