2022-01-27 01:35 PM
Switched from another processor to the STM32H750 on updated boards, and trying to keep the PC communication the same so it is seamless (or as seamless as can be) for the user experience. Previous boards connected up to Windows as a Generic Bulk Device under the Universal Serial Bus devices in Windows Device Manager. We could then send and receive any number bytes between the Board and the Windows application with no added header like you get when functioning as a HID. Are there any USB reference guides/examples to go off of to get here or that would help point me in the right direction?
The "STM32 STLink" actually connects up how I am trying to get the USB on my board to function if that helps:
Thanks in advance,
John
2022-01-27 09:06 PM
Probably "WinUSB device" is what you want.
https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/automatic-installation-of-winusb
2022-01-31 10:26 AM
Thank you, Pavel.
This definitely seems like the right path! I was hoping to do this without needing to become too versed in the USB Configuration and Driver aspects of things (a more concrete example), but it seems like I'll need to do some digging and testing in order to understand what all I need to change and to get this to work correctly.
2022-02-01 05:48 AM
@JColl.6 Maybe you simply use a wrong USB connector of the board? If it shows "STLink" in device manager, this is the ST-Link connector. All one can get from it is the virtual COM port provided by ST-LINK (some UART on the STM32 side).
If you want STM32 to act as a native USB device, there should be a second USB connector on the board. If there's no second connector, make your own.
2022-02-01 07:15 AM
@Pavel A. I was able to Figure out where I needed to add in changes from here:
I had to edit the function USBD_LL_SetupStage() in usbd_core.c to check for the String Descriptor at 0xEE - and pass back a specific string and a Vendor Code (Table 1 in the Link), and then respond back to the Vendor Descriptor of the Vendor Code I passed back in the response to 0xEE with specific bytes and strings (Table 2 in the link).
Seems to be working after that. Now I just need to dig in and see if it gives me the functionality I was hoping for.