Programming the Serial EEPROMs on the EZ-USB® FX2LP™ Development Kit Board – KBA88247

Version: **

 

Question: How do you program the serial EEPROMs on the EZ-USB® FX2/FX2LP development kit board?

 

Answer:

 

Programming the Large Serial EEPROM

To program the large serial EEPROM on the CY3684 FX2LP development kit board, please use the following sequence (refer to EZ-USB Development Kit User Guide.pdf, included in the kit software). 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 development 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 FX2LP - EEPROM Missing” under Windows® Device Manager.
  6.   Set Switch2 to On (enable EEPROM boot).
  7.   Open the CyConsole – EZ-USB Interface.
  8.   By clicking Download, navigate your way to the “Vend_Ax” directory and download Vend_Ax.hex.
  9.   On the EZ-USB Interface’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.   Click Vend Req to verify that the 16 bytes displayed in the data window are NOT CD CD CD .. CD. If the data is all CD, then “Vend Req” cannot read the EEPROM (not a large type such as the 24LC64). Otherwise, continue.
  11.   On the CyConsole – EZ-USB Interface’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.   Click Vend Req to blast the first byte in the EEPROM.
  13.   On the CyConsole – EZ-USB Interface’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.   Click 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 FX2LP - 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 CyConsole - EZUSB Interface, click EEPROM 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 to read the EEPROM and verify that the first eight bytes contain a sequence starting with 0xC2 and followed in reverse endian by either the default vendor ID (VID) / product ID (PID) / device ID (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 the preceding steps, 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 CY3684 FX2LP development kit board, please use the following sequence (refer to EZ-USB Development Kit User Guide.pdf, included in the kit software). 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 development 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 FX2LP - EEPROM Missing” under Windows Device Manager.
  6.   Set Switch2 to On (enable EEPROM boot).
  7.   Open the CyConsole – EZ-USB Interface.
  8.   By clicking Download, navigate your way to the “Vend_Ax” directory and download Vend_Ax.hex.
  9.   On the CyConsole – EZ-USB Interface’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.   Click Vend Req to verify that the 16 bytes displayed in the data window are NOT CD CD CD .. CD. If the data is all CD, then “Vend Req” cannot read the EEPROM (not a small type such as the 24LC00). Otherwise, continue.
  11.   On the CyConsole – EZ-USB Interface’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.   Click Vend Req to blast the first byte in the EEPROM.
  13.   On the CyConsole – EZ-USB Interface’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.   Click 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 FX2LP - EEPROM Missing” under Windows Device Manager because the first byte in the EEPROM is 0x00 (an invalid signature byte).
  18.   On the CyConsole – EZUSB Interface’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 the 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 to read the EEPROM and verify that the first eight bytes contain a sequence as mentioned in step 19.
  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 LED should also be lit, indicating a successful download of the default Keil monitor program.