Here's the background of what I am trying to accomplish:
- I need my microcontroller (NXP i.MX RT series) to communicate with a USB device (power meter) which is just a CDC Device that will appear as a VCP. (I will simply call it 'the device' from here on to make things simple)
Here's the issue:
- With the NXP SDK's example USB CDC Host project (loaded on my NXP eval board), the device is shown as 'not supported' when it is connected to my eval board.
- I also set up one of my STM32L4 eval board with USB CDC Device example code just for the sake of testing, and it is successfully attached and enumerated when connected to my NXP eval board.
- Info below is per USB-IF standards
- With USBView, I was able to see that the device's Device Class descriptor is 0x00, which means that this is an Interface Class Defined Device.
- Looing at the Interface Descriptor section, I can see... bInterfaceClass = 0x02 (Communications and CDC Control, per USB-IF) bInterfaceSubClass = 0x02 bInterfaceProtocol = 0x01 So, this is a Communications (CDC Control) USB Device Interface Class device
- However, the device does not have the CDC Data Interface Class (0x0A), something that a regular USB CDC device, like my STM32L4 eval board mentioned above, has.
My question to experts out there:
- Assuming Data Interface Class is not required for a given CDC device, how does the USB CDC host handle the data transfers? Does it happen over the Control Interface?
- Anyone who is experienced with NXP i.MX RT series MCUs know how to turn this device into a 'supported' CDC device and recognized by the MCU?
Thank you for any thoughts and insights!