Skip to main content
H.Aoki
Associate
February 9, 2023
Question

Hi. We are using your company's NUCLEO-G071RB and X-NUCLEO-SRC1M1 to evaluate USB-PD. We were able to confirm the output voltage is 5V, but if I want to change the output voltage to 9V or 15V, how would I build the proxy?

  • February 9, 2023
  • 2 replies
  • 1576 views

..

This topic has been closed for replies.

2 replies

Filippo Bonaccorso
Associate
February 9, 2023

Hi H.Aoki,

you can use CN4 to retrieve power from an external power source (you may provide).

On FW, inside usbpd_dpm_user.c file you may see USBPD_DPM_SetupNewPower calling USBPD_PWR_IF_SetProfile handling different profile requests. In case of FIXED (as I assume) you have to fill BSP_USBPD_PWR_VBUSSetVoltage_Fixed at your convenience. For instance acting on CN4 GPIOs to change voltage.

I hope it helps.

Filippo

H.Aoki
H.AokiAuthor
Associate
February 10, 2023

Hi Filippo.

Thank you for your reply.

Could you tell me how to build the firmware

(to fill BSP_USBPD_PWR_VBUSSetVoltage_Fixed at my convenience),

and how to set the I2C registers and values?

Filippo Bonaccorso
Associate
February 10, 2023

Hello,

CN4 offer you a way to connect an additional power source (through SOURCE and GND pins). Thus the power comes from outside. There's a 3.3V to supply any additional electronics.

There're other two pins, named I2C_xx, that are connected to MCU and could be used as I2C. These may act on the external power source to obtain the needed voltage level. Let me highlight two possible use cases:

  • The simplest one is to use these pins as GPIO acting on the voltage divider used by almost all Power Supply ICs. You could see how it is done on a flyback controller on this. It is the same on any DCDC as well, you have to properly act on the Fedback pin of the regulator.
  • You could use I2C peripheral in case you have "more intelligent" power supply. For instance there's STPD01 DCDC that can be controlled by I2C.
  • Other more sofisticated way.

 BSP_USBPD_PWR_VBUSSetVoltage_Fixed is intended as a function provided by Board Support Package (which means the code supporting your board) used to control, among all, those pins acting on the power. This is application dependent and it is your responsibility.

Said this, we could detail more and more on FW and HW with many other configurations. If you could detail on your application use case (even privately) I can forward you to right people.

Do not hesitate to comment

Filippo