How to combine a SlvFifo FX3 implementation with a VirtualUART one

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

cross mob
Martian57
Level 1
Level 1
5 sign-ins First reply posted First question asked

Hi

I have to implement a composite super speed USB device on an FX3 that combines a SlaveFifo function (similar to the slfifoasync example) with a virtual UART  function (similar to cyfxusbuart example).

I have both functions working separately, i.e. I can create a working SlaveFifo function from a composite device context (EF-02-01) if I leave out the COMx function, and vice versa.

But when I try and instantiate both to operate at the same time, both fail: The COM port does not show up and the SlaveFifo device says "This device cannot start. (Code 10). An invalid parameter was passed to a service or function."

I have tried following the instructions from https://community.infineon.com/t5/USB-Superspeed-Peripherals/How-to-configure-FX3-USB-device-with-mu...

and https://community.infineon.com/t5/USB-Superspeed-Peripherals/How-to-configure-FX3-USB-device-with-mu... .

There are a number of things in these posts that do not make sense to me:

1) Step #3: There is no CX3-UVC device listed by the Device Manager. I assumed that it should refer to the Streamer Example Device?

2) Step #15: I do not have an "USB Serial Port" option at this step.

Upon following the instructions to the best of my ability, my laptop semi-freezes up until I uninstall the device.

I am developing on a Windows 10 laptop.

I have not modified any INF files.

I would REALLY appreciate any help/advice.

 

0 Likes
1 Solution
Meghavi
Moderator
Moderator
Moderator
250 replies posted 100 solutions authored 10 likes received

Hi,

After selecting Show All Devices, click on Have Disk:

Meghavi_0-1637743577341.png

Then click on Browse:

Meghavi_1-1637743609414.png

And select the .inf from the FX3 SDK (C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\driver\bin\Win10\x64)

Meghavi_2-1637743673053.png

Then click on OK:

Meghavi_3-1637743734857.png

You will find the Cypress FX3 USB StreamerExample Device as an option, select that and then click on Next:

Meghavi_4-1637743776908.png

In the Update Driver Warning window, click Yes:

Meghavi_8-1637744385348.png

You will get a message that Windows has successfully updated your driver. It will appear in the Device Manager as Cypress FX3 USB StreamerExample Device

Meghavi_9-1637745568378.png

Please let me know if you have any queries.

Best Regards

View solution in original post

7 Replies
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

Please refer to the following KBA:

https://community.infineon.com/t5/Knowledge-Base-Articles/Adding-Communication-Device-Class-Interfac...

The above KBA also has an example project. This project will make the device enumerate as a composite device having a vendor and a CDC class interface. You can develop your application on top of this or modify your project by referring to this project. Please let us know if this helps.

Best Regards,
Jayakrishna
0 Likes
lock attach
Attachments are accessible only for community members.
Martian57
Level 1
Level 1
5 sign-ins First reply posted First question asked

Just to make sure: There is no need to modify the INF file (by adding something like VID_04B4&PID_00F1&MI_xx)?

0 Likes
Martian57
Level 1
Level 1
5 sign-ins First reply posted First question asked

And should there not be 0xEF-0x02-0x01 sequences in the device descriptors?

 

0 Likes
Meghavi
Moderator
Moderator
Moderator
250 replies posted 100 solutions authored 10 likes received

Hi,

Correct, the sequence should be 0xEF-0x02-0x01 in the device descriptor.

Please keep uninstalling the device till it is coming up as FX3 USB StreamerExample Device in the device manager. While uninstalling, kindly make sure the checkbox is ticked as shown below: 

Meghavi_0-1637668249039.png

After uninstalling the cyusb3 driver properly, reset the device and reprogram with the .img file. The device will come up as FX3 in Other Devices section as shown below: 

Meghavi_1-1637668663209.png

 

Best Regards

0 Likes
lock attach
Attachments are accessible only for community members.

Allow me to observe that I find the documentation at point #4 of https://community.infineon.com/t5/Knowledge-Base-Articles/Adding-Communication-Device-Class-Interfac... a little bit vague on how to proceed to “Bind the cyusb3 driver to FX3 that appears in the Other Devices section of the Device Manager. Choose the model Cypress FX3 USB StreamerExample Device”. I THINK I have tried all the possible ways and have been unable to find any reference to a “Cypress FX3 USB StreamerExample Device”.

This is the most obvious of the things I have done:

After a reset, the Device Manager shows that both the FX3 and COM17 devices are present:

Martian57_0-1637673997835.png

 

I then right-click FX3 and select Properties:

Martian57_1-1637673997838.png

 

I then click Change Settings, provide my admin credentials and get:

Martian57_2-1637673997841.png

 

I then click on Update Driver and get

Martian57_3-1637673997842.png

 

 

I then click on Browse my computer for driver software and get:

Martian57_4-1637673997843.png

 

I then click on Let me pick from a list … and get:

Martian57_5-1637673997844.png

 

With Show All Devices selected, I click Next and scroll down to Cypress:

Martian57_6-1637673997846.png

 

At this point I am expecting to see Cypress FX3 USB StreamerExample Device as an option, but fail to do so.

  • Could you please elaborate on point #4?
  • Perhaps there is a need for a line like “%VID_04B4&PID_00F1&MI_00.DeviceDesc%=CyUsb3, USB\VID_04B4&PID_00F1&MI_00” to the cyusb3.inf file?

I would sincerely appreciate your feedback!

0 Likes
Meghavi
Moderator
Moderator
Moderator
250 replies posted 100 solutions authored 10 likes received

Hi,

After selecting Show All Devices, click on Have Disk:

Meghavi_0-1637743577341.png

Then click on Browse:

Meghavi_1-1637743609414.png

And select the .inf from the FX3 SDK (C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\driver\bin\Win10\x64)

Meghavi_2-1637743673053.png

Then click on OK:

Meghavi_3-1637743734857.png

You will find the Cypress FX3 USB StreamerExample Device as an option, select that and then click on Next:

Meghavi_4-1637743776908.png

In the Update Driver Warning window, click Yes:

Meghavi_8-1637744385348.png

You will get a message that Windows has successfully updated your driver. It will appear in the Device Manager as Cypress FX3 USB StreamerExample Device

Meghavi_9-1637745568378.png

Please let me know if you have any queries.

Best Regards

The last elaboration on step #4 sorted out my issue. I now have a working composite SlvFifo+VirtUART USB device driver.

MANY thanks! 

0 Likes