5 Replies Latest reply on Feb 16, 2020 6:50 PM by ShifangZ_26

    CCG3PA: Error: FLASH READ Row failed

    JoLu_3455101

      Hi,

       

      I have a CCG3PA (CYPD3171) project that I am able to update via SWD interface, but it gives me "FLASH READ Row failed" and "Failed to read CCGx Configration" errors when I tried to update over CC using CY4532 EVK running EZ-PD Configuration Utility. I don't know if this is related, but I recently updated my code base from CCGx Power SDK 3.2 to 3.3. I have my own firmware modifications (small mods nothing related to bootloader/bootloadable), but it is based on CCGx Power SDK 3.2/3.3 CLA example. I have some products that are sealed so I can't always update over SWD. Is there something different between Power SDK 3.2 and 3.3 that created this error? Is there a way to force update over CC?

       

      Thanks,

      Jonathan

       

      From EZ-PD Configuration Utility:

       

      Starting Device Discovery.

      0 HID devices found.
      1 USB-Serial Bridge devices found.
      PD contract established.

      Device Discovery completed.
      PD contract established.
      Restarting the target device
      Re-negotiating PD contract after switching target reset
      PD contract established.
      Device is in  FW -1  mode
      Error: FLASH READ Row failed
      Error: Failed to read CCGx configuration.
      Error: DLL call returned error while reading the configuration

        • 1. Re: CCG3PA: Error: FLASH READ Row failed
          JoLu_3455101

          One more note...Power SDK 3.3 has the following line/comment in main.c:

           

          /* CCG3PA only supports 1 Firmware image */

              sys_set_device_mode (SYS_FW_MODE_FWIMAGE_1);

           

          Power SDK 3.2 didn't have that line and seems to be able to suppose 2 FW images. Normally, one image is running while the other image is being updated. Could the change to 1 FW image cause the update over CC failure?

          • 2. Re: CCG3PA: Error: FLASH READ Row failed
            ShifangZ_26

            Hi ,

             

            1.   Please notice that SDK3.2, SDK3.3, and SDK3.4(this is latest one) are only support single FW image.

            2.   sys_set_device_mode (SYS_FW_MODE_FWIMAGE_1); is not the root cause for the CC bootloader or SWD programming. Especially, the SWD programming is supported by Cortex M0 whatever the booloader/firmware is pre-programmed or not.

            3. If you do not change the bootloader and do not remove SVID in the firmware, the SWD programming and CC bootloadeing should be supported.

             

            Please confirm that:

            1. Whether the device you are developing could be programmed via SWD?

            2. Whether the PCB board can be programmed via CC with Original firmware in the SDK?

            3. Whether the code you have been changed have been tested the CC bootloader feature on CY4532?

             

            Best Regards,

            Lisa

            • 3. Re: CCG3PA: Error: FLASH READ Row failed
              JoLu_3455101

              Hi Lisa,

               

              Thanks for your reply. Please see below for my response:

               

              1. Whether the device you are developing could be programmed via SWD?

              Yes, SWD interface always programs OK. Only program via CC fails.

               

              2. Whether the PCB board can be programmed via CC with Original firmware in the SDK?

              No, once I loaded my custom FW via SWD, I cannot program the original SDK firmware via CC. I can only reprogram any FW via SWD.

              The CC program failure seems to happen after I added code in main(while(1) {    }...) to check VBUS voltage (pd_hal_measure_vbus). However, I don't see how this would affect the bootloader since the code only affects the main FW application.

               

              3. Whether the code you have been changed have been tested the CC bootloader feature on CY4532?

              I am using the same unmodified bootloader (CYPD3171-24LQXQ_cc_sink_boot_3_1_1_1458_0_0_0_pb.elf/hex) as CY4532. I have the same bootloadable component in TopDesign.cysh as the CYPD3171 example in PSoC Creator 4.2/CCGx Power SDK 3.3.

               

              Please let me know if there is any explanation on why SWD programming works (i.e. somehow the bootloader got overridden?), but not programming via CC. My application seems to be running fine after programming with SWD. I cannot always program via SWD because some of our products are sealed.

               

              Thanks,

              Jonathan

              • 4. Re: CCG3PA: Error: FLASH READ Row failed
                JoLu_3455101

                Hi Lisa,

                 

                 

                Please disregard my last message. I was able to reprogramming my FW over CC again when I lower my bench power supply to ~4.95V (which is connected to VDDD on the PCB). I don't know why when I have a higher voltage (i.e. 5.15V), the CC programming fails. It's a strange problem that I didn't have previously (when I was still running CCGx Power SDK 3.2). If you have any ideas on why the VDDD voltage is so sensitive, please let me know.

                 

                 

                Thanks,

                Jonathan

                • 5. Re: CCG3PA: Error: FLASH READ Row failed
                  ShifangZ_26

                  Hi Jonathan,

                   

                  1. May I know which firmware project you are using?  CYPD3171-24LQXQ_cla? Or CYPD3171-24LQXQ_pb?

                  2. Could you please kindly share the waveform of VBUS, CC1, CC2, VDDD on your board with 5.15V and 4.95V?

                   

                  Best Regards,

                  Lisa