cancel
Showing results for 
Search instead for 
Did you mean: 

STUSB4710 programming

HSL
Associate

I am looking at using the STUSB4710 in a specific application where when the device is installed, it can be configured to support different maximum power output levels. 

So I really have a few questions.

Q1. The data sheet says "The STUSB4710 has a set of user-defined parameters that can be customized by NVM re-programming and/or by software through I2C interface." I can see some registers, SRC_PDO1-5, with zero information of what to write to these. Where is the information about how to program these registers?

Q2. Ideally, I'd like to write to NVM the appropriate configuration chosen. The data sheet says "The NVM re-programming is possible few times with a customer password." Though there is no information about how to write back to the NVM, or how many times this is supported. Where can I get this information?

Q3. If I go with dynamic writing of the SRC_PDO registers, can I use a separate 5V supply to the VDD pin, rather than what will be VBUS power output? Why, well if there is a short and the buck/boost goes into hiccup, the STUSB4710 would reboot and I'd be reverted back to the default configuration. I can disable the UVLO function according to the data sheet "...by software through the I2C interface (see Section 6 I²C register map).", though there is no register actually listed to be able to do this.

The overall design is to have a microcontroller that sets the appropriate configuration on startup, programs the buck-boost converter to 5V, then turns it on. As the SEL_PDO pins change to request different voltages, I can read these via the microcontroller and adjust the buck/boost programatically as required.

The STUSB4710 looks ideal, and the dev board GUI software seems to be able to do things that don't appear in the register set - such as setting how many PDO's are available. The public documentation seems to be lacking most of the detail to be able to use all the features.

3 REPLIES 3
Didier HERROUIN
ST Employee

Hello,

You will find attached an application note to write STUSB47xx registers.
It should answer to your question 1 and 2.

Regarding the reprogramming of the NVM, it is a  "few times programmable" memory. You should not perform more than 100 erase/write cycles, the fewer the better.

You can not use a microcontroller to program the power supply based on the PDO negotiated by the STUSB4710. Indeed, the USB standard specifies some rising/falling times when you switch from one PDO to another one: these timings (and other requirements like "response to Hard reset") have been implemented inside the STUSB4710, so that it could pass the certification. 

I do not recommend to implement it it manually.

PS: There are up to 5 programmable PDO inside the STUSB4710.

Hi, I didn't see an attachment to your reply?

Noted re the NVM. I can leave a single basic PDO active and set the higher voltage/power options dynamically on boot. If for any reason a port goes into fault, I can detect that and reset the PDO's.

I can change the voltage from the buck/boost in under 10ms from detecting the pin change, I could get that lower I think. The spec, if I've read it correctly, allows for up to 275ms for the voltage to settle, with a max slew of 30mv/usec. Presumably the STUSB4710 issues the PD_RDY when it detects the correct output voltage (assuming VDD is on VBUS). I guess I can scope out the USB-PD messages, measure when the PDO's change, and the voltage update from the demo board. My scope can decode USB-PD so it should be fairly easy. Otherwise I guess I will have to look elsewhere for a controller.