Cypress FX3 Enumeration

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
PrM_1403381
Level 4
Level 4
First like received First like given Welcome!

Hi,

I am using "USBBulkLoopAutoSignal" application in Cypress FX3 DVK, CYUSB3KIT-003 and I used USB Device Tree Viewer, when I connect FX3 DVK to the Host Device will detect in Device tree viewer properly. As shown in below image.

pastedImage_0.png

But after I disconnect the FX3 also I am seeing warning message on the port where Cypress FX3 USB Bulkloop Example Device detected in USB tree viewer as shown below.

pastedImage_1.png

I am using SDK Version 1.3.4. Do you have any idea ? what could be the reason a low speed Device detected in Device tree viewer.

It is tested on Windows 8.1 and the Driver version I used is  DriverVer=08/21/2014,1.2.3.10.

Best Regards

Prasanna

0 Likes
1 Solution

Hello Prasanna,

Please use the latest driver from the FX3 SDK version 1.2.3.20 and monitor the device in the windows device manager and not the tree viewer.

Add a retry count (3 or 4) to monitor the VBUS through GPIO before calling CyU3PConnectState(CyTrue, CyTrue). This is to ensure that the VBUS is stable before you do a USB connect. Also, once the VBUS goes high, you can try disconnecting and then connecting using the API, here the return from the API when disconnecting should be ignored.

Is the configuration descriptors of the device altered to self powered mode? i.e the bmAttributes in the configuration descriptor.

Are you connecting the device directly to a host or through a HUB?

Is the issue seen only when the device is unplugged before enumeration, and will be device stay in the windows device manager even after the device is plugged out?

Best Regards,

Yatheesh

View solution in original post

0 Likes
7 Replies
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello Prasanna,

Please use the latest cyusb3 driver from the FX3 SDK which is version 1.2.3.20.

Also please check the device manager if the FX3 device is still listed under  "Universal Serial Bus Controllers"or "other devices" section after the device is plugged out from the host.

Best Regards,

Yatheesh

0 Likes

Hi Yatheesh,

Thanks for you quick response. But after installing the driver version 1.2.3.20 I am getting below error.

pastedImage_0.png

Best Regards

Prasanna

0 Likes

Hello Prasanna,

There should not be any problem with the driver as well as the firmware. I tried it on my side and everything works well.

Can you please try the steps mentioned in this page How to Fix 'The Software For This Device Has Been Blocked From Starting Because it is Known To Have ...

Did you try manually binding the driver to the latest one from the SDK?

And is it the same problem when using other firmware on FX3 like the BulkLpAutoCpp?

Best Regards,

Yatheesh

0 Likes

Hi Yatheesh,

Thanks for your inputs, I will try the steps mentioned in the link and let you know. I tried manually binding the drivers from latest SDK.

I will also test and let you know the status with "BulkLpAutoCpp".

Actually I am facing one more issue with my custom FX3 design. I have made a self powered device using Cypress FX3 with Type-C connector. And I am using same as USBBulkLoopAutoSignal as my reference design.

Since it is self powered device I am monitoring Vbus from the other GPIO, when GPIO becomes low I am making CyU3PConnectState(CyFalse, CyTrue); and when GPIO becomes high CyU3PConnectState(CyTrue, CyTrue); is called. I will be using Type-C to Type-C 3.0 cable. the 3.0 device enumeration and everything happens properly. some times before enumeration of the device If I unplug the device from host and connect it back. I am seeing two devices in Device manager. one is my actual super speed 3.0 loop back device and the other high speed unknown device. So I suspected due to incomplete enumeration of previous iteration it might happened as explained. Once I entered to this situation as many times if I unplug and plugin the device each time two devices will be enumerated in Device manager as shown in figure below.

pastedImage_4.png

So by API calls I tried a sequence, If I follow this below mentioned sequence and connect the device to the host it recovered from the above state.

