7 Replies Latest reply on Jun 18, 2020 9:21 PM by YatheeshK_36

    Clone eeprom CY7C68013A

    stgu_4707816

      I have a custom board using CY7C68013A with external eeprom.  I'm trying to see how I can clone the source code in the external eeprom from the cyconsole.  I need to flash multiple units with the same code embedded in the eeprom. 

       

      Any help would be greatly appreciated.

       

      Thank you,

        • 1. Re: Clone eeprom CY7C68013A
          YatheeshK_36

          Hello,

           

          Do you have the firmware file (.iic) ready with you to program it to an EEPROM of FX2LP or are you looking to retrieve the code from the EEPROM of an FX2LP device?

           

          Thanks,

          Yatheesh

          • 2. Re: Clone eeprom CY7C68013A
            stgu_4707816

            Hello,

             

            I'm looking to retrieve the code from the eeprom of the fx2lp device.

            • 3. Re: Clone eeprom CY7C68013A
              YatheeshK_36

              Hello,

               

              Please follow the below steps to retrieve the firmware.

               

              1. Connect the FX2LP to the host PC so that the device is recognized in the Control Center. This is necessary for retrieving the firmware.

              If EEPROM on the board is programmed with a firmware which does not detect the device in the Control center, then you need to disconnect the EEPROM and make the FX2LP enumerate as "No EEPROM Device"

               

               

              2. Make sure that the EEPROM is connected to FX2LP.

               

              3. Program the RAM of FX2LP with Vend_ax.hex firmware available in the FX2LP DVK package. Do not reset the device after programming the vend_ax firmware.

               

              4. Open the Control End point under the connected FX2LP Device and go to Data Transfers Tab.

               

              5. The Vend_ax firmware running on the RAM can be used to retrieve the contents on the EEPROM connected by executing the right vendor command.

              The firmware size on EEPROM should be known to retrieve the entire firmware, or you can retrieve the entire contents on the EEPROM by specifying the EEPROM size.

               

              0xa9 vendor command is used for uploading and downloading the firmware from the large EEPROM.

               

              Populate the fields under the Data Transfers Tab as below.

              Direction: In

              Req Type: Vendor.

              Target: Device

              Req code: 0xa9

              wValue: 0x0000 (start address of the EEPROM)

              wIndex: 0x0000

               

              Bytes to transfer : 10000 (size of firmware or the size of EEPROM in bytes)

              Here i have used 10000 as I have loaded the Bulkloop.iic file on EEPROM which is only 3KB.

               

               

              6. Use the Transfer File button and give a file name with .iic as the extension.

              example EERPOM.iic

               

              7. Click On Save.

               

              8. This will save the EEPROM contents on the file.

              End of firmware in the saved file can be located using the last bytes programmed to EEPROM, which is 0x80 0x01 0xE6 0x00

               

              If the last bytes are present in the Saved file, the file can be used to program the EEPROM of other devices FX2LP.

              The file size can also be trimmed to the last bytes on the EEPROM content.

               

              Thanks,

              Yatheesh

              • 4. Re: Clone eeprom CY7C68013A
                stgu_4707816

                Hello Yatheesh,

                 

                Thank this is really useful information. If I want to upload this downloaded iic file, would I need to use the exact eeprom or would a bigger eeprom with a different page buffer would as well?

                 

                Thank you again,

                • 5. Re: Clone eeprom CY7C68013A
                  YatheeshK_36

                  Hello,

                   

                  You can use EEPROM as large as 64KB in size, double byte.

                  Please refer to section 2.2 on page 4 in the FX2LP Boot Options application note.

                   

                  Regards,

                  Yatheesh

                  • 6. Re: Clone eeprom CY7C68013A
                    stgu_4707816

                    Hello this was very useful information thank you.

                     

                    One more issue I'm having is after I clone the eeprom and upload to new eeprom, the device is not functioning properly.  I used a USB analyzer and received the following USBD status below:

                     

                    10 0x00000000 0 $print instruction Direction "Up" 18.06.2020 09:42:32

                    10 0x00000000 136 URB urb {…} 18.06.2020 09:42:32

                    10 0x00000000 24 URB_HEADER UrbHeader {…} 18.06.2020 09:42:32

                    10 0x00000000 2 unsigned short Length 136 18.06.2020 09:42:32

                    10 0x00000002 2 URB_FUNCTION   Function URB_FUNCTION_CONTROL_TRANSFER (8) 18.06.2020 09:42:32

                    10 0x00000004 4 USBD_STATUS     Status { Status=STALL_PID (3221225476) } 18.06.2020 09:42:32

                    10 0x00000004 4 StatusCode     Status STALL_PID (3221225476) 18.06.2020 09:42:32

                     

                    The working unit has the following message below:

                     

                    10 0x00000000 0 $print instruction Direction "Up" 18.06.2020 09:46:39

                    10 0x00000000 136 URB urb {…} 18.06.2020 09:46:39

                    10 0x00000000 24 URB_HEADER UrbHeader {…} 18.06.2020 09:46:39

                    10 0x00000000 2 unsigned short Length 136 18.06.2020 09:46:39

                    10 0x00000002 2 URB_FUNCTION   Function URB_FUNCTION_CONTROL_TRANSFER (8) 18.06.2020 09:46:39

                    10 0x00000004 4 USBD_STATUS     Status { Status=SUCCESS (0); Type="Success" } 18.06.2020 09:46:39

                    10 0x00000004 4 StatusCode     Status SUCCESS (0) 18.06.2020 09:46:39

                    10 0x00000008 0 $print instruction     Type "Success" 18.06.2020 09:46:39

                     

                     

                    Any help would be greatly appreciated.

                     

                    Thank you,

                    • 7. Re: Clone eeprom CY7C68013A
                      YatheeshK_36

                      Hello,

                       

                      Can you please verify if the first byte in the saved file containing the EEPROM data is "0xC2" and the last bytes of the firmware i.e 0x80 0x01 0xE6 0x00 is also present in the saved file?

                      You can view the contents using any of the hex editors.

                       

                      If these two conditions are met, the EEPROM data saved is correct.

                      Please make sure that you are accessing the proper device when doing a data transfer through the control endpoint.

                       

                      You can also share the file with me and the vendor command you are using so that I can reproduce the issue.

                       

                      Thanks,

                      Yatheesh