cancel
Showing results for 
Search instead for 
Did you mean: 

How to program STUSB4700 on a custom board?

ABysa
Associate II
  1. Does the IC have to be powered through VDD or can it be powered through V_SYS? I tried powering the IC through V_SYS and connecting the I2C pins to Nucleo-F072RB and en.stsw-stusb001 GUI. My custom board is not detected (attached schematic for your reference).
  2. Default configuration keeps the PMOS off until CC negotiation. This cannot powered dead battery devices as they cannot communicate on CC without external power. Is there a work around for this?
5 REPLIES 5
Benoit FORET
ST Employee

​Hi,

1) VSYS should be OK if you intend to connect the GUI. Please check I2C interface pull-up and common GND between NUCLEO your custom board.

2) This is correct behaviour. As per USB-C standard, USB has become a cold socket: no power on VBUS until a SINK is explicitly identified on CC pin. Good dead battery capable devices are able to advertise themselves as a SINK thru CC line even without local power. This will make the SOURCE power the VBUS with 5V, which will allow the SINK controller to negotiate even more power in PD mode. Let me recommend STUSB4500 as certified Dead Battery capable SINK: can negotiate up to 100W without local power and any external software support.

rgds

ABysa
Associate II

Hi Benoit

Thank you answering my questions.

ABysa
Associate II

Please find my observations to your suggestions below.

1) VSYS should be OK if you intend to connect the GUI. Please check I2C interface pull-up and common GND between NUCLEO your custom board.

I powered the IC through VSYS from the 3.3V power supply on the NUCLEO board. I added additional pullup resistors to the I2C pins and used the GND pin from NUCLEO to power the IC. The board is still not detected in the GUI. On copying the Nucleo_F072RB_STUSB_NVM_config_1.6.bin file into the NUCLEO board the LD3 LED glows red and LD2 LED is lit very dimly in Green. None of the LEDs are blinking.

2) This is correct behaviour. As per USB-C standard, USB has become a cold socket: no power on VBUS until a SINK is explicitly identified on CC pin. Good dead battery capable devices are able to advertise themselves as a SINK thru CC line even without local power. This will make the SOURCE power the VBUS with 5V, which will allow the SINK controller to negotiate even more power in PD mode. Let me recommend STUSB4500 as certified Dead Battery capable SINK: can negotiate up to 100W without local power and any external software support.

We are currently using the STUSB4500 on the same board to sink 100W PD power. We have no issues connecting this IC to the NUCLEO board and programming it. It works perfectly.

STUSB4700 is working as per the USB-C standard as a cold socket and is advertising the default PDOs. I tested the output with the on board STUSB4500 and was getting only the 5v profile when the STUSB4500 is configured to input 5v, 12v and 20v profiles. Testing using a protocol tester I observed that the IC is restarting when I request for a higher voltage profile and the VBUS remains at 5v after the reset. Kindly request you to help debug the same.

Best

Amith

​Hi,

1) OK, Clear now.  As your are not working with STUSB evaluation board, but with your own board, you need to use the NUCLEO as an USB UART to I2C bridge, having a STD-A to mini-B cable connected from your laptop to the Nucleo, and then an I2C bus between the Nucleo and your Board. To make it work, let's use

NUCLEO_F072RB_STUSB_UART_NVM_config_1.04.bin instead of Nucleo_F072RB_STUSB_NVM_config_1.6.bin. You can find such a file in STUSB4500 soft package called STSW-STUSB002. Your hardware setting should be similar then to the config in p. 8 of STSW-STUSB002 Quick Start manual.

2) OK. After USB PD nego, STUSB4500 expects VBUS to make voltage transition from 5V to either 12V or 20V in your case. If this does not happen within the right amount of time (USB PD spec), then the IC will Hard Reset in order to force new type-C attach, USB PD nego etc... It looks your source is not making any voltage transition after a successful nego, or not at the right voltage or is too slow when doing it. You can test your SOURCE using STUSB4500 by downloading the STSW-STUSB003 soft package. There is inside a .bin file called: STUSB4500_PDO_rolling_DEMO.bin that will force STUSB4500 to negotiate 5V, 9V, 12V, 15V, 20V respectively.

Hope it helps

Benoit

Hi Benoit,

Thank you very much.

That was super helpful. I was able to connect my custom board and program it with STSW-STUSB002.

And with regards to the IC resetting problem, it seems to be the same issue you suggested. The buck converter is not providing a valid voltage for the higher voltage profiles. Will test the same with STUSB4500_PDO_rolling_DEMO.bin and update here if I'm able to find and solve the exact problem.

Amith