The use of USBX with Vendor Devices
For context, I am new to both USB programming and the STM products (and tools), so I apologize in advance for my ignorance.
I am working with an old, existing system, which utilized a USB connection to a processor/EEPROM to store information (a dongle). As some of the parts have gone end-of-life, we are looking to move to new hardware. The hope is to mimic the software running on the old hardware so that the new part will work with existing systems in the field, as well as new products. Our existing system runs on Linux with a custom driver communicating with the dongle, and from what I can tell has been coded up as a "vendor device" instead of a "class device".
Anyhow, the engineering department selected the STM32C071RBT6 as an appropriate part and have provided a prototype which I am using for development along with the following:
STM32CubeIDE v2.0.0
STM32CubeMX v6.16.1
STM32C0 series v1.4.0
To get started with STM, I've created a "custom HID" project following the guidance of several examples. So I'm using the USBX middleware. After getting everything up and running and stepping through the code, it seems that the fact that the dongle is configured as a "HID" based device is not compatible with a "Vendor Device". I can see the "Vendor request IN" on the USB analyzer, but the response is not what I'm expecting (one byte). (It's getting interpreted as a "HID command set idle")........ What I'm really after is to know if I'm heading in a sane direction.
Can the STM32C071RBT6/USBX/custom HID combination be made to work as a "vendor device"?
If so, is it reasonable to massage the "custom HID" project into a "vendor Device" one?
Is there some better combination of MCU/middleware to achieve this?
How do developers normally address existing systems that utilize "vendor devices"?
Any advise would be greatly appreciated.
Thanks,
NBC
