I'm working with a non-standard USB connection method and MCUXpresso USB SDK. If the device and host contact mating sequence is GND, then D+, then D-, then Vbus, the device enumerates. But if the mating sequence is reversed, it does not.
Is there a specification for the contact mating sequence?
Is there some way I can poll to see if there is a connected device, or to force an enumeration attempt?
Solved! Go to Solution.
I replied to the email notice, but Outlook couldn't send it for some reason. I'm using the MIMXRT1062DVJ6A as a host. The USB SDK is what came with MCUXpresso 2.6.2 (it's what we started and and its too late in the development cycle to change). I ended up looking for (kEHCIDeviceAttached == ehciInstance->deviceAttached) && (kStatus_DEV_Attached != cdcInstance->deviceState), then disabling Vbus to the connector, tearing down and rebuilding the USB stack, and enabling Vbus to connector. It's a bit of sledge hammer approach, but it works reliably. The device immediately enumerates and communicates.
I replied to the email notice, but Outlook couldn't send it for some reason. I'm using the MIMXRT1062DVJ6A as a host. The USB SDK is what came with MCUXpresso 2.6.2 (it's what we started and and its too late in the development cycle to change). I ended up looking for (kEHCIDeviceAttached == ehciInstance->deviceAttached) && (kStatus_DEV_Attached != cdcInstance->deviceState), then disabling Vbus to the connector, tearing down and rebuilding the USB stack, and enabling Vbus to connector. It's a bit of sledge hammer approach, but it works reliably. The device immediately enumerates and communicates.
Hello jeffthompson,
Standard connectors usually have the GND and VBUS pins elongated in relation to the Data pins as to have power first and then proceed with the enumeration so I wouldn’t recommend your current sequence.
It’s possible that it works as the data signals are present when the power is enabled. The other way around you would have VBUS present, but no ground reference signal and the data pins cannot function properly this way.
Would you please provide more details on your setup? For example, which i.MXRT you are using and is it working as host or device? If you are running a specific demo please also let us know.
Regards,
Gustavo