3 Replies Latest reply on Apr 16, 2020 4:14 AM by YatheeshK_36

    Updating PID in FX1 CY7C64713

    DaHa_4684521

      We need to update only the PID on our FX1 CY7C64713 device to be compatible with our new driver.

       

      We are using the onboard memory.  Is there a specific address that hex can be written to to easily update this, possibly through the A0 vendor command? Or any other method?

        • 1. Re: Updating PID in FX1 CY7C64713
          YatheeshK_36

          Hello,

           

          If you are using EEPROM as the external memory, then vend_ax firmware in the FX2LP DVK can be used to read and write to EEPROM.

          Please go through the application note in this link: https://www.cypress.com/documentation/application-notes/an45471-create-your-own-usb-vendor-commands-using-fx2lp

          Note: in the application note they have mentioned 0xa7 is for EEPROM write. Please use Req code: 0xa2, direction: out for EEPROM write and Req code: 0xa2, direction: IN for EEPROM read. The address of the EEPROM should be set in the firmware.

           

          Load the RAM with the vend_ax firmware, Write the data to be loaded in the "data to send box" , req code = 0xa2, direction: OUT, wvalue: starting address from which the data should be written. index: 0x0000

           

          Please refer to the attached screenshots where i have used vendor commands to update the small EEPROM contents.

           

          1. updating the VID and PID

           

           

          2. Retrieve the EEPROM contents

           

           

          3. Reset the device to load and enumerate with the newer values.

           

          Thanks,

          Yatheesh

          • 2. Re: Updating PID in FX1 CY7C64713
            DaHa_4684521

            Hi,

             

            We are using onboard memory, not external eeprom.

             

            Is there still a known address for this?

             

            On Thu, Apr 16, 2020 at 1:26 AM YatheeshK_36 <community-manager@cypress.com>

            • 3. Re: Updating PID in FX1 CY7C64713
              YatheeshK_36

              Hello,

               

              Yes you can update the VID and PID in the RAM using the 0xA0 vendor command.

               

              Follow the steps below:

               

              1. Open the .M51 file in the project  and search for DSCR, the corresponding value will give you the address location of the descriptors in the RAM.

              2.  Note down the value. In this case its 800H. This is the starting position of the device descriptors. The PID value is stored at an offset of 10 i.e. at address 0x080A. This address needs to be accessed for the value is to be changed.

              You can use control center for this.

               

              3. Hold the CPU in reset  using vendor command:

              req code: A0

              value: E600

              index: 0

              data: 1

              len: 1

               

              4. Change the PID value at 0x080A to 0x4455:

              req code: A0

              value: 0x080A

              data: 0x5544 (LSB first)

              index: 0

              len: 2

               

               

              5. Release the CPU reset:

              req code: A0

              value: E600

              index: 0

              data: 0

              len: 1

               

               

              6. Reconnect the device: Use the reconnect button.

               

               

              7. The device will now enumerate with the new PID:

               

               

              Best Regards,

              Yatheesh