Programming the Serial EEPROMs on the FX2 Development Kit Board

Question: How do I program the serial EEPROMs on the FX2 development kit board?

 

Answer:

Programming the Large Serial EEPROM

To program the large serial EEPROM on the CY3681 FX2 Development Kit board, please use the following sequence (Refer to the "FX2 Getting Started.pdf" file, included in the kit software, section 5.4 for switch context). These steps will allow you to recover from a corrupt EEPROM and successfully program a new EEPROM image every time.

1) Unplug the USB cable from the dev board
2) Set Switch2 to Off (Disable EEPROM boot)
3) Set Switch1 to Large (Select the large EEPROM)
4) Connect the USB cable to the development board
5) At this point you should see the development board enumerate as "Cypress EZ-USB FX2 (68613) - EEPROM Missing" under Windows Device Manager
6) Set Switch2 to On (Enable EEPROM boot)
7) Open the EZ-USB Control Panel, ensuring that the Target drop-down select field is "FX2"
8) By clicking on the "Download" button, navigate your way to the Vend_Ax directory and download Vend_Ax.hex
9) On the EZ-USB Control Panel's "Vend Req" Toolbar, use the following to fill in the required fields:

Req=0xA9 (The 0xA9 vendor request is used to access large EEPROMs that have a dual-byte addressing scheme)
Value=0x0000
Index=0xBEEF
Length=16
Dir=1 IN

10) Press the "Vend Req" button to verify that the 16 bytes displayed in the data window are NOT CD CD CD .. CD. If the data is all CD, then it cannot read the EEPROM (Not a large type such as the 24LC64). Otherwise, continue.

11) On the EZ-USB Control Panel's "Vend Req" Toolbar, use the following to fill in the required fields:

Req=0xA9
Value=0x0000
Index=0xBEEF
Length=1
Dir=0 OUT
Hex Bytes= 00

12) Press the "Vend Req" button to blast the first byte in the EEPROM.

13) On the EZ-USB Control Panel's "Vend Req" Toolbar, use the following to fill in the required fields:

Req=0xA9
Value=0x0000
Index=0xBEEF
Length=1
Dir=1 IN

14) Press "Vend Req" to verify that the first byte in the EEPROM is 0x00
15) Unplug the USB cable from the development board
16) Connect the USB cable to the development board
17) At this point you should still see the development board enumerate as "Cypress EZ-USB FX2 (68613) - EEPROM Missing" under Windows Device Manager because the first byte in the EEPROM is 0x00 (an invalid signature byte).
18) To program the EEPROM image, on the EZ-USB Control Panel, press the "EEPROM" button and navigate to and select filename.iic, where filename is the name you have given to your EEPROM image
19) Wait for the EEPROM file open dialog to completely disappear (1-2 minutes)

20) To verify the EEPROM load, repeat steps 9) and 10) above to read the EEPROM and verify that the first eight bytes contain a sequence starting with 0xC2 and followed in reverse endian by either our default VID/PID/DID, or your own if you used the VID and PID parameters in the hex2bix utility when you created your .iic file.

21) If the EEPROM was programmed correctly, then plug out the board, set switch2 to On and switch1 to Large and your board should load and enumerate with your firmware.

The steps for programming the Large EEPROM on the CY4611 FX2 ATA reference design board are the same as above, except that you should ignore the Switch1 instructions and substitute the JP1 jumper for Switch2.


Programming the Small Serial EEPROM

To program the small serial EEPROM on the CY3681 FX2 Development Kit board, please use the following sequence (Refer to the "FX2 Getting Started.pdf" file, included in the kit software, section 5.4 for switch context). These steps will allow you to recover from a corrupt EEPROM and successfully hand program a small EEPROM every time.

1) Unplug the USB cable from the dev board
2) Set Switch2 to Off (Disable EEPROM boot)
3) Set Switch1 to Small (Select the small EEPROM)
4) Connect the USB cable to the development board
5) At this point you should see the development board enumerate as "Cypress EZ-USB FX2 (68613) - EEPROM Missing" under Windows Device Manager
6) Set Switch2 to On (enable EEPROM boot)
7) Open the EZ-USB Control Panel, ensuring that the Target drop-down select field is "FX2"
8) By clicking on the "Download" button, navigate your way to the Vend_Ax directory and download Vend_Ax.hex
9) On the EZ-USB Control Panel's "Vend Req" Toolbar, use the following to fill in the required fields:

Req=0xA2 (the 0xA2 vendor request is used to access small EEPROMs that have a single-byte addressing scheme)
Value=0x0000
Index=0xBEEF
Length=16
Dir=1 IN

10) Press the "Vend Req" button to verify that the 16 bytes displayed in the data window are NOT CD CD CD .. CD. If the data is all CD, then it cannot read the EEPROM (not a small type such as the 24LC00). Otherwise, continue.

11) On the EZ-USB Control Panel's "Vend Req" Toolbar, use the following to fill in the required fields:

Req=0xA2
Value=0x0000
Index=0xBEEF
Length=1
Dir=0 OUT
Hex Bytes= 00

12) Press the "Vend Req" button to blast the first byte in the EEPROM.

13) On the EZ-USB Control Panel's "Vend Req" Toolbar, use the following to fill in the required fields:

Req=0xA2
Value=0x0000
Index=0xBEEF
Length=1
Dir=1 IN

14) Press "Vend Req" to verify that the first byte in the EEPROM is 0x00
15) Unplug the USB cable from the dev board
16) Connect the USB cable to the dev board
17) At this point you should still see the dev board enumerate as "Cypress EZ-USB FX2 (68613) - EEPROM Missing" under Windows Device Manager because the first byte in the EEPROM is 0x00 (An invalid signature byte).
18) On the EZ-USB Control Panel's "Vend Req" Toolbar, use the following to fill in the required fields:

Req=0xA2
Value=0x0000
Index=0xBEEF
Length=8
Dir=0 OUT

19) Use the Hex Bytes field to enter the sequence C0 followed by VID(LSB), VID(MSB), PID(LSB), PID(MSB), DID(LSB), DID(MSB), and configuration byte that you want. If you use the sequence C0 B4 04 81 00 00 00 00, then the board will automatically enumerate and load the default Keil Monitor. This is useful for debugging.

20) To verify the EEPROM load, repeat steps 9) and 10) above to read the EEPROM and verify that the first eight bytes contain a sequence as mentioned in step 19) above.

21) If the EEPROM was programmed correctly, then plug out the board, set switch2 to On and switch1 to Small, plug in the board, and your board should load and enumerate as a "Cypress EZ-USB FX2 Development Board". The green BKPT/Monitor light should also be lit, indicating a successful download of the default Keil monitor program.