CCG3PA: Error: FLASH READ Row failed

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
JoLu_3455101
Level 4
Level 4
5 likes given 5 solutions authored 25 replies posted

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

0 Likes
1 Solution

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

View solution in original post

0 Likes
5 Replies
JoLu_3455101
Level 4
Level 4
5 likes given 5 solutions authored 25 replies posted

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?

0 Likes

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

0 Likes

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

0 Likes

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

0 Likes

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

0 Likes