1. USB fallback to 2.0

    

             CyU3PUsbAckSetup ();

            CyU3PThreadSleep (100);

            CyFxBulkLpApplnStop ();

            CyU3PConnectState (CyFalse, CyTrue);    // disconnect

            CyU3PThreadSleep (100);

            CyU3PConnectState (CyTrue, CyFalse);    // connect with USB 2.0 (FS/HS device)

            CyU3PThreadSleep (10);

2.

             CyU3PUsbAckSetup ();

            CyU3PThreadSleep (100);

            CyFxBulkLpApplnStop ();

            CyU3PConnectState (CyFalse, CyTrue);   // disconnect

            CyU3PThreadSleep (10);

            CyU3PConnectState (CyTrue, CyTrue);    // connect with USB 3.0 (SS device)

            CyU3PThreadSleep (10);

Do you have any idea, Why two device s getting enumerated ?

How to over come this issue ?

I am using SDK 1.3.4 and the driver version is DriverVer=08/21/2014,1.2.3.10

Best Regards

Prasanna

0 Likes

Hello Prasanna,

Please use the latest driver from the FX3 SDK version 1.2.3.20 and monitor the device in the windows device manager and not the tree viewer.

Add a retry count (3 or 4) to monitor the VBUS through GPIO before calling CyU3PConnectState(CyTrue, CyTrue). This is to ensure that the VBUS is stable before you do a USB connect. Also, once the VBUS goes high, you can try disconnecting and then connecting using the API, here the return from the API when disconnecting should be ignored.

Is the configuration descriptors of the device altered to self powered mode? i.e the bmAttributes in the configuration descriptor.

Are you connecting the device directly to a host or through a HUB?

Is the issue seen only when the device is unplugged before enumeration, and will be device stay in the windows device manager even after the device is plugged out?

Best Regards,

Yatheesh

0 Likes

Hi Yatheesh,

Please find my inline comments below.

Please use the latest driver from the FX3 SDK version 1.2.3.20 and monitor the device in the windows device manager and not the tree viewer.

----> Okay, I will update the latest driver version 1.2.3.20 update the status. I am monitoring both Windows device manager and as well Device tree viewer. Both will have the same outcome.

Add a retry count (3 or 4) to monitor the VBUS through GPIO before calling CyU3PConnectState(CyTrue, CyTrue). This is to ensure that the VBUS is stable before you do a USB connect. Also, once the VBUS goes high, you can try disconnecting and then connecting using the API, here the return from the API when disconnecting should be ignored.

----> Okay, Once Vbus high event is triggered I will validate the Vbus for 3-4 times while validating between iterations do I nee to give any delay? And once Vbus reached high I need to disconnect the USB CyU3PConnectState(CyFalse, CyTrue) and connect it back using CyU3PConnectState(CyTrue, CyTrue). right ?

Is the configuration descriptors of the device altered to self powered mode? i.e the bmAttributes in the configuration descriptor.

Are you connecting the device directly to a host or through a HUB?

----> Yes, I have changed the bmAttributes in configuration descriptor as self powered

         0x40,                           /* Config characteristics - Self powered */

----> I am connecting the device directly to the host, No Hub is used.

----> Host I used for testing is Intel NUC7i5BNH, Windows 10 64-bit. test on TBT-Thunder bolt type-C Port.

Is the issue seen only when the device is unplugged before enumeration, and will be device stay in the windows device manager even after the device is plugged out?

----> Yes, I will connect the device and I will unplug the device before enumeration and detection on Device manager and if I connect it back that time I will the issue. one actual loop back device and one unknown device.

----> After device plugged out from the host device will not be seen in device manager.

You need any inputs for analysis. I will implemet your suggestions with latest SDK version drivers 1.2.3.20 and update you the status.

Best Regards

Prasanna

0 Likes

Hello Prasanna,

Please let me know if changing the driver to the latest one, and the disconnect/reconnect worked?

Best Regards,

Yatheesh

0 Likes