USB Contact Mating Sequence

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USB Contact Mating Sequence

Jump to solution
2,153 Views
jeffthompson
Contributor V

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?

Labels (1)
0 Kudos
Reply
1 Solution
2,110 Views
jeffthompson
Contributor V

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.

View solution in original post

0 Kudos
Reply
3 Replies
2,111 Views
jeffthompson
Contributor V

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.

0 Kudos
Reply
2,134 Views
jeffthompson
Contributor V
So, I modified my code to disable USB power and start a 1-second timer when the EHCI device attached state is Attached, but the CDC device state is not Attached. I connect the device, but it would not enumerate.
 
I then changed the timeout to 2 seconds. Still not working. I really don't what else I can do. I can't change the connection method, but I have contacted the device developer to see if there is anything they can do on their end. Fortunately, it's all in the same company, and the device and the host only need to work with each other.
0 Kudos
Reply
2,139 Views
gusarambula
NXP TechSupport
NXP TechSupport

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

0 Kudos
Reply