
Chapter 7. Resets Page 7-3
7.3 Releasing the CPU Reset
Register bit CPUCS.0 resets the CPU. This bit is set to 1 at power-on, initially holding the CPU in
reset. There are three ways that the CPUCS.0 bit can be cleared to 0, releasing the CPU from
reset:
• By the host, as the final step of a RAM download.
• Automatically, at the end of an EEPROM load (assuming the EEPROM is correctly pro-
grammed).
• Automatically, when external ROM is used (EA=1) and no “C0” or “C2” EEPROM is
present.
FX2 firmware cannot put the CPU into reset by setting CPUCS.0 to 1; to the firmware, that bit is
read-only.
7.3.1 RAM Download
Once enumerated, the host can download code into the FX2 RAM using the “Firmware Load” ven-
dor request (Chapter 2, "Endpoint Zero"). The last packet loaded writes 0x00 to the CPUCS regis-
ter, which releases the CPU from reset.
7.3.2 EEPROM Load
Chapter 3, "Enumeration and ReNumeration™" describes the EEPROM boot loads in detail. At
power-on, the FX2 checks for the presence of an EEPROM on its I²C-compatible bus. If found, it
reads the first EEPROM byte. If it reads 0xC2 as the first byte, the FX2 downloads firmware from
the EEPROM into internal RAM. The last operation in a “C2” Load writes 0x00 to the CPUCS reg-
ister, which releases the CPU from reset.
After a “C2” Load, the FX2 sets the RENUM bit to 1, so the firmware will be responsible for
responding to USB device requests.
7.3.3 External ROM
The 128-pin FX2 can use off-chip program memory containing FX2 code and USB device descrip-
tors, which include the VID/DID/PID bytes. Because such a system does not require an I²C-com-
patible EEPROM to supply the VID/DID/PID, the FX2 automatically releases the CPU from reset
when:
• The EA pin is pulled high (indicating off-chip code memory),
and
Komentáře k této Příručce