5 Replies Latest reply on Jan 29, 2020 9:49 PM by SananyaM_56

    CCG4 Firmware update using another CCG4 via CC line

    PrM_1403381

      Hi,

       

      I am using CCG4(CYPD4126) in my design. I need some info regarding CCG4 FW update.

       

      As I know CCG4(CYPD4126) firmware can be updated by using Miniprog3.

       

      We can use CCG4(CYPD4126)  to update the firmware of CCG3PA(CYPD3171) via CC line,(i.e, PD, VDM messages are used to update CCG3PA FW using CCG4).

      So my question is can we update CCG4(CYPD4126) firmware using another CCG4(CYPD4126) via CC line like, as above mentioned ?

      If Yes, How it can achieved. Please let me know the procedure

       

      Thanks & Regards

      Prasanna

        • 1. Re: CCG4 Firmware update using another CCG4 via CC line
          SananyaM_56

          Hi Prasanna,

           

          You can update the complete firmware in *.hex format using MiniProg3. However the application firmware (in *.cyacd format) cant be upgraded using CCG4 as the bootloader only supports firmware upgrade over I2C interface. In our EVK, a USB-Serial device is used to upgrade the firmware through its I2C interface.

           

          Best Regards,

          Sananya

          • 2. Re: CCG4 Firmware update using another CCG4 via CC line
            PrM_1403381

            Hi Sananya,

             

            Thanks fro your quick response.

             

            So CCG4 FW can't updated via CC communications like CCG3PA FW update right ? (for clarification)

             

            Yes, in EVK USB-Serial device is used to upgrade the firmware through I2C Interface.

             

            If I want to update CCG4 firmware (*.cyacd format) using I2C interface how it can be achieved. Do have any document for custom program implementation. Ex : How *.cyacd file can be decoded and send the data via I2C for CCG4 programming.

             

            Because, in my custom product design I have connected I2C lines of CCG4 to Cypress FX3(master), So I can implement I2C programming of CCG4 using FX3 as master. Is there any document that I can refer to CCG4 firmware upgrade via I2C.

             

            I have few more queries regarding CCG4

            1. In CCG4(CYPD4126), what is the use case of EC_INT pin. It is connected to U7.19 ? Since in CYPD4126-40LQXI_notebook source code it is not used or is ot being used in library source code ? If it is used in library source code, how I can customize ?

            2. HPI_IF is used for I2C Communication from USB-Serial connection in CY4532 Power board schematic (U7)

                 In CYPD4126-40LQXI_notebook source code I didn't find the usage, I need to used I2C communication for other commands to execute in CCG4, So how i can handle I2C data in user space.

            3. As per your input CCG3PA supports CC boot loader and CCG4 supports I2C boot loader. If I want to change the boot loader how i can change.?

                 For Ex : I would like to add CC boot loader to CCG4 or I2C boot loader to CCG3PA. Do i have access to modify the bootloader.

             

            In CYPD4126 form EC commands will be sent over I2C(HPI_IF), and this I2C handlers are used in library function. If I need to handle I2C commands in CYPD4126-40LQXI_notebook source code in user space, How can be handled ?, Since in CCGx_Host_SDK_UserGuide it is mentioned that HPI user extension supported.

             

            Thanks in advance.

             

            Best Regards

            Prasanna

            • 3. Re: CCG4 Firmware update using another CCG4 via CC line
              SananyaM_56

              Hello Prasanna,

               

              Yes, you can update it using an I2C interface as per the CCG4 bootloader.

              For your custom implementation, please refer to the HPI spec for using the HPI interface to send data over the I2C lines. We have the same implemented in our USB-Serial device as an EC and the EZ-PD Configuration Utility for the host application.

               

              1. The CYPD4126-40LQXI code used in the CY4532 board is not present with the EVK files and is not the same as CYPD4126-40LQXI notebook code which I think you are referring to from the host SDK. The I2C_EC_INT pin is used for the HPI interface communication between the CCG4 and the USB-Serial as you mentioned and its details will be present in the HPI spec.

              2. You can use the HPI_IF which is included in the source code but not used and include your functions as per your requirement. Could you please elaborate on how you would like to handle the I2C data in user space?

              3. Yes it is possible to implement your custom bootloader and update it through SWD lines. Please refer to the bootloader source code from the CCGx Host and Power SDK as an example for your implementation.

               

              Best Regards,

              Sananya

              • 4. Re: CCG4 Firmware update using another CCG4 via CC line
                PrM_1403381

                Hi Sananya,

                 

                I am able to use the I2C bootloader instead of CC bootloader for CYPD3171(CCG3PA) pb project and I used Bootloader host Tool from PSoC creator. And it is working. and I used miniprog3 as a I2C programmer.

                image_2020_01_18T05_21_52_603Z.png

                In my design I have connected Cypress FX3 to I2C pins of CCG3PA, So I have to use FX3 instead of Miniprog. So How I can use *.cyacd file to make a chunk of data for FW update using Cypress FX3. Can I use this as a reference to have my own host programmer utility.

                https://www.cypress.com/documentation/application-notes/an73503-psoc-usb-hid-bootloader

                 

                Thanks & Regards

                Prasanna

                • 5. Re: CCG4 Firmware update using another CCG4 via CC line
                  SananyaM_56

                  Hi Prasanna,

                   

                  Since you have already modified the CC bootloader to now be an I2C bootloader, you can directly update the firmware using an I2C programmer. For using FX3 for the firmware update, you can refer to the HPI spec (if you have a NDA) to implement what is done using the USB-Serial Device. You can refer to the EZ-PD Configuration Utility for your custom host programmer utility.

                   

                  Best Regards,

                  Sananya