The sequence of steps are as follows:
1. Power is applied to the device from the USB bus.
2. The Reset circuit holds the EZ-USB AN21xx chip in Reset briefly until the PLL (Phase Lock Loop) locks to the 24 MHz oscillator, at which time the EZ-USB AN21xx chip emits a stable CLKOUT (24Mhz).
3. The EZ-USB AN21xx USB Core detects an EEPROM plugged into the I2C- compatible bus. The Core reads the VID and PID from the EEPROM and overwrites its hardwired VID and PID. (Refer to the EZ-USB Series 2100 Technical Reference Manual for more details on how this is accomplished.)
4. The Host detects that the device is plugged in and asks the device for its IDs (via a GetDescriptor request to the Cores Endpoint 0), most importantly Vendor ID (VID) and Product ID (PID). The device responds with IDs that represent your non-downloaded device: (Vendor=XYZ Corp, Product=GIZMOLOADER).
5. The Host PC sees these IDs and knows to load your Loader Driver (based on the EZLOADER example in the Driver directory on the CD).
6. Your Loader Driver performs a Anchor download of the embedded EZ-USB AN21xx firmware into the chip.
7. The Loader Driver then releases the Reset of the 8051 core and your firmware application code starts running.
8. Your EZ-USB AN21xx firmware electrically disconnects the chip from the USB bus.
9. The host, seeing the original device disappear, discards the Loader Driver from host memory.
10. Your EZ-USB AN21xx firmware reconnects the EZ-USB to the USB bus.
11. The Host detects that your device is plugged in and asks the device for its IDs.
12. The EZ-USB AN21xx firmware responds with IDs that represent a your fully downloaded and configured device: (Vendor=XYZ Corp, Product=GIZMO).
13. The Host PC sees these IDs and knows to load a Class Driver or your Custom Device Driver (based on the Generic Driver example).
14. The Host Driver and EZ-USB AN21xx firmware are now loaded and running and perform the data transfers and control functions necessary for your application.
You may also have a Windows application that calls your device driver that sends and receives data.