2024-05-10 09:57 AM - edited 2024-05-15 10:02 AM
We have a custom design using a STM32F373 and USB (USB micro connector). In the past this board has been updated via USB DFU and DFuSe Demo.
I am trying to use USB DFU to program the board in STM32CubeProgrammer v2.16, but it appears when the board is plugged into a USB C adapter, it does not correctly identify in Windows 11 64-bit (USB Device Descriptor Request Failed).
I've tested this board on 4 different PCs which make me think the USB C adapter and/or Windows 11 is causing the problem:
- The board correctly identified on PCs 1 and 2, which had USB A sockets and Windows 10. Board connected using USB micro to USB A cable.
- The board failed to identify on PCs 3 and 4, which had USB C sockets and Windows 11. Board connected using USB micro to USB A cable, and a USB A to USB C adapter (hub).
Is the system memory USB DFU bootloader compatible with USB C/USB 3.0?
Are there any known problems using USB A to C adapters with the USB DFU bootloader?
Notes on PCB design:
- USB D+/D- on STM32F373 are connected to the micro USB port's D+/-.
- USB D+ has a 1.5k ohm pullup resistor, connected to USB 5V.
- STM32F373 power during programming supplied by USB 5V, shifted to 3.3V by a linear regulator.
EDIT: This Adafruit USB C to USB Micro cable description states "Internally it has a 5.1Kohm pulldown, to make the USB C port configure itself for 5V, 500mA USB 2.0 standard," what is the pulldown on? I'm going to purchase this cable and see if I have better results, perhaps the adapters are trying to run at USB 3.0 speeds instead of USB 2.0.
https://www.adafruit.com/product/3878
EDIT2: For anyone else that might be having this problem, a USB C to USB Micro cable (no hub/adapter) fixed the issue for me and the device identifies correctly now.
Solved! Go to Solution.
2024-05-10 11:43 AM - edited 2024-05-10 11:50 AM
>- USB D+ has a 1.5k ohm pullup resistor, connected to USB 5V.
Really to 5V ?? Thats WRONG !
USB D+ -> 1.5k ohm pullup resistor to 3V3 !
+
try a USB-C -> micro-B cable , like this :
+
ed
Yes, the Adafruit USB C to USB Micro seems similar , try it.
2024-05-10 10:06 AM
I suspect the USB A to C adapters has a reduced wiring, causing the problems. Check other adapters.
2024-05-10 10:30 AM - edited 2024-05-10 10:31 AM
Thank you for the reply, I should have mentioned in the OP that I've tried numerous USB A to C adapters, including a Dell USB C dock, two different Dell USB A to C adapters, and another USB A to C hub by a company called Cowzuc, and the USB Device Descriptor request failed with all of them. I've used the Dell dock and adapter with other USB devices successfully.
2024-05-10 11:43 AM - edited 2024-05-10 11:50 AM
>- USB D+ has a 1.5k ohm pullup resistor, connected to USB 5V.
Really to 5V ?? Thats WRONG !
USB D+ -> 1.5k ohm pullup resistor to 3V3 !
+
try a USB-C -> micro-B cable , like this :
+
ed
Yes, the Adafruit USB C to USB Micro seems similar , try it.
2024-05-10 12:39 PM
@AScha.3 wrote:>- USB D+ has a 1.5k ohm pullup resistor, connected to USB 5V.
Really to 5V ?? Thats WRONG !
USB D+ -> 1.5k ohm pullup resistor to 3V3 !
Yeah that seemed weird to me (we inherited the design), since the micro is running on 3.3V, and I don't see the USB D+/- lines from the connector being level shifted so presumably they range from 0-5V? Strange that it works on some PCs anyway, but I've seen weirder things.
I'll get one of those cables and see if it helps, and see if there's a way to pullup to 3.3V instead.