| 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 | |