2024-03-19 02:04 PM
2024-03-19 04:54 PM
"error code 000000000000A" is same as "Code 10". 0xA is 10.
Basically this means that your firmware does not behave well. Fails some CDC requests or sends bad data. The initial USB enumeration was successful so Windows has detected the device and assigned it to the CDC driver.
Happy debugging.
2024-03-19 06:38 PM - edited 2024-03-19 06:43 PM
Is this a result of the drivers? Would there be a solution to this? My guess is if the issue persists it wouldn't be sufficient to use the USB CDC communication protocol, right?
2024-03-19 08:03 PM - edited 2024-03-19 08:04 PM
CDC and its Windows driver emulate legacy COM ports and have certain protocol overhead.
But don't just blame the in-box Windows drivers, they are very well tested against a lot of various hardware.
For a custom "application specific" device, a plain bulk pipe (and an interrupt pipe if needed) has minimal overhead. Windows has in-box driver named winusb for such devices, and usermode access library for it. The libusb for Windows also can be used with this.
A problem with SPI or I2C is that a PC or Mac cannot connect to that without yet another adapter. STM32H7 has also 100 Mb/s Ethernet so you may want to use network instead of full-speed USB ( ~ 10 Mbit/s).