| | 12 | |
| | 13 | Relevant documentation extraction: |
| | 14 | |
| | 15 | {{{ |
| | 16 | 3.5 USB Boot Methods |
| | 17 | During the power-up sequence, internal logic checks the I2C- |
| | 18 | compatible port for the connection of an EEPROM whose first |
| | 19 | byte is either 0xC0 or 0xC2. If found, it uses the VID/PID/DID |
| | 20 | values in the EEPROM in place of the internally stored values |
| | 21 | (0xC0), or it boot-loads the EEPROM contents into internal |
| | 22 | RAM (0xC2). If no EEPROM is detected, FX2 enumerates |
| | 23 | using internally stored descriptors. The default ID values for |
| | 24 | FX2 are VID/PID/DID (0x04B4, 0x8613, 0xxxyy). |
| | 25 | |
| | 26 | 3.6 ReNumeration™ |
| | 27 | Because the FX2’s configuration is soft, one chip can take on |
| | 28 | the identities of multiple distinct USB devices. |
| | 29 | |
| | 30 | When first plugged into USB, the FX2 enumerates automati- |
| | 31 | cally and downloads firmware and USB descriptor tables over |
| | 32 | the USB cable. Next, the FX2 enumerates again, this time as |
| | 33 | a device defined by the downloaded information. This |
| | 34 | patented two-step process, called ReNumeration™, happens |
| | 35 | instantly when the device is plugged in, with no hint that the |
| | 36 | initial download step has occurred. |
| | 37 | |
| | 38 | Two control bits in the USBCS (USB Control and Status) |
| | 39 | register control the ReNumeration process: DISCON and |
| | 40 | To simulate a USB disconnect, the firmware sets |
| | 41 | DISCON to 1. To reconnect, the firmware clears DISCON to 0. |
| | 42 | |
| | 43 | Before reconnecting, the firmware sets or clears the RENUM |
| | 44 | bit to indicate whether the firmware or the Default USB Device |
| | 45 | will handle device requests over endpoint zero: if RENUM = 0, |
| | 46 | the Default USB Device will handle device requests; if RENUM |
| | 47 | = 1, the firmware will. |
| | 48 | |
| | 49 | }}} |
| | 50 | |