
Chapter 3. Enumeration and ReNumeration™ Page 3-7
Bytes 1-6 of a C2 EEPROM can be loaded with VID / PID / DID bytes if it is desired at some point
to run the firmware with RENUM = 0 (i.e., FX2 logic handles device requests), using the EEPROM
VID / PID / DID rather than the development-only VID / PID / DID values shown in Table 3-3.
One or more data records follow, starting at EEPROM address 8. Each data record consists of a
10-bit Length field (0-1023) which indicates the number of bytes in the following data block, a 13-
bit Start Address (0-0x1FFF) for the data block, and the data block itself.
The last data record, which must always consist of a single-byte load of 0x00 to the CPUCS regis-
ter at 0xE600, is marked with a “1” in the most-significant bit of the Length field. Only the least-sig-
nificant bit (8051RES) of this byte is writable by the download; that bit is set to zero to bring the
CPU out of reset.
Serial EEPROM data can be loaded only into these three
on-chip
RAM spaces:
• Program / Data RAM at 0x0000-0x1FFF
• Data RAM at 0xE000-0xE1FF
• The CPUCS register at 0xE600 (only bit 0, 8051RES, is EEPROM-loadable).
General-Purpose Use of the I²C-Compatible Bus
The FX2’s I²C-compatible controller serves two purposes. First, as described in this chapter,
it manages the serial EEPROM interface that operates automatically at power-on to deter-
mine the enumeration method. Second, once the CPU is up and running, firmware can
access the I²C-compatible controller for general-purpose use. This makes a wide range of
standard I²C peripherals available to an FX2-based system.
Other I²C devices can be attached to the SCL and SDA lines as long as there is no address
conflict with the serial EEPROM described in this chapter. Chapter 13, "Input/Output"
describes the general-purpose nature of the I²C-compatible interface.
Comentarios a estos manuales