CYPD3120 - Reading/Writing Configuration via Bootloader

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
KyTr_1955226
Level 6
Level 6
250 sign-ins 10 likes given 50 solutions authored

Hi there,

I have something a little strange happening when I attempt to read/write a new configuration to the CYPD3120.  It only occurs when using the bootloader to read the configuration on the currently active firmware.  It also has a similar problem when trying to use the bootloader to update both firmwares at the same time.

In short, it looks like the CYPD3120 enters the bootloader with no trouble. 

The Message window reads:

Starting CCG configuration read over HID interface.

Jump to Boot command successful.

It will then wait there for around 30 seconds before giving me a failure messagebox "Configuration read failed".

The Message window at this point shows:

Error: Failed to find handle to HID Device

Error: Failed to read CCGx configuration.

Error: DLL call returned error while reading the configuration

However, if after the Jump to Boot command successful message I power cycle the CYPD3120, it reads out the configuration with no problems.

Reading the configuration of the firmware that is not currently active has no problems at all.

Anyone know why this might be or how to fix it?

0 Likes
1 Solution

Hi Lisa,

Setting a longer Re-Enumeration timeout has no effect, however I do think I've found the problem and it's the design on our end.

What's happening is our design is a USB-C sink, and when we enter the bootloader, the USB-C_CTRL0 and USB-C_CTRL1 pins are not turning on the FETs that provides input (USB-C_PWR) to a 12V regulator that powers other electronics onboard.  One of the parts that is powered by this regulator is a USB 2.0 mux, which points the USB 2.0 to either the CYPD3120 (for configuration/billboard/bootloading) or a PSoC5LP for other operations. 

When we enter the bootloader, the FETs are turned off, the mux never receives power, so the EZPD Configuration Utility can't find the Bootloader HID interface.

We are going to address the problem in the next prototype of the design to make the USB2.0 mux dependent on VBUS rather than USB-C_PWR, and that should allow us to connect to the USB HID Bootloader interface when VBUS_C_CTRL0 and VBUS_C_CTRL1 haven't yet been set.

View solution in original post

0 Likes
2 Replies
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi ,

Could you please kindly use a lager value Re-enumeration timeout to try it again?

pastedImage_0.png

Best Regards,

Lisa

0 Likes

Hi Lisa,

Setting a longer Re-Enumeration timeout has no effect, however I do think I've found the problem and it's the design on our end.

What's happening is our design is a USB-C sink, and when we enter the bootloader, the USB-C_CTRL0 and USB-C_CTRL1 pins are not turning on the FETs that provides input (USB-C_PWR) to a 12V regulator that powers other electronics onboard.  One of the parts that is powered by this regulator is a USB 2.0 mux, which points the USB 2.0 to either the CYPD3120 (for configuration/billboard/bootloading) or a PSoC5LP for other operations. 

When we enter the bootloader, the FETs are turned off, the mux never receives power, so the EZPD Configuration Utility can't find the Bootloader HID interface.

We are going to address the problem in the next prototype of the design to make the USB2.0 mux dependent on VBUS rather than USB-C_PWR, and that should allow us to connect to the USB HID Bootloader interface when VBUS_C_CTRL0 and VBUS_C_CTRL1 haven't yet been set.

0 Likes