There is a good chance that it seen 500 mA and decided that it was not enough. If they felt the need to actively sense this, they must know that the board needs more and refused to power up the device.
Assuming that the board in question is STM32U5 Nucleo-64 board (MB1841), then the document mentions that they try to follow the USB spec:
The Nucleo-64 board and its shield can be powered from the STLINK-V3EC USB connector (CN1), but only the STLINK-V3EC circuit is powered before USB enumeration because the host PC only provides 100 mA to the board at that time. During the USB enumeration, the Nucleo-64 board requests 500 mA power from the host PC.
• If the host can provide the required power, the U5 power switch is enabled, the green LED (LD3) is turned ON, and the Nucleo-64 board and its shield can consume up to 500 mA.
• If the host is not able to provide the requested current, the enumeration fails. the U5 power switch remains OFF and the MCU part including the extension board is not powered. As a consequence, the green LED (LD3) remains OFF. In this case, it is recommended to use an external 5 V power source.
So, they don't assume that host can provide more than 100 mA before the enumeration. It is possible that this causes additional issues, since nobody in history of USB ever did that.
And they have hardware current limiter. This thing is very over-engineered for no reason.
Yes, it is somewhat overengineered, but I'm assuming the base design is the same among all STLINK V3 models that have a USB-C connection. I see no reason why not - the "overengineered" versions would otherwise be more the standalone products than the ones embedded in Nucleo boards, which, as I said, make up for most of the cost of the board actually.
No, there is zero reason it would ever need to draw more than 500 mA under normal use. The only reason it could need more is again to power more power hungry targets, but that should be a choice of the user, not something strictly enforced. Certainly, the Nucleo-64 boards don't need any more than this unless you power extra stuff through them. The STM32F7 itself and surrounding components only draw a fraction of this.
The firmware is the same for all STLINK V3 with a STM32F723 as far as I can tell, so they must all do the same thing as long as they have USB-C (which I didn't know not all do for some odd reason).
This is a questionable decision anyway. The problem, once "debugged", is *not* that the board would require getting more than 500 mA. This isn't it. The problem is that it absolutely requires cables with a pull-up resistor if using USB-C to USB-A cables, and it turns out that there are many out there that don't, and that work fine with most devices out there. I happen to have plenty of those and only a couple cables that have pull-up resistors.
If the pull-up resistor is not in the cable, the voltage will just read ~0V, which I'm assuming now the firmware on the STLINK V3 (
those again with USB-C since this is strictly a USB-C related issue) considers "faulty" and doesn't initialize the USB controller at all.
There are a few threads about it on ST forums, and I consider their answers to be, at least, incomplete and not explaining what the core of the problem is. They just say things like "use better cables because this device is USB HS and needs better quality cables", somehow implying that it would be a signal integrity issue, while it's absolutely not. Whether those cables are conforming or not is another story - they are probably not, but I guarantee you that you probably have as many of them as I do.
So, if anyone runs into this, you'll know what it is and you'll find here the reason that you won't find elsewhere (at least that I could find).
For people designing USB-C devices, I recommend not doing the same thing, unless you actually need for sure more than 500 mA right from the start.
Handle the current limit only after the device has enumerated and give users a fallback mode that only uses max. 500 mA. Otherwise you're going to have tons of technical support to do for no reason. Just my 2 cents.