Troubleshooting SPI / I2C Programming in FX3 – KBA94604

Version 3

    Version: *A

     

    Question:

    How do I resolve the “Programming Failed” error in the Cypress Control Center when trying to program the image file for SPI / I2C boot?

     

    Answer:

    Follow these steps to troubleshoot on different devices:

     

    1) Troubleshooting on FX3 DVK Rev 3 (CYUSB3KIT-001)

     

         If you are trying to program in a FX3 DVK, ensure the following jumper settings are done on the FX3 DVK:

     

    • SPI Boot:
      • J101 – 2-3 Shorted
      • J102 – 2-3 Shorted
      • J103 – 2-3 Shorted
      • J104 – 2-3 Shorted
      • J148 – 2-5 Shorted or 3-4 shorted

    • I2C Boot:
      Make sure one or more compatible I2C EEPROMs are connected to the DVK with a size large enough to accommodate the image file.
      • J42 – 1-2 shorted
      • J45 – 1-2 shorted
      • J134  - Voltage compatible with the EEPROM is selected. 1.8 V > short 2-7; 2.5 V > short 3-6; 3.3 V > short 4-5.

     

    2) Troubleshooting on Super Speed Explorer Kit (CYUSB3KIT-003)

    This kit does not support SPI boot by default. For I2C programming, make sure J4 is shorted (ON). After programming, J4 is open to enable booting from I2C.

     

    3) Troubleshooting on Custom Board

    If you are trying to program I2C/ SPI on your own board, confirm the connectivity of the signal lines by probing the lines when trying to program. Make sure that the part of I2C EEPROM / SPI flash complies with the information provided in the application note: AN76405 - EZ-USB® FX3™ Boot Option. Ensure that the VIO4 voltage is compatible with SPI flash or the VIO5 voltage is compatible with I2C EEPROM.

     

    Confirm if the size of the flash/EEPROM is greater than the size of your image file.

     

    For testing your I2C / SPI connection, you can load our I2C / SPI example firmware into the RAM of FX3 and try to write data to the devices and read back the same. The examples are available in the FX3 SDK in the following locations:

     

    • For SPI Read / Write: <FX3 SDK INSTALLATION PATH> \ 1.3\firmware\serialif_examples\cyfxusbspiregmode
    • For I2C Read / Write:  <FX3 SDK INSTALLATION PATH> \ 1.3\firmware\serialif_examples\cyfxusbi2cregmode