FX3: How to persist com port numbers for multiple CDC devices in a composite device

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

cross mob
IzMa_4105896
Level 2
Level 2
10 replies posted 5 replies posted 5 questions asked

I have a composite device with two CDC devices exposed as USB Serial Ports.  When this device is reset the COM port numbers often change.   I want then to stay the same.

The driver used is: Cypress\Cypress USB-Serial Driver\DriverBinary\CDC_Driver\bin\win10\x64\CypressSerial.inf.  I have seen in other posts that for certain Cypress serial devices there is a "Enable Port Persist" option in the advanced settings for the COM port.  I don't see the same thing for my CDC devices. 

How to "Enable Port Persist"?

0 Likes
1 Solution
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

You can set a unique serial number to the device using the "use serial number string" from USB-Serial Configuration utility. Once the device has a unique serial string it will use the same COM port number.

Best Regards,

Yatheesh

View solution in original post

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

Hello,

You can set a unique serial number to the device using the "use serial number string" from USB-Serial Configuration utility. Once the device has a unique serial string it will use the same COM port number.

Best Regards,

Yatheesh

0 Likes

I'm not seeing any devices in the select device drop down list in the USB-Serial Configuration utility.  Only one CDC USB Serial Port is actually attached to the FX3's UART using register based UART transfers.  The second CDC USB Serial Port is a debug port only.  

pastedImage_0.png

0 Likes

Hello,

Can you please let me know if you are using the SuperSpeed Explorer kit?

If yes then the option to access and change the configuration if the Serial Device is not permitted.

Port persist is the case where the com port which corresponds to the device is in use and the device is disconnected from the host. In this case the port will still persist in the device manager even if the device is not connected to the host.

Best Regards,

Yatheesh

0 Likes

I am not using the SuperSpeed Explorer Kit but rather our own board using the CYUSB3014.  Our board exposes two USB CDC devices to the host PC. 

The first USB CDC device (e.g. "USB Serial Port (COM15)" in the screen shot above) bridges to an actual UART which communicates to other hardware.

 

The second USB CDC device (e.g. "USB Serial Port (COM17)" in the screen shot above) accepts user input from the host PC and passes it to the FX3's CPU which prints out debug information. 

When I reset the board or unplug/plug the USB cable from the board the COM port names for the devices can change.   I want the COM port names to persist.

Thanks,

Iztoi

0 Likes

Hello,

Can you please let me know the VID and PID with which the "USB to UART Adapter" is enumerating. You can check the VID and PID of the device in properties -> Details -> Property (Device instance path)

Best Regards,

Yatheesh

0 Likes

USB\VID_04B4&PID_00F1&MI_03\6&1CBB7ADF&8&0003

USB\VID_04B4&PID_00F1&MI_01\6&259D14D3&0&0001

0 Likes

Hello,

The PID 0x00F1 is not listed under cypress driver .inf files. Please contact the manufacturing department of the board as the drivers .inf is modified with new PID which you are using.

Best Regards,

Yatheesh

0 Likes

00 F1 is the product id of the streamer example.

Image result for streamerexample f1

0 Likes

Hello,

I had earlier asked for the VID and PID of "USB to UART Adapter" (USB-Serial Device) enumerated in the Device manager.

Do let me know the VID/PID.

Best Regards,

Yatheesh

0 Likes

I VID/PID I sent above are of the "USB to UART Adapter" for the two USB-serial devices in the composite device.  Am I missing something?

pastedImage_0.png

0 Likes

Hello,

If you are using a separate driver apart from the one present in cypress SDK, the devices can bind to that respective driver depending on the VID/PID of the device and the VID/PID present in the driver .inf files and will enumerate with the string corresponding to that VID/PID.

Check the driver's .inf file contents to which your device (USB to UART adapter) is bound and search for the PID 00F1 in the .inf file and the corresponding string.

Please also check the hardware ids of the devices in the property drop down in device manager.

Best Regards,

Yatheesh

0 Likes

Hello,

Please download the USB-Serial SDK for drivers. Once the drivers are installed you can manually (if it does not automatically) bind the devices to the respective drivers (CypressSerial) present in the path C:\Program Files (x86)\Cypress\USB-Serial SDK\Cypress USB-Serial Driver\DriverBinary\CDC_Driver\bin\<OS>\<architecture-x64/x86>. For more details refer  to the "Cypress USB-Serial Driver Installation Guide" in the documentation folder in USB-Serial SDK.

Best Regards,

Yatheesh

0 Likes