USB Contact Mating Sequence

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

USB Contact Mating Sequence

跳至解决方案
2,154 次查看
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?

标签 (1)
标记 (1)
0 项奖励
回复
1 解答
2,111 次查看
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 项奖励
回复
3 回复数
2,112 次查看
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 项奖励
回复
2,135 次查看
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 项奖励
回复
2,140 次查看
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 项奖励
回复