Why Certain EZ-USB® FX2LP™ DVK Firmware Examples Fail Enumeration on Custom Boards? – KBA86725

Version 4

    Version: *A

     

    Translation - Japanese: 特定のEZ-USB®FX2LP™DVKファームウェアの例がカスタムボードでエニュメレートに失敗するのはなぜですか?– KBA86725- Community Translated (JA)

     

    Question: Certain firmware examples for EZ-USB® FX2LP™ (that come with CY3684 DVK) work on the Cypress DVK (CY3684), but when they are downloaded onto a custom board, do not enumerate. Why?

     

    Answer:

    Firmware examples provided by Cypress to demonstrate the capability of FX2LP are specifically designed for the CY3684 DVK. The DVK uses I/O expander ICs on I2C lines to accommodate the 7-segment LED display and push buttons.

    In some of the firmware examples, LED display/buttons are accessed using the EZUSB_WriteI2C(), EZUSB_ReadI2C() and EZUSB_WaitForEEPROMWrite() APIs. On custom boards, such a design may not exist and EZUSB_WaitForEEPROMWrite() API being a blocking function causes the firmware to freeze; therefore enumeration fails.

    Firmware Examples affected:

    1. Bulkloop
    2. CYStreamer
    3. hid_kb

     

    To overcome this issue, remove the following API calls from the firmware:

    EZUSB_WriteI2C();

    EZUSB_WaitForEEPROMWrite();