Dual CDC virtual com device

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

Dual CDC virtual com device

1,801 Views
Teckna
Contributor V

Hi everyone,

About one year ago I opened a SR to get help in developing a dual virtual com device application and the answer was that at that time (MQX was 3.7) such application was not possible.

("We have to say that our USB device stack is not ready for dual functionalities. There is not only one issue or potentional risk (must be investigated) in the USB device stack + USB device classes that can lead to disfunctionality. We have never tried 2 instances of one device at the same time in MQX. This will be investigated and try to find the solutions.")

Now I'm using MQX 3.8.1: can now my application be implemented?

Many thanks

Teckna

Labels (1)
0 Kudos
6 Replies

907 Views
Fabi
Contributor III

Hello,

I'm a little confused with naming. Do you mean, that MQX will supply two virtual com ports? Then, your MQX has to setting up a " composite device" (see reference in USB specification). I've asked Freescale for such feature some times ago (see Multiple different USB devices via virtual hub or switching andSet up an USB composite device). However, the referenced freescale medical usb stack is not yet included in MQX 3.8.1.

Or, otherwise, do you mean to have USB device and USB host functionality simultaneous? This feature is implemented in MQX 3.8.1.

0 Kudos

907 Views
Teckna
Contributor V

Hello,

What about dual CDC virtual com device in the upcoming MQX 4.0?

Many thanks

Teckna

0 Kudos

907 Views
Teckna
Contributor V

Hi,

Any news?

Teckna

0 Kudos

907 Views
JuroV
NXP Employee
NXP Employee

Hello,

if you are using 2 controllers for USB devices, then the CDC class should be working. Honestly, I have not tried 2 CDC devices together.

0 Kudos

907 Views
Teckna
Contributor V

I try to be more clear:

I can successfully enumerate the composite dual virtual com device on a Win7 64 bit system, using the MS usbser.sys driver: the two COM port are correctly listed on the device manager window.

When I open the first COM port on a terminal program (Hyperterminal), I can send and receive data with no problem: the running application echoes the received characters.

But when I try to open the second COM port, I get the error "Unable to open COMx. Verify port settings" (translated from italian language).

Here is my doubt: When I initialize the CDC class with the USB_Class_CDC_Init function, I pass the references of the endpoints of the first port in the cic_send_endpoint, dic_send_endpoint and dic_recv_endpoint fields. How must I pass the references of the endpoints of the second port? Do I need a second call to USB_Class_CDC_Init function or use a different method?

Many thanks

Teckna

0 Kudos

907 Views
c0170
Senior Contributor III

Hello,

I have asked, stack itself is ready for dual controller. It was tested host + host and host+device but there are some known problems (like host + host with dual KHCI problem, but EHCI + KHCI is functional).

Regards,

MartinK

0 Kudos