Problems with enumerating DFU/Serial on Windows 10/11
Posted: Sat Nov 05, 2022 4:43 pm
I am using Roger's (libmaple) DFU bootloader and the libmaple CDC serial USB drivers on a Bluepill board. I am both using a commercially purchased Bluepill and one I designed and built myself so I know that I know it contains a real STM32F103CBT6:
https://github.com/profdc9/STM32alt
So I can get the devices to be recognized on one particular Lenovo laptop most of the time. For example, if I flash the DFU bootloader using a ST-Link on a new Bluepill board, it will be recognized as Maple DFU as shown in the device manager. The other board I built myself also enumerates ok.
On another Lenovo laptop and a Lenovo tablet, it says for both "The last USB you connected to this computer malfunctioned, and Windows does not recognize it." These show up in the device manager without any VID/PID. I have tried two different USB cables. I have verified that both boards have a 1.5k resistor to +3.3V of the USB+ line. I have tried it plugged into the computer itself, into a USB 3 hub, and into a USB 2 hub. I have tried it with the USB port providing power to the Bluepill and with an external 5V supply providing power to the Bluepill. I can otherwise use the Bluepill ok by programming it over ST-LINK and seeing the output (for example of a Blink sketch) over the serial port using a USB serial dongle.
It does not enumerate if I use the DFU bootloader, or if I directly write a sketch to the Bluepill that implements USB CDC serial so it should enumerate immediately as a USB CDC serial device, so I don't think it could be a problem with just the bootloader implementation.
Is there some issue with some USB chipsets and/or USB XHCI drivers under windows that make them unable to recognize the libmaple or STM32F1? My laptop has an NVIDIA USB chipset, and my tablet as an Intel USB chipset.
I apologize for the long message but I spent many hours trying to get this to work, since I have used libmaple for years without problems.
Thanks for any help!
https://github.com/profdc9/STM32alt
So I can get the devices to be recognized on one particular Lenovo laptop most of the time. For example, if I flash the DFU bootloader using a ST-Link on a new Bluepill board, it will be recognized as Maple DFU as shown in the device manager. The other board I built myself also enumerates ok.
On another Lenovo laptop and a Lenovo tablet, it says for both "The last USB you connected to this computer malfunctioned, and Windows does not recognize it." These show up in the device manager without any VID/PID. I have tried two different USB cables. I have verified that both boards have a 1.5k resistor to +3.3V of the USB+ line. I have tried it plugged into the computer itself, into a USB 3 hub, and into a USB 2 hub. I have tried it with the USB port providing power to the Bluepill and with an external 5V supply providing power to the Bluepill. I can otherwise use the Bluepill ok by programming it over ST-LINK and seeing the output (for example of a Blink sketch) over the serial port using a USB serial dongle.
It does not enumerate if I use the DFU bootloader, or if I directly write a sketch to the Bluepill that implements USB CDC serial so it should enumerate immediately as a USB CDC serial device, so I don't think it could be a problem with just the bootloader implementation.
Is there some issue with some USB chipsets and/or USB XHCI drivers under windows that make them unable to recognize the libmaple or STM32F1? My laptop has an NVIDIA USB chipset, and my tablet as an Intel USB chipset.
I apologize for the long message but I spent many hours trying to get this to work, since I have used libmaple for years without problems.
Thanks for any help!