Multiple USB to RS232 port on Colibri iMX6 not working

Hello,

We are developing an application that needs multiple RS232 port (we need 8 RS232 ports). We added a USB hub on Colibri module’s USB port and attached a Prolific chip based USB/RS232 converter cable on to the hub and it works fine. But when we add another USB/RS232 cable on the hub, both the ports fail to work. What is noticed:

  1. The ports individually works when plugged-in on to the hub in different sockets of the hub
  2. Colibri reports that the second port is found showing a new Com port number
  3. They both fail to work to communicate when plugged in simultaneously.
  4. We tried using a different USB hub which is a powered one but still no luck

Let me what to do now.

Thanks,
Arif

Dear @marifhossain

This usually happens if a driver uses global variables which actually should have different values for multiple instances.

There’s a way to test this, but it is somewhat complicated, and as I don’t know all the details, I can only give you generic guidance:

  1. create a copy of the driver dll with a different name
    e.g. \Flashdisk\System\prolific.dll\Flashdisk\System\prolific2.dll
  2. Boot your system with no converter connected
  3. After the system has booted, connect one Prolific device.
    You can verify that it was properly loaded. Open the registry editor, the last entry in [HKLM\Drivers\Active] should be the Prolific adapter.
  4. Modify all relevant entries in [HKLM\Drivers\USB\LoadClients]. Change prolific.dll into prolific2.dll (or whatever name your dll has).
  5. Plug in the second Prolific adapter. It should now load its own DLL. Even though it is identical, this second instance has its own global variables.

If the steps above are successful, the solution would be to eiter

  • Ask Prolific for a driver fix.
  • Write an additional wrapper driver, which loads two instances of the prolific.dll, and routes all function calls to one or the other DLL, dpending on whether it is coming from adapter 1 or 2.
  • Use another USB/UART converter, e.g. from FTDI.

Regards, Andy